Commit b3883b89 authored by Varun Patil's avatar Varun Patil

Refactor feed adapter click code into FeedAdapter.java

parent 3ddf3add
package app.insti.adapter; package app.insti.adapter;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
...@@ -8,6 +13,7 @@ import android.view.ViewGroup; ...@@ -8,6 +13,7 @@ import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.google.gson.Gson;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import java.sql.Timestamp; import java.sql.Timestamp;
...@@ -18,6 +24,8 @@ import java.util.Calendar; ...@@ -18,6 +24,8 @@ import java.util.Calendar;
import app.insti.Constants; import app.insti.Constants;
import app.insti.activity.MainActivity;
import app.insti.fragment.EventFragment;
import app.insti.interfaces.ItemClickListener; import app.insti.interfaces.ItemClickListener;
import app.insti.R; import app.insti.R;
import app.insti.api.model.Event; import app.insti.api.model.Event;
...@@ -27,11 +35,11 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> { ...@@ -27,11 +35,11 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
private List<Event> events; private List<Event> events;
private Context context; private Context context;
private ItemClickListener itemClickListener; private Fragment mFragment;
public FeedAdapter(List<Event> events, ItemClickListener itemClickListener) { public FeedAdapter(List<Event> events, Fragment fragment) {
this.events = events; this.events = events;
this.itemClickListener = itemClickListener; mFragment = fragment;
} }
public void getSubtitle(ViewHolder viewHolder, Event currentEvent) public void getSubtitle(ViewHolder viewHolder, Event currentEvent)
...@@ -90,7 +98,7 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> { ...@@ -90,7 +98,7 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
} }
@Override @Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { public ViewHolder onCreateViewHolder(ViewGroup viewGroup, final int i) {
context = viewGroup.getContext(); context = viewGroup.getContext();
LayoutInflater inflater = LayoutInflater.from(context); LayoutInflater inflater = LayoutInflater.from(context);
View postView = inflater.inflate(R.layout.feed_card, viewGroup, false); View postView = inflater.inflate(R.layout.feed_card, viewGroup, false);
...@@ -98,8 +106,17 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> { ...@@ -98,8 +106,17 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
final ViewHolder postViewHolder = new ViewHolder(postView); final ViewHolder postViewHolder = new ViewHolder(postView);
postView.setOnClickListener(new View.OnClickListener() { postView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View view) {
itemClickListener.onItemClick(v, postViewHolder.getAdapterPosition()); String eventJson = new Gson().toJson(events.get(postViewHolder.getAdapterPosition()));
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();
} }
}); });
......
...@@ -276,21 +276,7 @@ public class BodyFragment extends BackHandledFragment { ...@@ -276,21 +276,7 @@ public class BodyFragment extends BackHandledFragment {
/* Initialize events */ /* Initialize events */
final List<Event> eventList = body.getBodyEvents(); final List<Event> eventList = body.getBodyEvents();
RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.event_card_recycler_view); RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.event_card_recycler_view);
FeedAdapter eventAdapter = new FeedAdapter(eventList, new ItemClickListener() { FeedAdapter eventAdapter = new FeedAdapter(eventList, this);
@Override
public void onItemClick(View v, int position) {
Event event = eventList.get(position);
Bundle bundle = new Bundle();
bundle.putString(Constants.EVENT_JSON, new Gson().toJson(event));
EventFragment eventFragment = new EventFragment();
eventFragment.setArguments(bundle);
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, eventFragment, eventFragment.getTag());
ft.addToBackStack(eventFragment.getTag());
ft.commit();
}
});
eventRecyclerView.setAdapter(eventAdapter); eventRecyclerView.setAdapter(eventAdapter);
eventRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); eventRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
...@@ -353,7 +339,7 @@ public class BodyFragment extends BackHandledFragment { ...@@ -353,7 +339,7 @@ public class BodyFragment extends BackHandledFragment {
/* Show update button if role */ /* Show update button if role */
if (((MainActivity) getActivity()).editBodyAccess(body)) { if (((MainActivity) getActivity()).editBodyAccess(body)) {
final FloatingActionButton fab = (FloatingActionButton) getView().findViewById(R.id.edit_fab); final FloatingActionButton fab = (FloatingActionButton) getView().findViewById(R.id.edit_fab);
fab.setVisibility(View.VISIBLE); fab.show();
NestedScrollView nsv = (NestedScrollView) getView().findViewById(R.id.body_scrollview); NestedScrollView nsv = (NestedScrollView) getView().findViewById(R.id.body_scrollview);
nsv.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { nsv.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override @Override
......
...@@ -92,7 +92,7 @@ public class CalendarFragment extends BaseFragment { ...@@ -92,7 +92,7 @@ public class CalendarFragment extends BaseFragment {
} }
}); });
if (((MainActivity) getActivity()).createEventAccess()) { if (((MainActivity) getActivity()).createEventAccess()) {
fab.setVisibility(View.VISIBLE); fab.show();
} }
updateEvents(); updateEvents();
...@@ -165,21 +165,7 @@ public class CalendarFragment extends BaseFragment { ...@@ -165,21 +165,7 @@ public class CalendarFragment extends BaseFragment {
} }
RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.calendar_event_card_recycler_view); RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.calendar_event_card_recycler_view);
FeedAdapter eventAdapter = new FeedAdapter(filteredEvents, new ItemClickListener() { FeedAdapter eventAdapter = new FeedAdapter(filteredEvents, this);
@Override
public void onItemClick(View v, int position) {
Event event = filteredEvents.get(position);
Bundle bundle = new Bundle();
bundle.putString(Constants.EVENT_JSON, new Gson().toJson(event));
EventFragment eventFragment = new EventFragment();
eventFragment.setArguments(bundle);
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, eventFragment, eventFragment.getTag());
ft.addToBackStack(eventFragment.getTag());
ft.commit();
}
});
eventRecyclerView.setAdapter(eventAdapter); eventRecyclerView.setAdapter(eventAdapter);
eventRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); eventRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
......
...@@ -63,21 +63,7 @@ public class EventRecyclerViewFragment extends Fragment { ...@@ -63,21 +63,7 @@ public class EventRecyclerViewFragment extends Fragment {
super.onStart(); super.onStart();
recyclerView = (RecyclerView) getActivity().findViewById(R.id.event_recycler_view); recyclerView = (RecyclerView) getActivity().findViewById(R.id.event_recycler_view);
feedAdapter = new FeedAdapter(eventList, new ItemClickListener() { feedAdapter = new FeedAdapter(eventList, this);
@Override
public void onItemClick(View v, int position) {
Event event = eventList.get(position);
EventFragment eventFragment = new EventFragment();
Bundle arguments = getArguments();
arguments.putString(Constants.EVENT_JSON, new Gson().toJson(event));
eventFragment.setArguments(getArguments());
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, eventFragment, eventFragment.getTag());
ft.addToBackStack(eventFragment.getTag());
ft.commit();
}
});
recyclerView.setAdapter(feedAdapter); recyclerView.setAdapter(feedAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
......
...@@ -191,15 +191,7 @@ public class ExploreFragment extends Fragment { ...@@ -191,15 +191,7 @@ public class ExploreFragment extends Fragment {
// Events // Events
RecyclerView eventsRecyclerView = getView().findViewById(R.id.explore_event_recycler_view); RecyclerView eventsRecyclerView = getView().findViewById(R.id.explore_event_recycler_view);
eventsAdapter = new FeedAdapter(events, new ItemClickListener() { eventsAdapter = new FeedAdapter(events, this);
@Override
public void onItemClick(View v, int position) {
Event event = events.get(position);
Bundle bundle = new Bundle();
bundle.putString(Constants.EVENT_JSON, new Gson().toJson(event));
updateFragment(new EventFragment(), bundle);
}
});
eventsRecyclerView.setAdapter(eventsAdapter); eventsRecyclerView.setAdapter(eventsAdapter);
eventsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); eventsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
......
...@@ -43,6 +43,8 @@ public class FeedFragment extends BaseFragment { ...@@ -43,6 +43,8 @@ public class FeedFragment extends BaseFragment {
private boolean freshEventsDisplayed = false; private boolean freshEventsDisplayed = false;
LinearLayoutManager mLayoutManager; LinearLayoutManager mLayoutManager;
public static int index = -1, top = -1; public static int index = -1, top = -1;
private FeedAdapter feedAdapter = null;
public FeedFragment() { public FeedFragment() {
// Required empty public constructor // Required empty public constructor
} }
...@@ -101,7 +103,7 @@ public class FeedFragment extends BaseFragment { ...@@ -101,7 +103,7 @@ public class FeedFragment extends BaseFragment {
private void updateFeed() { private void updateFeed() {
RetrofitInterface retrofitInterface = ((MainActivity) getActivity()).getRetrofitInterface(); RetrofitInterface retrofitInterface = ((MainActivity) getActivity()).getRetrofitInterface();
retrofitInterface.getNewsFeed("sessionid=" + getArguments().getString(Constants.SESSION_ID)).enqueue(new Callback<NewsFeedResponse>() { retrofitInterface.getNewsFeed(((MainActivity)getActivity()).getSessionIDHeader()).enqueue(new Callback<NewsFeedResponse>() {
@Override @Override
public void onResponse(Call<NewsFeedResponse> call, Response<NewsFeedResponse> response) { public void onResponse(Call<NewsFeedResponse> call, Response<NewsFeedResponse> response) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
...@@ -122,12 +124,10 @@ public class FeedFragment extends BaseFragment { ...@@ -122,12 +124,10 @@ public class FeedFragment extends BaseFragment {
}); });
} }
private void displayEvents(final List<Event> events) { /** Initialize the add event fab if the user has permission */
/* Skip if we're already destroyed */ private void initFab() {
if (getActivity() == null || getView() == null) return;
if (((MainActivity) getActivity()).createEventAccess()) { if (((MainActivity) getActivity()).createEventAccess()) {
fab.setVisibility(View.VISIBLE); fab.show();
fab.setOnClickListener(new View.OnClickListener() { fab.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
...@@ -145,29 +145,22 @@ public class FeedFragment extends BaseFragment { ...@@ -145,29 +145,22 @@ public class FeedFragment extends BaseFragment {
} }
}); });
} }
}
private void displayEvents(final List<Event> events) {
/* Skip if we're already destroyed */
if (getActivity() == null || getView() == null) return;
/* Initialize */
initFab();
/* Make first event image big */ /* Make first event image big */
if (events.size() > 1) { if (events.size() > 1) {
events.get(0).setEventBigImage(true); events.get(0).setEventBigImage(true);
} }
final FeedAdapter feedAdapter = new FeedAdapter(events, new ItemClickListener() { feedAdapter = new FeedAdapter(events, this);
@Override
public void onItemClick(View v, int position) {
String eventJson = new Gson().toJson(events.get(position));
Bundle bundle = getArguments();
if (bundle == null)
bundle = new Bundle();
bundle.putString(Constants.EVENT_JSON, eventJson);
EventFragment eventFragment = new EventFragment();
eventFragment.setArguments(bundle);
FragmentManager manager = 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();
}
});
getActivityBuffer().safely(new ActivityBuffer.IRunnable() { getActivityBuffer().safely(new ActivityBuffer.IRunnable() {
@Override @Override
public void run(Activity pActivity) { public void run(Activity pActivity) {
......
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