Commit 06fa3393 authored by Varun Patil's avatar Varun Patil

Preserve scroll position in Explore

parent 8d2d89f1
...@@ -40,6 +40,9 @@ import retrofit2.Response; ...@@ -40,6 +40,9 @@ import retrofit2.Response;
*/ */
public class ExploreFragment extends Fragment { public class ExploreFragment extends Fragment {
private RecyclerView recyclerView;
LinearLayoutManager mLayoutManager;
private static List<Body> allBodies = new ArrayList<>(); private static List<Body> allBodies = new ArrayList<>();
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<>();
...@@ -47,6 +50,9 @@ public class ExploreFragment extends Fragment { ...@@ -47,6 +50,9 @@ public class ExploreFragment extends Fragment {
private static List<CardInterface> cards = new ArrayList<>(); private static List<CardInterface> cards = new ArrayList<>();
private static int index;
private static int top;
private String sessionId; private String sessionId;
private GenericAdapter genericAdapter; private GenericAdapter genericAdapter;
...@@ -69,8 +75,21 @@ public class ExploreFragment extends Fragment { ...@@ -69,8 +75,21 @@ public class ExploreFragment extends Fragment {
} }
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onPause()
super.onCreate(savedInstanceState); {
super.onPause();
index = mLayoutManager.findFirstVisibleItemPosition();
View v = recyclerView.getChildAt(0);
top = (v == null) ? 0 : (v.getTop() - recyclerView.getPaddingTop());
}
@Override
public void onResume()
{
super.onResume();
if(index != -1) {
mLayoutManager.scrollToPositionWithOffset( index, top);
}
} }
@Override @Override
...@@ -198,9 +217,10 @@ public class ExploreFragment extends Fragment { ...@@ -198,9 +217,10 @@ public class ExploreFragment extends Fragment {
public void initRecyclerView() { public void initRecyclerView() {
if (getActivity() == null || getView() == null) return; if (getActivity() == null || getView() == null) return;
RecyclerView bodiesRecyclerView = getView().findViewById(R.id.explore_recycler_view); recyclerView = getView().findViewById(R.id.explore_recycler_view);
mLayoutManager = new LinearLayoutManager(getContext());
genericAdapter = new GenericAdapter(cards, this); genericAdapter = new GenericAdapter(cards, this);
bodiesRecyclerView.setAdapter(genericAdapter); recyclerView.setAdapter(genericAdapter);
bodiesRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); recyclerView.setLayoutManager(mLayoutManager);
} }
} }
\ 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