Fix enabling edited profile as current app mode

This commit is contained in:
Chumva 2019-11-18 18:26:28 +02:00
parent 124cc6590f
commit b3fe910193
4 changed files with 9 additions and 9 deletions

View file

@ -843,8 +843,9 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
} }
if (intent.hasExtra(EditProfileFragment.OPEN_SETTINGS)) { if (intent.hasExtra(EditProfileFragment.OPEN_SETTINGS)) {
String settingsType = intent.getStringExtra(EditProfileFragment.OPEN_SETTINGS); String settingsType = intent.getStringExtra(EditProfileFragment.OPEN_SETTINGS);
String appMode = intent.getStringExtra(EditProfileFragment.SELECTED_ITEM);
if (EditProfileFragment.OPEN_CONFIG_PROFILE.equals(settingsType)) { if (EditProfileFragment.OPEN_CONFIG_PROFILE.equals(settingsType)) {
BaseSettingsFragment.showInstance(this, SettingsScreenType.CONFIGURE_PROFILE); BaseSettingsFragment.showInstance(this, SettingsScreenType.CONFIGURE_PROFILE, ApplicationMode.valueOfStringKey(appMode, null));
} }
setIntent(null); setIntent(null);
} }

View file

@ -369,16 +369,13 @@ public class EditProfileFragment extends BaseOsmAndFragment {
if (dataChanged) { if (dataChanged) {
needSaveDialog(); needSaveDialog();
} else if (getSettings() != null) { } else if (getSettings() != null) {
activateMode(mode);
getSettings().APPLICATION_MODE.set(mode);
if (activity instanceof EditProfileActivity) { if (activity instanceof EditProfileActivity) {
Intent i = new Intent(getActivity(), MapActivity.class); Intent i = new Intent(getActivity(), MapActivity.class);
i.putExtra(OPEN_SETTINGS, OPEN_CONFIG_PROFILE); i.putExtra(OPEN_SETTINGS, OPEN_CONFIG_PROFILE);
i.putExtra(SELECTED_ITEM, profile.stringKey); i.putExtra(SELECTED_ITEM, profile.stringKey);
startActivity(i); startActivity(i);
} else { } else {
BaseSettingsFragment.showInstance(activity, SettingsScreenType.CONFIGURE_PROFILE); BaseSettingsFragment.showInstance(activity, SettingsScreenType.CONFIGURE_PROFILE, ApplicationMode.valueOfStringKey(profile.stringKey, null));
} }
} }
} }

View file

@ -304,7 +304,11 @@ public class ConfigureProfileFragment extends BaseSettingsFragment {
try { try {
FragmentManager fragmentManager = activity.getSupportFragmentManager(); FragmentManager fragmentManager = activity.getSupportFragmentManager();
if (fragmentManager != null) { if (fragmentManager != null) {
settings.APPLICATION_MODE.set(getSelectedAppMode()); ApplicationMode selectedMode = getSelectedAppMode();
if (!ApplicationMode.values(app).contains(selectedMode)) {
ApplicationMode.changeProfileAvailability(selectedMode, true, app);
}
settings.APPLICATION_MODE.set(selectedMode);
fragmentManager.beginTransaction() fragmentManager.beginTransaction()
.remove(this) .remove(this)
.addToBackStack(TAG) .addToBackStack(TAG)

View file

@ -98,8 +98,6 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
if (app == null) { if (app == null) {
return; return;
} }
ApplicationMode selectedMode = getSelectedAppMode();
ApplicationMode[] appModes = ApplicationMode.values(app).toArray(new ApplicationMode[0]); ApplicationMode[] appModes = ApplicationMode.values(app).toArray(new ApplicationMode[0]);
String[] entries = new String[appModes.length]; String[] entries = new String[appModes.length];
String[] entryValues = new String[appModes.length]; String[] entryValues = new String[appModes.length];
@ -109,7 +107,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
} }
ListPreferenceEx defaultApplicationMode = (ListPreferenceEx) findPreference(settings.DEFAULT_APPLICATION_MODE.getId()); ListPreferenceEx defaultApplicationMode = (ListPreferenceEx) findPreference(settings.DEFAULT_APPLICATION_MODE.getId());
defaultApplicationMode.setIcon(getContentIcon(selectedMode.getIconRes())); defaultApplicationMode.setIcon(getContentIcon(settings.DEFAULT_APPLICATION_MODE.get().getIconRes()));
defaultApplicationMode.setEntries(entries); defaultApplicationMode.setEntries(entries);
defaultApplicationMode.setEntryValues(entryValues); defaultApplicationMode.setEntryValues(entryValues);
} }