Refresh drawer if filter preferences change

pull/253/head
Alex Baker 10 years ago
parent 8f27d8a270
commit d78f038ecd

@ -10,6 +10,7 @@ import org.tasks.injection.InjectingPreferenceActivity;
public class AppearancePreferences extends InjectingPreferenceActivity {
public static String FORCE_REFRESH = "force_refresh";
public static String FILTERS_CHANGED = "filters_changed";
@Override
public void onCreate(Bundle savedInstanceState) {
@ -17,16 +18,19 @@ public class AppearancePreferences extends InjectingPreferenceActivity {
addPreferencesFromResource(R.xml.preferences_appearance);
setRefreshOnChange(R.string.p_use_dark_theme);
setRefreshOnChange(R.string.p_fontSize);
setRefreshOnChange(R.string.p_fullTaskTitle);
setExtraOnChange(R.string.p_use_dark_theme, FORCE_REFRESH);
setExtraOnChange(R.string.p_fontSize, FORCE_REFRESH);
setExtraOnChange(R.string.p_fullTaskTitle, FORCE_REFRESH);
setExtraOnChange(R.string.p_show_today_filter, FILTERS_CHANGED);
setExtraOnChange(R.string.p_show_recently_modified_filter, FILTERS_CHANGED);
setExtraOnChange(R.string.p_show_not_in_list_filter, FILTERS_CHANGED);
}
private void setRefreshOnChange(int resId) {
private void setExtraOnChange(int resId, final String extra) {
findPreference(getString(resId)).setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
setResult(RESULT_OK, new Intent().putExtra(FORCE_REFRESH, true));
setResult(RESULT_OK, new Intent().putExtra(extra, true));
return true;
}
});

@ -115,10 +115,12 @@ public class NavigationDrawerFragment extends InjectingFragment {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ACTIVITY_SETTINGS) {
if (resultCode == Activity.RESULT_OK && data.getBooleanExtra(AppearancePreferences.FORCE_REFRESH, false)) {
if (requestCode == ACTIVITY_SETTINGS && resultCode == Activity.RESULT_OK) {
if (data.getBooleanExtra(AppearancePreferences.FORCE_REFRESH, false)) {
getActivity().finish();
getActivity().startActivity(getActivity().getIntent());
} else if (data.getBooleanExtra(AppearancePreferences.FILTERS_CHANGED, false)) {
refresh();
}
} else {
super.onActivityResult(requestCode, resultCode, data);

Loading…
Cancel
Save