Commit a3ea3c2a authored by Varun Patil's avatar Varun Patil

Refactor updateFragment into Utils

parent c09b5ecd
package app.insti; package app.insti;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.widget.ImageView; import android.widget.ImageView;
import com.google.gson.Gson;
import com.squareup.picasso.Callback; import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import app.insti.api.model.Body;
import app.insti.api.model.Event; import app.insti.api.model.Event;
import app.insti.api.model.User;
import app.insti.fragment.BodyFragment;
import app.insti.fragment.EventFragment;
import app.insti.fragment.UserFragment;
public final class Utils { public final class Utils {
public static UpdatableList<Event> eventCache = new UpdatableList<>(); public static UpdatableList<Event> eventCache = new UpdatableList<>();
...@@ -34,4 +45,38 @@ public final class Utils { ...@@ -34,4 +45,38 @@ public final class Utils {
if (url == null) { return url; } if (url == null) { return url; }
return url.replace("api.insti.app/static/", "img.insti.app/static/" + dim.toString() + "/"); return url.replace("api.insti.app/static/", "img.insti.app/static/" + dim.toString() + "/");
} }
/** Update the open fragment */
public static final void updateFragment(Fragment fragment, FragmentActivity fragmentActivity) {
FragmentTransaction ft = fragmentActivity.getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_in_right, R.anim.slide_out_right);
ft.replace(R.id.framelayout_for_fragment, fragment, fragment.getTag());
ft.addToBackStack(fragment.getTag());
ft.commit();
}
public static void openBodyFragment(Body body, FragmentActivity fragmentActivity) {
Bundle bundle = new Bundle();
bundle.putString(Constants.BODY_JSON, new Gson().toJson(body));
BodyFragment bodyFragment = new BodyFragment();
bodyFragment.setArguments(bundle);
updateFragment(bodyFragment, fragmentActivity);
}
public static void openEventFragment(Event event, FragmentActivity fragmentActivity) {
String eventJson = new Gson().toJson(event);
Bundle bundle = new Bundle();
bundle.putString(Constants.EVENT_JSON, eventJson);
EventFragment eventFragment = new EventFragment();
eventFragment.setArguments(bundle);
updateFragment(eventFragment, fragmentActivity);
}
public static void openUserFragment(User user, FragmentActivity fragmentActivity) {
Bundle bundle = new Bundle();
bundle.putString(Constants.USER_ID, user.getUserID());
UserFragment userFragment = new UserFragment();
userFragment.setArguments(bundle);
updateFragment(userFragment, fragmentActivity);
}
} }
...@@ -2,6 +2,7 @@ package app.insti.adapter; ...@@ -2,6 +2,7 @@ package app.insti.adapter;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction; import android.support.v4.app.FragmentTransaction;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
...@@ -19,6 +20,7 @@ import java.util.List; ...@@ -19,6 +20,7 @@ import java.util.List;
import app.insti.Constants; import app.insti.Constants;
import app.insti.Utils; import app.insti.Utils;
import app.insti.R; import app.insti.R;
import app.insti.activity.MainActivity;
import app.insti.api.model.Body; import app.insti.api.model.Body;
import app.insti.fragment.BodyFragment; import app.insti.fragment.BodyFragment;
...@@ -44,28 +46,13 @@ public class BodyAdapter extends RecyclerView.Adapter<BodyAdapter.ViewHolder> { ...@@ -44,28 +46,13 @@ public class BodyAdapter extends RecyclerView.Adapter<BodyAdapter.ViewHolder> {
v.setOnClickListener(new View.OnClickListener() { v.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
openBody(bodyList.get(postViewHolder.getAdapterPosition())); Utils.openBodyFragment(bodyList.get(postViewHolder.getAdapterPosition()), fragment.getActivity());
} }
}); });
return postViewHolder; return postViewHolder;
} }
/**
* Open body fragment for a body
*/
private void openBody(Body body) {
Bundle bundle = new Bundle();
bundle.putString(Constants.BODY_JSON, new Gson().toJson(body));
BodyFragment bodyFragment = new BodyFragment();
bodyFragment.setArguments(bundle);
FragmentTransaction ft = fragment.getActivity().getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_in_right, R.anim.slide_out_right);
ft.replace(R.id.framelayout_for_fragment, bodyFragment, bodyFragment.getTag());
ft.addToBackStack(bodyFragment.getTag());
ft.commit();
}
@Override @Override
public void onBindViewHolder(ViewHolder holder, int position) { public void onBindViewHolder(ViewHolder holder, int position) {
......
...@@ -105,16 +105,7 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> { ...@@ -105,16 +105,7 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
postView.setOnClickListener(new View.OnClickListener() { postView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
String eventJson = new Gson().toJson(events.get(postViewHolder.getAdapterPosition())); Utils.openEventFragment(events.get(postViewHolder.getAdapterPosition()), mFragment.getActivity());
Bundle bundle = new Bundle();
bundle.putString(Constants.EVENT_JSON, eventJson);
EventFragment eventFragment = new EventFragment();
eventFragment.setArguments(bundle);
FragmentManager manager = mFragment.getActivity().getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_in_right, R.anim.slide_out_right);
transaction.replace(R.id.framelayout_for_fragment, eventFragment, eventFragment.getTag());
transaction.addToBackStack(eventFragment.getTag()).commit();
} }
}); });
......
...@@ -17,6 +17,7 @@ import java.util.List; ...@@ -17,6 +17,7 @@ import java.util.List;
import app.insti.Constants; import app.insti.Constants;
import app.insti.R; import app.insti.R;
import app.insti.Utils;
import app.insti.api.model.User; import app.insti.api.model.User;
import app.insti.fragment.UserFragment; import app.insti.fragment.UserFragment;
...@@ -41,16 +42,7 @@ public class UserAdapter extends RecyclerView.Adapter<UserAdapter.ViewHolder> { ...@@ -41,16 +42,7 @@ public class UserAdapter extends RecyclerView.Adapter<UserAdapter.ViewHolder> {
v.setOnClickListener(new View.OnClickListener() { v.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
User user = userList.get(postViewHolder.getAdapterPosition()); Utils.openUserFragment(userList.get(postViewHolder.getAdapterPosition()), fragment.getActivity());
Bundle bundle = new Bundle();
bundle.putString(Constants.USER_ID, user.getUserID());
UserFragment userFragment = new UserFragment();
userFragment.setArguments(bundle);
FragmentTransaction ft = fragment.getActivity().getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_in_right, R.anim.slide_out_right);
ft.replace(R.id.framelayout_for_fragment, userFragment, userFragment.getTag());
ft.addToBackStack(userFragment.getTag());
ft.commit();
} }
}); });
......
...@@ -17,6 +17,8 @@ import com.google.gson.Gson; ...@@ -17,6 +17,8 @@ import com.google.gson.Gson;
import java.util.List; import java.util.List;
import app.insti.Constants; import app.insti.Constants;
import app.insti.Utils;
import app.insti.api.model.Event;
import app.insti.interfaces.ItemClickListener; import app.insti.interfaces.ItemClickListener;
import app.insti.R; import app.insti.R;
import app.insti.activity.MainActivity; import app.insti.activity.MainActivity;
...@@ -91,47 +93,23 @@ public class NotificationsFragment extends BaseFragment { ...@@ -91,47 +93,23 @@ public class NotificationsFragment extends BaseFragment {
String sessId = ((MainActivity) getActivity()).getSessionIDHeader(); String sessId = ((MainActivity) getActivity()).getSessionIDHeader();
retrofitInterface.markNotificationRead(sessId, notification.getNotificationId().toString()).enqueue(new EmptyCallback<Void>()); retrofitInterface.markNotificationRead(sessId, notification.getNotificationId().toString()).enqueue(new EmptyCallback<Void>());
FragmentManager manager = getActivity().getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
String tag = "";
Bundle bundle = getArguments();
if (bundle == null) {
bundle = new Bundle();
}
bundle.putString(Constants.SESSION_ID, ((MainActivity) getActivity()).getSessionIDHeader());
/* Open event */ /* Open event */
if (notification.getNotificationActorType().contains("event")) { if (notification.getNotificationActorType().contains("event")) {
String eventJson = new Gson().toJson(notification.getNotificationActor()); Gson gson = new Gson();
bundle.putString(Constants.EVENT_JSON, eventJson); Event event = gson.fromJson(gson.toJson(notification.getNotificationActor()), Event.class) ;
EventFragment eventFragment = new EventFragment(); Utils.openEventFragment(event, getActivity());
eventFragment.setArguments(bundle);
tag = eventFragment.getTag();
transaction.replace(R.id.framelayout_for_fragment, eventFragment, tag);
} else if (notification.getNotificationActorType().contains("newsentry")) { } else if (notification.getNotificationActorType().contains("newsentry")) {
NewsFragment newsFragment = new NewsFragment(); NewsFragment newsFragment = new NewsFragment();
tag = newsFragment.getTag(); Utils.updateFragment(newsFragment, getActivity());
transaction.replace(R.id.framelayout_for_fragment, newsFragment, tag);
newsFragment.setArguments(bundle);
} else if (notification.getNotificationActorType().contains("blogentry")) { } else if (notification.getNotificationActorType().contains("blogentry")) {
Gson gson = new Gson(); Gson gson = new Gson();
PlacementBlogPost post = gson.fromJson(gson.toJson(notification.getNotificationActor()), PlacementBlogPost.class); PlacementBlogPost post = gson.fromJson(gson.toJson(notification.getNotificationActor()), PlacementBlogPost.class);
if (post.getLink().contains("training")) { if (post.getLink().contains("training")) {
TrainingBlogFragment trainingBlogFragment = new TrainingBlogFragment(); Utils.updateFragment(new TrainingBlogFragment(), getActivity());
trainingBlogFragment.setArguments(bundle);
tag = trainingBlogFragment.getTag();
transaction.replace(R.id.framelayout_for_fragment, trainingBlogFragment, tag);
} else { } else {
PlacementBlogFragment placementBlogFragment = new PlacementBlogFragment(); Utils.updateFragment(new PlacementBlogFragment(), getActivity());
placementBlogFragment.setArguments(bundle);
tag = placementBlogFragment.getTag();
transaction.replace(R.id.framelayout_for_fragment, placementBlogFragment, tag);
} }
} }
transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_in_right, R.anim.slide_out_right);
transaction.addToBackStack(tag).commit();
} }
}); });
notificationsRecyclerView = (RecyclerView) getActivity().findViewById(R.id.notifications_recycler_view); notificationsRecyclerView = (RecyclerView) getActivity().findViewById(R.id.notifications_recycler_view);
......
...@@ -31,6 +31,7 @@ import com.squareup.picasso.Picasso; ...@@ -31,6 +31,7 @@ import com.squareup.picasso.Picasso;
import java.util.List; import java.util.List;
import app.insti.Constants; import app.insti.Constants;
import app.insti.Utils;
import app.insti.interfaces.ItemClickListener; import app.insti.interfaces.ItemClickListener;
import app.insti.R; import app.insti.R;
import app.insti.ShareURLMaker; import app.insti.ShareURLMaker;
...@@ -147,12 +148,7 @@ public class UserFragment extends BackHandledFragment { ...@@ -147,12 +148,7 @@ public class UserFragment extends BackHandledFragment {
public void onItemClick(View v, int position) { public void onItemClick(View v, int position) {
Role role = roleList.get(position); Role role = roleList.get(position);
Body roleBody = role.getRoleBodyDetails(); Body roleBody = role.getRoleBodyDetails();
BodyFragment bodyFragment = BodyFragment.newInstance(roleBody); Utils.openBodyFragment(roleBody, getActivity());
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_in_right, R.anim.slide_out_right);
ft.replace(R.id.framelayout_for_fragment, bodyFragment, bodyFragment.getTag());
ft.addToBackStack(bodyFragment.getTag());
ft.commit();
} }
}); });
......
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