Commit 339a790b authored by Varun Patil's avatar Varun Patil

Use java.net.URL for parsing (fix #259)

parent 5d5cfe6e
...@@ -42,6 +42,8 @@ import com.google.gson.JsonElement; ...@@ -42,6 +42,8 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List; import java.util.List;
import app.insti.Constants; import app.insti.Constants;
...@@ -378,27 +380,32 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On ...@@ -378,27 +380,32 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
} }
private String getID(String appLinkData) { private String getID(String appLinkData) {
if (appLinkData.charAt(appLinkData.length() - 1) == '/') try {
appLinkData = appLinkData.substring(0, appLinkData.length() - 1); /* Parse URL and get second part */
switch (getType(appLinkData)) { String[] parts = new URL(appLinkData).getPath().split("/");
case DATA_TYPE_BODY: if (parts.length >= 3) {
return appLinkData.substring(appLinkData.indexOf("org") + 4); return parts[2];
case DATA_TYPE_USER:
return appLinkData.substring(appLinkData.indexOf("user") + 5);
case DATA_TYPE_EVENT:
return appLinkData.substring(appLinkData.indexOf("event") + 6);
} }
} catch (MalformedURLException ignored) {}
return null; return null;
} }
private String getType(String appLinkData) { private String getType(String appLinkData) {
if (appLinkData.contains("://insti.app/org/")) { try {
/* Parse URL and check length */
String[] parts = new URL(appLinkData).getPath().split("/");
if (parts.length < 2) return null;
/* Map to proper data type */
switch (parts[1].toLowerCase()) {
case "org":
return DATA_TYPE_BODY; return DATA_TYPE_BODY;
} else if (appLinkData.contains("://insti.app/user/")) { case "event":
return DATA_TYPE_USER;
} else if (appLinkData.contains("://insti.app/event/")) {
return DATA_TYPE_EVENT; return DATA_TYPE_EVENT;
case "user":
return DATA_TYPE_USER;
} }
} catch (MalformedURLException ignored) {}
return null; return null;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment