fixed restore state for favorites list

This commit is contained in:
danijoo
2015-11-01 13:18:39 +01:00
parent a9a7710141
commit f9fcb4d4ff

View File

@@ -4,6 +4,7 @@ import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.database.Cursor; import android.database.Cursor;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
@@ -44,6 +45,7 @@ public class MovieListFragment extends Fragment implements Callback<MovieList> {
private static final int NUM_COLUMNS_LAND = 5; private static final int NUM_COLUMNS_LAND = 5;
/** /**
* The currently selected sorting order of the list * The currently selected sorting order of the list
*
* @see TMDBApi * @see TMDBApi
*/ */
private int mSortingOrder = SORT_ORDER_MOST_POPULAR; private int mSortingOrder = SORT_ORDER_MOST_POPULAR;
@@ -54,8 +56,10 @@ public class MovieListFragment extends Fragment implements Callback<MovieList> {
private MovieList mMovieList; private MovieList mMovieList;
@Bind(R.id.movie_list_grid) RecyclerView mMovieGridView; @Bind(R.id.movie_list_grid)
@Bind(R.id.movie_list_progressBar) ProgressBar mProgressBar; RecyclerView mMovieGridView;
@Bind(R.id.movie_list_progressBar)
ProgressBar mProgressBar;
/** /**
* Holding a reference to running api calls. This makes it possible to cancel them if * Holding a reference to running api calls. This makes it possible to cancel them if
@@ -80,12 +84,15 @@ public class MovieListFragment extends Fragment implements Callback<MovieList> {
public void onActivityCreated(Bundle savedInstanceState) { public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
mMovieGridView.setLayoutManager(new GridLayoutManager(getActivity(), getNumColumns())); mMovieGridView.setLayoutManager(new GridLayoutManager(getActivity(), getNumColumns()));
if (savedInstanceState != null)
restoreState(savedInstanceState);
}
if(savedInstanceState != null) { private void restoreState(@NonNull Bundle savedInstanceState) {
mSortingOrder = savedInstanceState.getInt("sort_order"); mSortingOrder = savedInstanceState.getInt("sort_order");
if (savedInstanceState.containsKey("movielist")) if (savedInstanceState.containsKey("movielist"))
mMovieList = savedInstanceState.getParcelable("movielist"); mMovieList = savedInstanceState.getParcelable("movielist");
}
} }
/** /**
@@ -160,6 +167,7 @@ public class MovieListFragment extends Fragment implements Callback<MovieList> {
private void loadMovieListFromFavorites() { private void loadMovieListFromFavorites() {
// TODO async? // TODO async?
mMovieList = null;
Cursor cursor = new FavoriteProviderHelper(getContext().getContentResolver()).getAllFavorites(); Cursor cursor = new FavoriteProviderHelper(getContext().getContentResolver()).getAllFavorites();
mMovieGridView.setAdapter(new CursorMovieListAdapter(cursor, (MovieNavigation) getActivity())); mMovieGridView.setAdapter(new CursorMovieListAdapter(cursor, (MovieNavigation) getActivity()));
} }