Fix the issue of not reloading the cursor after the setting changed

This commit is contained in:
Dinu Kumarasiri 2017-05-14 14:33:19 +02:00
parent 7050efc996
commit d1fc670b19
4 changed files with 23 additions and 12 deletions

View file

@ -42,8 +42,7 @@ public class ContributionsActivity
AdapterView.OnItemClickListener, AdapterView.OnItemClickListener,
MediaDetailPagerFragment.MediaDetailProvider, MediaDetailPagerFragment.MediaDetailProvider,
FragmentManager.OnBackStackChangedListener, FragmentManager.OnBackStackChangedListener,
ContributionsListFragment.SourceRefresher ContributionsListFragment.SourceRefresher {
{
private Cursor allContributions; private Cursor allContributions;
private ContributionsListFragment contributionsList; private ContributionsListFragment contributionsList;
@ -92,6 +91,15 @@ public class ContributionsActivity
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean isSettingsChanged =
sharedPreferences.getBoolean(Prefs.IS_CONTRIBUTION_COUNT_CHANGED,false);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(Prefs.IS_CONTRIBUTION_COUNT_CHANGED,false);
editor.apply();
if(isSettingsChanged){
refreshSource();
}
} }
@Override @Override

View file

@ -6,6 +6,7 @@ public class Prefs {
public static String TRACKING_ENABLED = "eventLogging"; public static String TRACKING_ENABLED = "eventLogging";
public static final String DEFAULT_LICENSE = "defaultLicense"; public static final String DEFAULT_LICENSE = "defaultLicense";
public static final String UPLOADS_SHOWING = "uploadsshowing"; public static final String UPLOADS_SHOWING = "uploadsshowing";
public static final String IS_CONTRIBUTION_COUNT_CHANGED = "ccontributionCountChanged";
public static class Licenses { public static class Licenses {
public static final String CC_BY_SA_3 = "CC BY-SA 3.0"; public static final String CC_BY_SA_3 = "CC BY-SA 3.0";

View file

@ -41,12 +41,13 @@ public class SettingsFragment extends PreferenceFragment {
}); });
licensePreference.setSummary(getString(Utils.licenseNameFor(licensePreference.getValue()))); licensePreference.setSummary(getString(Utils.licenseNameFor(licensePreference.getValue())));
licensePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener(){ licensePreference
@Override .setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener(){
public boolean onPreferenceChange(Preference preference, Object newValue) { @Override
preference.setSummary(getString(Utils.licenseNameFor((String) newValue))); public boolean onPreferenceChange(Preference preference, Object newValue) {
return true; preference.setSummary(getString(Utils.licenseNameFor((String) newValue)));
} return true;
}
}); });
CheckBoxPreference themePreference = (CheckBoxPreference) findPreference("theme"); CheckBoxPreference themePreference = (CheckBoxPreference) findPreference("theme");
@ -59,17 +60,16 @@ public class SettingsFragment extends PreferenceFragment {
}); });
final EditTextPreference uploadLimit = (EditTextPreference) findPreference("uploads"); final EditTextPreference uploadLimit = (EditTextPreference) findPreference("uploads");
SharedPreferences sharedPref = PreferenceManager final SharedPreferences sharedPref = PreferenceManager
.getDefaultSharedPreferences(getActivity().getApplicationContext()); .getDefaultSharedPreferences(getActivity().getApplicationContext());
int uploads = sharedPref.getInt(Prefs.UPLOADS_SHOWING, 100); int uploads = sharedPref.getInt(Prefs.UPLOADS_SHOWING, 100);
uploadLimit.setText(uploads + "");
uploadLimit.setSummary(uploads + ""); uploadLimit.setSummary(uploads + "");
uploadLimit.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { uploadLimit.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
int value = Integer.parseInt(newValue.toString()); int value = Integer.parseInt(newValue.toString());
final SharedPreferences sharedPref = PreferenceManager
.getDefaultSharedPreferences(getActivity().getApplicationContext());
final SharedPreferences.Editor editor = sharedPref.edit(); final SharedPreferences.Editor editor = sharedPref.edit();
if (value > 500) { if (value > 500) {
new AlertDialog.Builder(getActivity()) new AlertDialog.Builder(getActivity())
@ -83,10 +83,12 @@ public class SettingsFragment extends PreferenceFragment {
.setIcon(android.R.drawable.ic_dialog_alert) .setIcon(android.R.drawable.ic_dialog_alert)
.show(); .show();
editor.putInt(Prefs.UPLOADS_SHOWING, 500); editor.putInt(Prefs.UPLOADS_SHOWING, 500);
editor.putBoolean(Prefs.IS_CONTRIBUTION_COUNT_CHANGED,true);
uploadLimit.setSummary(500 + ""); uploadLimit.setSummary(500 + "");
uploadLimit.setText(500 + ""); uploadLimit.setText(500 + "");
} else { } else {
editor.putInt(Prefs.UPLOADS_SHOWING, Integer.parseInt(newValue.toString())); editor.putInt(Prefs.UPLOADS_SHOWING, Integer.parseInt(newValue.toString()));
editor.putBoolean(Prefs.IS_CONTRIBUTION_COUNT_CHANGED,true);
uploadLimit.setSummary(newValue.toString()); uploadLimit.setSummary(newValue.toString());
} }
editor.apply(); editor.apply();

View file

@ -173,7 +173,7 @@ Tap this message (or hit back) to skip this step.</string>
<string name="mapbox_commons_app_token">pk.eyJ1IjoibWFza2FyYXZpdmVrIiwiYSI6ImNqMmxvdzFjMTAwMHYzM283ZWM3eW5tcDAifQ.ib5SZ9EVjwJe6GSKve0bcg</string> <string name="mapbox_commons_app_token">pk.eyJ1IjoibWFza2FyYXZpdmVrIiwiYSI6ImNqMmxvdzFjMTAwMHYzM283ZWM3eW5tcDAifQ.ib5SZ9EVjwJe6GSKve0bcg</string>
<string name="number_of_uploads">My Recent Upload Limit</string> <string name="number_of_uploads">My Recent Upload Limit</string>
<string name="maximum_limit">Maximum Limit</string> <string name="maximum_limit">Maximum Limit</string>
<string name="maximum_limit_alert">Maximum limit should be 500</string> <string name="maximum_limit_alert">Unable to display more than 500</string>
<string name="set_limit">Set Recent Upload Limit</string> <string name="set_limit">Set Recent Upload Limit</string>
</resources> </resources>