Commit 25d1d18d authored by Varun Patil's avatar Varun Patil

Use GenericAdapter for Explore

parent 4dff5f87
...@@ -31,7 +31,7 @@ public abstract class CardAdapter<T extends CardInterface> extends RecyclerView. ...@@ -31,7 +31,7 @@ public abstract class CardAdapter<T extends CardInterface> extends RecyclerView.
return null; return null;
} }
public int getAvatarPlaceholder() { public int getAvatarPlaceholder(T t) {
return 0; return 0;
} }
...@@ -76,15 +76,15 @@ public abstract class CardAdapter<T extends CardInterface> extends RecyclerView. ...@@ -76,15 +76,15 @@ public abstract class CardAdapter<T extends CardInterface> extends RecyclerView.
RequestCreator requestCreator; RequestCreator requestCreator;
if (t.getAvatarUrl() != null) if (t.getAvatarUrl() != null)
requestCreator = Picasso.get().load(Utils.resizeImageUrl(t.getAvatarUrl())); requestCreator = Picasso.get().load(Utils.resizeImageUrl(t.getAvatarUrl()));
else if (getAvatarPlaceholder() != 0) { else if (getAvatarPlaceholder(t) != 0) {
requestCreator = Picasso.get().load(getAvatarPlaceholder()); requestCreator = Picasso.get().load(getAvatarPlaceholder(t));
} else { } else {
return; return;
} }
// Check if we have a placeholder // Check if we have a placeholder
if (getAvatarPlaceholder() != 0) { if (getAvatarPlaceholder(t) != 0) {
requestCreator.placeholder(getAvatarPlaceholder()); requestCreator.placeholder(getAvatarPlaceholder(t));
} }
// Load the image // Load the image
......
package app.insti.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import java.util.List;
import app.insti.R;
import app.insti.Utils;
import app.insti.api.model.Body;
import app.insti.api.model.Event;
import app.insti.api.model.User;
import app.insti.interfaces.CardInterface;
public class GenericAdapter extends CardAdapter<CardInterface> {
public GenericAdapter(List<CardInterface> cardInterfaceList, Fragment fragment){
super(cardInterfaceList, fragment);
}
@Override
public void onClick(CardInterface cardInterface, FragmentActivity fragmentActivity) {
if (cardInterface instanceof Event) {
Utils.openEventFragment((Event) cardInterface, fragmentActivity);
} else if (cardInterface instanceof Body) {
Utils.openBodyFragment((Body) cardInterface, fragmentActivity);
} else if (cardInterface instanceof User) {
Utils.openUserFragment((User) cardInterface, fragmentActivity);
}
}
@Override
public int getAvatarPlaceholder(CardInterface cardInterface) {
if (cardInterface instanceof User) {
return R.drawable.user_placeholder;
}
return R.drawable.lotus_sq;
}
}
...@@ -50,7 +50,7 @@ public class NotificationsAdapter extends CardAdapter<Notification> { ...@@ -50,7 +50,7 @@ public class NotificationsAdapter extends CardAdapter<Notification> {
} }
@Override @Override
public int getAvatarPlaceholder() { public int getAvatarPlaceholder(Notification notification) {
return R.drawable.lotus_sq; return R.drawable.lotus_sq;
} }
} }
...@@ -21,7 +21,7 @@ public class UserAdapter extends CardAdapter<User> { ...@@ -21,7 +21,7 @@ public class UserAdapter extends CardAdapter<User> {
} }
@Override @Override
public int getAvatarPlaceholder() { public int getAvatarPlaceholder(User user) {
return R.drawable.user_placeholder; return R.drawable.user_placeholder;
} }
} }
...@@ -18,15 +18,14 @@ import java.util.List; ...@@ -18,15 +18,14 @@ import java.util.List;
import app.insti.R; import app.insti.R;
import app.insti.Utils; import app.insti.Utils;
import app.insti.adapter.BodyAdapter; import app.insti.adapter.GenericAdapter;
import app.insti.adapter.FeedAdapter;
import app.insti.adapter.UserAdapter;
import app.insti.api.EmptyCallback; import app.insti.api.EmptyCallback;
import app.insti.api.RetrofitInterface; import app.insti.api.RetrofitInterface;
import app.insti.api.model.Body; 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.api.model.User;
import app.insti.api.response.ExploreResponse; import app.insti.api.response.ExploreResponse;
import app.insti.interfaces.CardInterface;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Response; import retrofit2.Response;
...@@ -41,10 +40,11 @@ public class ExploreFragment extends Fragment { ...@@ -41,10 +40,11 @@ public class ExploreFragment extends Fragment {
private static List<Body> bodies = new ArrayList<>(); private static List<Body> bodies = new ArrayList<>();
private static List<Event> events = new ArrayList<>(); private static List<Event> events = new ArrayList<>();
private static List<User> users = new ArrayList<>(); private static List<User> users = new ArrayList<>();
private static List<CardInterface> cards = new ArrayList<>();
private String sessionId; private String sessionId;
private BodyAdapter bodyAdapter; private GenericAdapter genericAdapter;
private FeedAdapter eventsAdapter;
private UserAdapter userAdapter;
private String currentQuery = null; private String currentQuery = null;
...@@ -75,7 +75,7 @@ public class ExploreFragment extends Fragment { ...@@ -75,7 +75,7 @@ public class ExploreFragment extends Fragment {
// Initialize // Initialize
sessionId = Utils.getSessionIDHeader(); sessionId = Utils.getSessionIDHeader();
initRecyclerViews(); initRecyclerView();
Toolbar toolbar = getActivity().findViewById(R.id.toolbar); Toolbar toolbar = getActivity().findViewById(R.id.toolbar);
toolbar.setTitle("Explore"); toolbar.setTitle("Explore");
...@@ -88,11 +88,11 @@ public class ExploreFragment extends Fragment { ...@@ -88,11 +88,11 @@ public class ExploreFragment extends Fragment {
public void onResponse(Call<List<Body>> call, Response<List<Body>> response) { public void onResponse(Call<List<Body>> call, Response<List<Body>> response) {
allBodies = response.body(); allBodies = response.body();
bodies = allBodies; bodies = allBodies;
updateAdapters(allBodies, new ArrayList<Event>(), new ArrayList<User>()); updateAdapter(allBodies, new ArrayList<Event>(), new ArrayList<User>());
} }
}); });
} else { } else {
updateAdapters(allBodies, new ArrayList<Event>(), new ArrayList<User>()); updateAdapter(allBodies, new ArrayList<Event>(), new ArrayList<User>());
getView().findViewById(R.id.loadingPanel).setVisibility(View.GONE); getView().findViewById(R.id.loadingPanel).setVisibility(View.GONE);
} }
...@@ -115,7 +115,7 @@ public class ExploreFragment extends Fragment { ...@@ -115,7 +115,7 @@ public class ExploreFragment extends Fragment {
if (currentQuery.length() >= 3) { if (currentQuery.length() >= 3) {
doSearch(searchEditText.getText().toString()); doSearch(searchEditText.getText().toString());
} else if (currentQuery.length() == 0) { } else if (currentQuery.length() == 0) {
updateAdapters(allBodies, new ArrayList<Event>(), new ArrayList<User>()); updateAdapter(allBodies, new ArrayList<Event>(), new ArrayList<User>());
} }
} }
}); });
...@@ -151,45 +151,34 @@ public class ExploreFragment extends Fragment { ...@@ -151,45 +151,34 @@ public class ExploreFragment extends Fragment {
bodies = response.body().getBodies(); bodies = response.body().getBodies();
events = response.body().getEvents(); events = response.body().getEvents();
users = response.body().getUsers(); users = response.body().getUsers();
updateAdapters(bodies, events, users); updateAdapter(bodies, events, users);
} }
}); });
} }
private void updateAdapters(List<Body> bodies, List<Event> events, List<User> users) { private void updateAdapter(List<Body> bodies, List<Event> events, List<User> users) {
if (getActivity() == null || getView() == null) return; if (getActivity() == null || getView() == null) return;
// Make spinner gone // Make spinner gone
getView().findViewById(R.id.loadingPanel).setVisibility(View.GONE); getView().findViewById(R.id.loadingPanel).setVisibility(View.GONE);
// Set adapters data // Build cards
bodyAdapter.setList(bodies); cards.clear();
eventsAdapter.setList(events); cards.addAll(bodies);
userAdapter.setList(users); cards.addAll(events);
cards.addAll(users);
genericAdapter.setList(cards);
// Notify all adapters // Notify adapter
bodyAdapter.notifyDataSetChanged(); genericAdapter.notifyDataSetChanged();
eventsAdapter.notifyDataSetChanged();
userAdapter.notifyDataSetChanged();
} }
public void initRecyclerViews() { public void initRecyclerView() {
if (getActivity() == null || getView() == null) return; if (getActivity() == null || getView() == null) return;
// Bodies
RecyclerView bodiesRecyclerView = getView().findViewById(R.id.explore_body_recycler_view); RecyclerView bodiesRecyclerView = getView().findViewById(R.id.explore_body_recycler_view);
bodyAdapter = new BodyAdapter(bodies, this); genericAdapter = new GenericAdapter(cards, this);
bodiesRecyclerView.setAdapter(bodyAdapter); bodiesRecyclerView.setAdapter(genericAdapter);
bodiesRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); bodiesRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
// Events
RecyclerView eventsRecyclerView = getView().findViewById(R.id.explore_event_recycler_view);
eventsAdapter = new FeedAdapter(events, this);
eventsRecyclerView.setAdapter(eventsAdapter);
eventsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
// Users
RecyclerView usersRecyclerView = getView().findViewById(R.id.explore_user_recycler_view);
userAdapter = new UserAdapter(users, this);
usersRecyclerView.setAdapter(userAdapter);
usersRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
} }
} }
\ No newline at end of file
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