Commit b3883b89 authored by Varun Patil's avatar Varun Patil

Refactor feed adapter click code into FeedAdapter.java

parent 3ddf3add
package app.insti.adapter;
import android.app.Activity;
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.view.LayoutInflater;
import android.view.View;
......@@ -8,6 +13,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.squareup.picasso.Picasso;
import java.sql.Timestamp;
......@@ -18,6 +24,8 @@ import java.util.Calendar;
import app.insti.Constants;
import app.insti.activity.MainActivity;
import app.insti.fragment.EventFragment;
import app.insti.interfaces.ItemClickListener;
import app.insti.R;
import app.insti.api.model.Event;
......@@ -27,11 +35,11 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
private List<Event> events;
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.itemClickListener = itemClickListener;
mFragment = fragment;
}
public void getSubtitle(ViewHolder viewHolder, Event currentEvent)
......@@ -90,7 +98,7 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, final int i) {
context = viewGroup.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View postView = inflater.inflate(R.layout.feed_card, viewGroup, false);
......@@ -98,8 +106,17 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
final ViewHolder postViewHolder = new ViewHolder(postView);
postView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
itemClickListener.onItemClick(v, postViewHolder.getAdapterPosition());
public void onClick(View view) {
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 {
/* Initialize events */
final List<Event> eventList = body.getBodyEvents();
RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.event_card_recycler_view);
FeedAdapter eventAdapter = new FeedAdapter(eventList, new ItemClickListener() {
@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();
}
});
FeedAdapter eventAdapter = new FeedAdapter(eventList, this);
eventRecyclerView.setAdapter(eventAdapter);
eventRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
......@@ -353,7 +339,7 @@ public class BodyFragment extends BackHandledFragment {
/* Show update button if role */
if (((MainActivity) getActivity()).editBodyAccess(body)) {
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);
nsv.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
......
......@@ -92,7 +92,7 @@ public class CalendarFragment extends BaseFragment {
}
});
if (((MainActivity) getActivity()).createEventAccess()) {
fab.setVisibility(View.VISIBLE);
fab.show();
}
updateEvents();
......@@ -165,21 +165,7 @@ public class CalendarFragment extends BaseFragment {
}
RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.calendar_event_card_recycler_view);
FeedAdapter eventAdapter = new FeedAdapter(filteredEvents, new ItemClickListener() {
@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();
}
});
FeedAdapter eventAdapter = new FeedAdapter(filteredEvents, this);
eventRecyclerView.setAdapter(eventAdapter);
eventRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
......
......@@ -63,21 +63,7 @@ public class EventRecyclerViewFragment extends Fragment {
super.onStart();
recyclerView = (RecyclerView) getActivity().findViewById(R.id.event_recycler_view);
feedAdapter = new FeedAdapter(eventList, new ItemClickListener() {
@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();
}
});
feedAdapter = new FeedAdapter(eventList, this);
recyclerView.setAdapter(feedAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
......
......@@ -191,15 +191,7 @@ public class ExploreFragment extends Fragment {
// Events
RecyclerView eventsRecyclerView = getView().findViewById(R.id.explore_event_recycler_view);
eventsAdapter = new FeedAdapter(events, new ItemClickListener() {
@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);
}
});
eventsAdapter = new FeedAdapter(events, this);
eventsRecyclerView.setAdapter(eventsAdapter);
eventsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
......
......@@ -43,6 +43,8 @@ public class FeedFragment extends BaseFragment {
private boolean freshEventsDisplayed = false;
LinearLayoutManager mLayoutManager;
public static int index = -1, top = -1;
private FeedAdapter feedAdapter = null;
public FeedFragment() {
// Required empty public constructor
}
......@@ -101,7 +103,7 @@ public class FeedFragment extends BaseFragment {
private void updateFeed() {
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
public void onResponse(Call<NewsFeedResponse> call, Response<NewsFeedResponse> response) {
if (response.isSuccessful()) {
......@@ -122,12 +124,10 @@ 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 the add event fab if the user has permission */
private void initFab() {
if (((MainActivity) getActivity()).createEventAccess()) {
fab.setVisibility(View.VISIBLE);
fab.show();
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
......@@ -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 */
if (events.size() > 1) {
events.get(0).setEventBigImage(true);
}
final FeedAdapter feedAdapter = new FeedAdapter(events, new ItemClickListener() {
@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();
}
});
feedAdapter = new FeedAdapter(events, this);
getActivityBuffer().safely(new ActivityBuffer.IRunnable() {
@Override
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