Commit 3671ede4 authored by Sajal Narang's avatar Sajal Narang Committed by GitHub

Merge pull request #260 from wncc/patch2

Fix a few broken things
parents c5541cfd d9deb324
...@@ -139,23 +139,24 @@ public final class Utils { ...@@ -139,23 +139,24 @@ public final class Utils {
.commit(); .commit();
} }
public static BodyFragment getBodyFragment(Body body) { public static BodyFragment getBodyFragment(Body body, boolean sharedElements) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString(Constants.BODY_JSON, new Gson().toJson(body)); bundle.putString(Constants.BODY_JSON, new Gson().toJson(body));
bundle.putBoolean(Constants.NO_SHARED_ELEM, !sharedElements);
BodyFragment bodyFragment = new BodyFragment(); BodyFragment bodyFragment = new BodyFragment();
bodyFragment.setArguments(bundle); bodyFragment.setArguments(bundle);
return bodyFragment; return bodyFragment;
} }
public static void openBodyFragment(Body body, FragmentActivity fragmentActivity) { public static void openBodyFragment(Body body, FragmentActivity fragmentActivity) {
updateFragment(getBodyFragment(body), fragmentActivity); updateFragment(getBodyFragment(body, false), fragmentActivity);
} }
public static void openBodyFragment(Body body, Fragment currentFragment, View sharedAvatar) { public static void openBodyFragment(Body body, Fragment currentFragment, View sharedAvatar) {
Map<View, String> sharedElements = new HashMap<>(); Map<View, String> sharedElements = new HashMap<>();
sharedElements.put(sharedAvatar, "sharedAvatar"); sharedElements.put(sharedAvatar, "sharedAvatar");
updateSharedElementFragment( updateSharedElementFragment(
getBodyFragment(body), currentFragment, sharedElements getBodyFragment(body, true), currentFragment, sharedElements
); );
} }
......
...@@ -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;
...@@ -328,10 +330,10 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On ...@@ -328,10 +330,10 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
} }
switch (type) { switch (type) {
case DATA_TYPE_BODY: case DATA_TYPE_BODY:
openBodyFragment(id); Utils.openBodyFragment(new Body(id), this);
return; return;
case DATA_TYPE_USER: case DATA_TYPE_USER:
openUserFragment(id); Utils.openUserFragment(id, this);
return; return;
case DATA_TYPE_EVENT: case DATA_TYPE_EVENT:
openEventFragment(id); openEventFragment(id);
...@@ -363,21 +365,6 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On ...@@ -363,21 +365,6 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
} }
} }
/**
* Open user fragment from given id
*/
private void openUserFragment(String id) {
UserFragment userFragment = UserFragment.newInstance(id);
updateFragment(userFragment);
}
/**
* Open the body fragment from given id
*/
private void openBodyFragment(String id) {
Utils.openBodyFragment(new Body(id), this);
}
/** /**
* Open the event fragment from the provided id * Open the event fragment from the provided id
*/ */
...@@ -393,27 +380,32 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On ...@@ -393,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); } catch (MalformedURLException ignored) {}
case DATA_TYPE_EVENT:
return appLinkData.substring(appLinkData.indexOf("event") + 6);
}
return null; return null;
} }
private String getType(String appLinkData) { private String getType(String appLinkData) {
if (appLinkData.contains("://insti.app/org/")) { try {
return DATA_TYPE_BODY; /* Parse URL and check length */
} else if (appLinkData.contains("://insti.app/user/")) { String[] parts = new URL(appLinkData).getPath().split("/");
return DATA_TYPE_USER; if (parts.length < 2) return null;
} else if (appLinkData.contains("://insti.app/event/")) {
return DATA_TYPE_EVENT; /* Map to proper data type */
} switch (parts[1].toLowerCase()) {
case "org":
return DATA_TYPE_BODY;
case "event":
return DATA_TYPE_EVENT;
case "user":
return DATA_TYPE_USER;
}
} catch (MalformedURLException ignored) {}
return null; return null;
} }
...@@ -466,7 +458,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On ...@@ -466,7 +458,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
header.setOnClickListener(new View.OnClickListener() { header.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
openUserFragment(currentUser.getUserID()); Utils.openUserFragment(currentUser.getUserID(), MainActivity.this);
DrawerLayout drawer = findViewById(R.id.drawer_layout); DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START); drawer.closeDrawer(GravityCompat.START);
} }
......
...@@ -153,6 +153,11 @@ public class BodyFragment extends BackHandledFragment implements TransitionTarge ...@@ -153,6 +153,11 @@ public class BodyFragment extends BackHandledFragment implements TransitionTarge
Toolbar toolbar = getActivity().findViewById(R.id.toolbar); Toolbar toolbar = getActivity().findViewById(R.id.toolbar);
toolbar.setTitle(min_body.getBodyName()); toolbar.setTitle(min_body.getBodyName());
Bundle bundle = getArguments();
if (bundle != null && bundle.getBoolean(Constants.NO_SHARED_ELEM, true)) {
this.transitionEnd();
}
} }
private void updateBody() { private void updateBody() {
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="80dp"
android:orientation="horizontal"> android:orientation="horizontal">
<de.hdodenhof.circleimageview.CircleImageView <de.hdodenhof.circleimageview.CircleImageView
......
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