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.
return null;
}
public int getAvatarPlaceholder() {
public int getAvatarPlaceholder(T t) {
return 0;
}
......@@ -76,15 +76,15 @@ public abstract class CardAdapter<T extends CardInterface> extends RecyclerView.
RequestCreator requestCreator;
if (t.getAvatarUrl() != null)
requestCreator = Picasso.get().load(Utils.resizeImageUrl(t.getAvatarUrl()));
else if (getAvatarPlaceholder() != 0) {
requestCreator = Picasso.get().load(getAvatarPlaceholder());
else if (getAvatarPlaceholder(t) != 0) {
requestCreator = Picasso.get().load(getAvatarPlaceholder(t));
} else {
return;
}
// Check if we have a placeholder
if (getAvatarPlaceholder() != 0) {
requestCreator.placeholder(getAvatarPlaceholder());
if (getAvatarPlaceholder(t) != 0) {
requestCreator.placeholder(getAvatarPlaceholder(t));
}
// 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> {
}
@Override
public int getAvatarPlaceholder() {
public int getAvatarPlaceholder(Notification notification) {
return R.drawable.lotus_sq;
}
}
......@@ -21,7 +21,7 @@ public class UserAdapter extends CardAdapter<User> {
}
@Override
public int getAvatarPlaceholder() {
public int getAvatarPlaceholder(User user) {
return R.drawable.user_placeholder;
}
}
......@@ -18,15 +18,14 @@ import java.util.List;
import app.insti.R;
import app.insti.Utils;
import app.insti.adapter.BodyAdapter;
import app.insti.adapter.FeedAdapter;
import app.insti.adapter.UserAdapter;
import app.insti.adapter.GenericAdapter;
import app.insti.api.EmptyCallback;
import app.insti.api.RetrofitInterface;
import app.insti.api.model.Body;
import app.insti.api.model.Event;
import app.insti.api.model.User;
import app.insti.api.response.ExploreResponse;
import app.insti.interfaces.CardInterface;
import retrofit2.Call;
import retrofit2.Response;
......@@ -41,10 +40,11 @@ public class ExploreFragment extends Fragment {
private static List<Body> bodies = new ArrayList<>();
private static List<Event> events = new ArrayList<>();
private static List<User> users = new ArrayList<>();
private static List<CardInterface> cards = new ArrayList<>();
private String sessionId;
private BodyAdapter bodyAdapter;
private FeedAdapter eventsAdapter;
private UserAdapter userAdapter;
private GenericAdapter genericAdapter;
private String currentQuery = null;
......@@ -75,7 +75,7 @@ public class ExploreFragment extends Fragment {
// Initialize
sessionId = Utils.getSessionIDHeader();
initRecyclerViews();
initRecyclerView();
Toolbar toolbar = getActivity().findViewById(R.id.toolbar);
toolbar.setTitle("Explore");
......@@ -88,11 +88,11 @@ public class ExploreFragment extends Fragment {
public void onResponse(Call<List<Body>> call, Response<List<Body>> response) {
allBodies = response.body();
bodies = allBodies;
updateAdapters(allBodies, new ArrayList<Event>(), new ArrayList<User>());
updateAdapter(allBodies, new ArrayList<Event>(), new ArrayList<User>());
}
});
} 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);
}
......@@ -115,7 +115,7 @@ public class ExploreFragment extends Fragment {
if (currentQuery.length() >= 3) {
doSearch(searchEditText.getText().toString());
} 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 {
bodies = response.body().getBodies();
events = response.body().getEvents();
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;
// Make spinner gone
getView().findViewById(R.id.loadingPanel).setVisibility(View.GONE);
// Set adapters data
bodyAdapter.setList(bodies);
eventsAdapter.setList(events);
userAdapter.setList(users);
// Build cards
cards.clear();
cards.addAll(bodies);
cards.addAll(events);
cards.addAll(users);
genericAdapter.setList(cards);
// Notify all adapters
bodyAdapter.notifyDataSetChanged();
eventsAdapter.notifyDataSetChanged();
userAdapter.notifyDataSetChanged();
// Notify adapter
genericAdapter.notifyDataSetChanged();
}
public void initRecyclerViews() {
public void initRecyclerView() {
if (getActivity() == null || getView() == null) return;
// Bodies
RecyclerView bodiesRecyclerView = getView().findViewById(R.id.explore_body_recycler_view);
bodyAdapter = new BodyAdapter(bodies, this);
bodiesRecyclerView.setAdapter(bodyAdapter);
genericAdapter = new GenericAdapter(cards, this);
bodiesRecyclerView.setAdapter(genericAdapter);
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