aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChumva <faiver.unknown@gmail.com>2019-10-23 12:35:04 +0300
committerChumva <faiver.unknown@gmail.com>2019-10-23 12:35:04 +0300
commitba931f10e78a3744dcbfcca8f67f856d8f848b5a (patch)
tree5baccbc3418d34729fa7dff9718e7d2c4ffd3a34
parent2b4f56da488471e168e4dea62152879d72c6ffe7 (diff)
downloadOsmand-ba931f10e78a3744dcbfcca8f67f856d8f848b5a.tar.gz
Fix coordinates format screen
-rw-r--r--OsmAnd/src/net/osmand/plus/OsmandSettings.java21
-rw-r--r--OsmAnd/src/net/osmand/plus/settings/CoordinatesFormatFragment.java10
-rw-r--r--OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeGeneralProfilesPrefBottomSheet.java35
3 files changed, 25 insertions, 41 deletions
diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java
index 3b06898288..f1b1c10176 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java
@@ -241,14 +241,21 @@ public class OsmandSettings {
public boolean setSharedGeneralPreference(String key, Object value) {
OsmandPreference<?> preference = registeredPreferences.get(key);
- if (preference != null) {
- for (ApplicationMode mode : ApplicationMode.values(ctx)) {
- settingsAPI.edit(getProfilePreferences(mode)).remove(key).commit();
- }
- if (preference instanceof CommonPreference) {
- ((CommonPreference) preference).cachedValue = null;
+ if (preference instanceof CommonPreference) {
+ CommonPreference commonPref = (CommonPreference) preference;
+ if (commonPref.general) {
+ for (ApplicationMode mode : ApplicationMode.values(ctx)) {
+ if (commonPref.isSetForMode(mode)) {
+ settingsAPI.edit(getProfilePreferences(mode)).remove(key).commit();
+ }
+ }
+ boolean valueSaved = setPreference(key, value, ApplicationMode.DEFAULT);
+ if (valueSaved) {
+ commonPref.cachedValue = null;
+ }
+
+ return valueSaved;
}
- return setPreference(key, value, ApplicationMode.DEFAULT);
}
return false;
}
diff --git a/OsmAnd/src/net/osmand/plus/settings/CoordinatesFormatFragment.java b/OsmAnd/src/net/osmand/plus/settings/CoordinatesFormatFragment.java
index 8ad5a94578..23c25ddc80 100644
--- a/OsmAnd/src/net/osmand/plus/settings/CoordinatesFormatFragment.java
+++ b/OsmAnd/src/net/osmand/plus/settings/CoordinatesFormatFragment.java
@@ -119,13 +119,9 @@ public class CoordinatesFormatFragment extends BaseSettingsFragment {
int newFormat = getCoordinatesFormatForKey(key);
if (newFormat != -1) {
ApplicationMode selectedAppMode = getSelectedAppMode();
- if (settings.COORDINATES_FORMAT.isSetForMode(selectedAppMode)) {
- if (!settings.COORDINATES_FORMAT.getModeValue(selectedAppMode).equals(newFormat)) {
- settings.COORDINATES_FORMAT.set(newFormat);
- updateSelectedFormatPrefs(key);
- return true;
- }
- } else {
+ if (!settings.COORDINATES_FORMAT.getModeValue(selectedAppMode).equals(newFormat)) {
+ updateSelectedFormatPrefs(key);
+
FragmentManager fragmentManager = getFragmentManager();
if (fragmentManager != null) {
ChangeGeneralProfilesPrefBottomSheet.showInstance(fragmentManager, settings.COORDINATES_FORMAT.getId(), newFormat, this, false);
diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeGeneralProfilesPrefBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeGeneralProfilesPrefBottomSheet.java
index 8e8ebeb3f3..580fd02e5c 100644
--- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeGeneralProfilesPrefBottomSheet.java
+++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeGeneralProfilesPrefBottomSheet.java
@@ -9,8 +9,6 @@ import android.view.View;
import net.osmand.PlatformUtil;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmandApplication;
-import net.osmand.plus.OsmandSettings.CommonPreference;
-import net.osmand.plus.OsmandSettings.OsmandPreference;
import net.osmand.plus.R;
import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem;
import net.osmand.plus.base.bottomsheetmenu.SimpleBottomSheetItem;
@@ -35,12 +33,7 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
if (app == null || args == null || newValue == null || !args.containsKey(PREFERENCE_ID)) {
return;
}
-
final String prefId = args.getString(PREFERENCE_ID);
- CommonPreference pref = getPreference(prefId);
- if (pref == null) {
- return;
- }
items.add(new TitleItem(getString(R.string.change_default_settings)));
items.add(new LongDescriptionItem(getString(R.string.apply_preference_to_all_profiles)));
@@ -52,13 +45,8 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- boolean valueSaved = app.getSettings().setSharedGeneralPreference(prefId, newValue);
- if (valueSaved) {
- BaseSettingsFragment target = (BaseSettingsFragment) getTargetFragment();
- if (target != null) {
- target.updateAllSettings();
- }
- }
+ app.getSettings().setSharedGeneralPreference(prefId, newValue);
+ updateTargetSettings();
dismiss();
}
})
@@ -75,10 +63,7 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
@Override
public void onClick(View v) {
app.getSettings().setPreference(prefId, newValue);
- BaseSettingsFragment target = (BaseSettingsFragment) getTargetFragment();
- if (target != null) {
- target.updateAllSettings();
- }
+ updateTargetSettings();
dismiss();
}
})
@@ -92,6 +77,7 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ updateTargetSettings();
dismiss();
}
})
@@ -104,16 +90,11 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
return true;
}
- private CommonPreference getPreference(String prefId) {
- OsmandApplication app = getMyApplication();
- if (app != null) {
- OsmandPreference pref = app.getSettings().getPreference(prefId);
- if (pref instanceof CommonPreference) {
- return (CommonPreference) pref;
- }
+ private void updateTargetSettings() {
+ BaseSettingsFragment target = (BaseSettingsFragment) getTargetFragment();
+ if (target != null) {
+ target.updateAllSettings();
}
-
- return null;
}
public static void showInstance(@NonNull FragmentManager fm, String prefId, Object newValue, Fragment target, boolean usedOnMap) {