Save all/unread/focus selection across app open/close (#633)

This commit is contained in:
Mark Anderson 2014-12-14 22:36:10 +00:00
parent 6661d4e03c
commit b05c7dd902
4 changed files with 19 additions and 12 deletions

View file

@ -6,20 +6,12 @@ import java.util.Comparator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeMap; import java.util.TreeMap;
import android.app.Activity; import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.database.ContentObserver;
import android.database.Cursor; import android.database.Cursor;
import android.database.DataSetObserver;
import android.net.Uri;
import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -65,10 +57,11 @@ public class FolderListAdapter extends BaseExpandableListAdapter {
private LayoutInflater inflater; private LayoutInflater inflater;
private ImageLoader imageLoader; private ImageLoader imageLoader;
private StateFilter currentState = StateFilter.SOME; private StateFilter currentState;
public FolderListAdapter(Context context) { public FolderListAdapter(Context context, StateFilter currentState) {
this.context = context; this.context = context;
this.currentState = currentState;
imageLoader = ((NewsBlurApplication) context.getApplicationContext()).getImageLoader(); imageLoader = ((NewsBlurApplication) context.getApplicationContext()).getImageLoader();
this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} }

View file

@ -37,6 +37,7 @@ import com.newsblur.util.AppConstants;
import com.newsblur.util.FeedSet; import com.newsblur.util.FeedSet;
import com.newsblur.util.FeedUtils; import com.newsblur.util.FeedUtils;
import com.newsblur.util.PrefConstants; import com.newsblur.util.PrefConstants;
import com.newsblur.util.PrefsUtils;
import com.newsblur.util.StateFilter; import com.newsblur.util.StateFilter;
import com.newsblur.util.UIUtils; import com.newsblur.util.UIUtils;
@ -55,7 +56,8 @@ public class FolderListFragment extends NbFragment implements OnGroupClickListen
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
adapter = new FolderListAdapter(getActivity()); currentState = PrefsUtils.getStateFilter(getActivity());
adapter = new FolderListAdapter(getActivity(), currentState);
} }
@Override @Override
@ -224,6 +226,7 @@ public class FolderListFragment extends NbFragment implements OnGroupClickListen
public void changeState(StateFilter state) { public void changeState(StateFilter state) {
currentState = state; currentState = state;
PrefsUtils.setStateFilter(getActivity(), state);
adapter.changeState(state); adapter.changeState(state);
hasUpdated(); hasUpdated();
} }

View file

@ -57,4 +57,5 @@ public class PrefConstants {
public static final String THEME = "theme"; public static final String THEME = "theme";
public static final String STATE_FILTER = "state_filter";
} }

View file

@ -8,7 +8,6 @@ import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.util.Date; import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map;
import java.util.Set; import java.util.Set;
import android.app.Activity; import android.app.Activity;
@ -465,4 +464,15 @@ public class PrefsUtils {
return theme.equals("light"); return theme.equals("light");
} }
public static StateFilter getStateFilter(Context context) {
SharedPreferences prefs = context.getSharedPreferences(PrefConstants.PREFERENCES, 0);
return StateFilter.valueOf(prefs.getString(PrefConstants.STATE_FILTER, StateFilter.SOME.toString()));
}
public static void setStateFilter(Context context, StateFilter newValue) {
SharedPreferences prefs = context.getSharedPreferences(PrefConstants.PREFERENCES, 0);
Editor editor = prefs.edit();
editor.putString(PrefConstants.STATE_FILTER, newValue.toString());
editor.commit();
}
} }