From d1fc670b19d5c7e81dae71bcf3f4c6df72cb2edb Mon Sep 17 00:00:00 2001 From: Dinu Kumarasiri Date: Sun, 14 May 2017 14:33:19 +0200 Subject: [PATCH] Fix the issue of not reloading the cursor after the setting changed --- .../contributions/ContributionsActivity.java | 12 +++++++++-- .../fr/free/nrw/commons/settings/Prefs.java | 1 + .../commons/settings/SettingsFragment.java | 20 ++++++++++--------- app/src/main/res/values/strings.xml | 2 +- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java index 7900151c7..8043f99be 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java @@ -42,8 +42,7 @@ public class ContributionsActivity AdapterView.OnItemClickListener, MediaDetailPagerFragment.MediaDetailProvider, FragmentManager.OnBackStackChangedListener, - ContributionsListFragment.SourceRefresher -{ + ContributionsListFragment.SourceRefresher { private Cursor allContributions; private ContributionsListFragment contributionsList; @@ -92,6 +91,15 @@ public class ContributionsActivity @Override protected void 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 diff --git a/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java b/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java index 4c2209153..722733393 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java @@ -6,6 +6,7 @@ public class Prefs { public static String TRACKING_ENABLED = "eventLogging"; public static final String DEFAULT_LICENSE = "defaultLicense"; public static final String UPLOADS_SHOWING = "uploadsshowing"; + public static final String IS_CONTRIBUTION_COUNT_CHANGED = "ccontributionCountChanged"; public static class Licenses { public static final String CC_BY_SA_3 = "CC BY-SA 3.0"; diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java index d5eeda7e7..c2d508acd 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java @@ -41,12 +41,13 @@ public class SettingsFragment extends PreferenceFragment { }); licensePreference.setSummary(getString(Utils.licenseNameFor(licensePreference.getValue()))); - licensePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener(){ - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - preference.setSummary(getString(Utils.licenseNameFor((String) newValue))); - return true; - } + licensePreference + .setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener(){ + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + preference.setSummary(getString(Utils.licenseNameFor((String) newValue))); + return true; + } }); CheckBoxPreference themePreference = (CheckBoxPreference) findPreference("theme"); @@ -59,17 +60,16 @@ public class SettingsFragment extends PreferenceFragment { }); final EditTextPreference uploadLimit = (EditTextPreference) findPreference("uploads"); - SharedPreferences sharedPref = PreferenceManager + final SharedPreferences sharedPref = PreferenceManager .getDefaultSharedPreferences(getActivity().getApplicationContext()); int uploads = sharedPref.getInt(Prefs.UPLOADS_SHOWING, 100); + uploadLimit.setText(uploads + ""); uploadLimit.setSummary(uploads + ""); uploadLimit.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { int value = Integer.parseInt(newValue.toString()); - final SharedPreferences sharedPref = PreferenceManager - .getDefaultSharedPreferences(getActivity().getApplicationContext()); final SharedPreferences.Editor editor = sharedPref.edit(); if (value > 500) { new AlertDialog.Builder(getActivity()) @@ -83,10 +83,12 @@ public class SettingsFragment extends PreferenceFragment { .setIcon(android.R.drawable.ic_dialog_alert) .show(); editor.putInt(Prefs.UPLOADS_SHOWING, 500); + editor.putBoolean(Prefs.IS_CONTRIBUTION_COUNT_CHANGED,true); uploadLimit.setSummary(500 + ""); uploadLimit.setText(500 + ""); } else { editor.putInt(Prefs.UPLOADS_SHOWING, Integer.parseInt(newValue.toString())); + editor.putBoolean(Prefs.IS_CONTRIBUTION_COUNT_CHANGED,true); uploadLimit.setSummary(newValue.toString()); } editor.apply(); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f501975e8..4ec2b88ff 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -173,7 +173,7 @@ Tap this message (or hit back) to skip this step. pk.eyJ1IjoibWFza2FyYXZpdmVrIiwiYSI6ImNqMmxvdzFjMTAwMHYzM283ZWM3eW5tcDAifQ.ib5SZ9EVjwJe6GSKve0bcg My Recent Upload Limit Maximum Limit - Maximum limit should be 500 + Unable to display more than 500 Set Recent Upload Limit