Merge pull request #8500 from osmandapp/Fix_update_routing_profile
Fix doesn`t update profile data selected previously
This commit is contained in:
commit
70634dc35e
2 changed files with 26 additions and 24 deletions
|
@ -698,7 +698,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
}
|
||||
ProfileAppearanceFragment profileAppearanceFragment = getProfileAppearanceFragment();
|
||||
if (profileAppearanceFragment != null) {
|
||||
if (profileAppearanceFragment.isProfileAppearanceChanged(this)) {
|
||||
if (profileAppearanceFragment.isProfileAppearanceChanged()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,6 @@ import net.osmand.plus.ApplicationMode;
|
|||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.UiUtilities;
|
||||
import net.osmand.plus.UiUtilities.DialogButtonType;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.profiles.LocationIcon;
|
||||
import net.osmand.plus.profiles.NavigationIcon;
|
||||
import net.osmand.plus.profiles.ProfileIconColors;
|
||||
|
@ -111,25 +110,11 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
isBaseProfileImported = arguments.getBoolean(IS_BASE_PROFILE_IMPORTED);
|
||||
}
|
||||
if (baseModeForNewProfile != null) {
|
||||
profile.stringKey = baseModeForNewProfile.getStringKey() + "_" + System.currentTimeMillis();
|
||||
setupAppProfileObjectFromAppMode(baseModeForNewProfile);
|
||||
profile.parent = baseModeForNewProfile;
|
||||
profile.name = baseModeForNewProfile.toHumanString();
|
||||
profile.color = baseModeForNewProfile.getIconColorInfo();
|
||||
profile.iconRes = baseModeForNewProfile.getIconRes();
|
||||
profile.routingProfile = baseModeForNewProfile.getRoutingProfile();
|
||||
profile.routeService = baseModeForNewProfile.getRouteService();
|
||||
profile.locationIcon = baseModeForNewProfile.getLocationIcon();
|
||||
profile.navigationIcon = baseModeForNewProfile.getNavigationIcon();
|
||||
profile.stringKey = getUniqueStringKey(baseModeForNewProfile);
|
||||
} else {
|
||||
profile.stringKey = getSelectedAppMode().getStringKey();
|
||||
profile.parent = getSelectedAppMode().getParent();
|
||||
profile.name = getSelectedAppMode().toHumanString();
|
||||
profile.color = getSelectedAppMode().getIconColorInfo();
|
||||
profile.iconRes = getSelectedAppMode().getIconRes();
|
||||
profile.routingProfile = getSelectedAppMode().getRoutingProfile();
|
||||
profile.routeService = getSelectedAppMode().getRouteService();
|
||||
profile.locationIcon = getSelectedAppMode().getLocationIcon();
|
||||
profile.navigationIcon = getSelectedAppMode().getNavigationIcon();
|
||||
setupAppProfileObjectFromAppMode(getSelectedAppMode());
|
||||
}
|
||||
changedProfile = new ApplicationProfileObject();
|
||||
if (savedInstanceState != null) {
|
||||
|
@ -152,6 +137,18 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
isNewProfile = ApplicationMode.valueOfStringKey(changedProfile.stringKey, null) == null;
|
||||
}
|
||||
|
||||
public void setupAppProfileObjectFromAppMode(ApplicationMode baseModeForNewProfile) {
|
||||
profile.stringKey = baseModeForNewProfile.getStringKey();
|
||||
profile.parent = baseModeForNewProfile.getParent();
|
||||
profile.name = baseModeForNewProfile.toHumanString();
|
||||
profile.color = baseModeForNewProfile.getIconColorInfo();
|
||||
profile.iconRes = baseModeForNewProfile.getIconRes();
|
||||
profile.routingProfile = baseModeForNewProfile.getRoutingProfile();
|
||||
profile.routeService = baseModeForNewProfile.getRouteService();
|
||||
profile.locationIcon = baseModeForNewProfile.getLocationIcon();
|
||||
profile.navigationIcon = baseModeForNewProfile.getNavigationIcon();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createToolbar(LayoutInflater inflater, View view) {
|
||||
super.createToolbar(inflater, view);
|
||||
|
@ -388,7 +385,6 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
for (ProfileIconColors color : ProfileIconColors.values()) {
|
||||
View colorItem = createColorItemView(color, colorItems);
|
||||
colorItems.addView(colorItem, new FlowLayout.LayoutParams(0, 0));
|
||||
|
||||
}
|
||||
updateColorSelector(changedProfile.color);
|
||||
} else if (ICON_ITEMS.equals(preference.getKey())) {
|
||||
|
@ -607,7 +603,7 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
if (iconItem != null) {
|
||||
AndroidUtils.setBackground(iconItem.findViewById(R.id.backgroundCircle),
|
||||
UiUtilities.tintDrawable(ContextCompat.getDrawable(app, R.drawable.circle_background_light),
|
||||
UiUtilities.getColorWithAlpha(ContextCompat.getColor(app, changedProfile.color.getColor(isNightMode())), 0.1f)));
|
||||
UiUtilities.getColorWithAlpha(ContextCompat.getColor(app, changedProfile.color.getColor(isNightMode())), 0.1f)));
|
||||
ImageView outlineCircle = iconItem.findViewById(R.id.outlineCircle);
|
||||
GradientDrawable circleContourDrawable = (GradientDrawable) ContextCompat.getDrawable(app, R.drawable.circle_contour_bg_light);
|
||||
if (circleContourDrawable != null) {
|
||||
|
@ -646,6 +642,8 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
deleteImportedProfile();
|
||||
setupBaseProfileView(profileKey);
|
||||
changedProfile.parent = ApplicationMode.valueOfStringKey(profileKey, ApplicationMode.DEFAULT);
|
||||
changedProfile.routingProfile = changedProfile.parent.getRoutingProfile();
|
||||
changedProfile.routeService = changedProfile.parent.getRouteService();
|
||||
this.isBaseProfileImported = isBaseProfileImported;
|
||||
}
|
||||
|
||||
|
@ -655,7 +653,7 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
}
|
||||
|
||||
private boolean saveProfile() {
|
||||
if (changedProfile.name.replace(" ", "").length() < 1) {
|
||||
if (changedProfile.name.trim().isEmpty()) {
|
||||
if (getActivity() != null) {
|
||||
createWarningDialog(getActivity(),
|
||||
R.string.profile_alert_need_profile_name_title, R.string.profile_alert_need_profile_name_msg, R.string.shared_string_dismiss).show();
|
||||
|
@ -663,6 +661,7 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
return false;
|
||||
}
|
||||
if (isNewProfile) {
|
||||
changedProfile.stringKey = getUniqueStringKey(changedProfile.parent);
|
||||
ApplicationMode.ApplicationModeBuilder builder = ApplicationMode
|
||||
.createCustomMode(changedProfile.parent, changedProfile.stringKey, app)
|
||||
.setIconResName(ProfileIcons.getResStringByResId(changedProfile.iconRes))
|
||||
|
@ -689,10 +688,13 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
mode.setLocationIcon(changedProfile.locationIcon);
|
||||
mode.setNavigationIcon(changedProfile.navigationIcon);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private String getUniqueStringKey(ApplicationMode mode) {
|
||||
return mode.getStringKey() + "_" + System.currentTimeMillis();
|
||||
}
|
||||
|
||||
private boolean hasNameDuplicate() {
|
||||
for (ApplicationMode m : ApplicationMode.allPossibleValues()) {
|
||||
if (m.toHumanString().trim().equals(changedProfile.name.trim()) &&
|
||||
|
@ -712,7 +714,7 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment {
|
|||
profileNameOtfb.setError(errorMessage, true);
|
||||
}
|
||||
|
||||
public boolean isProfileAppearanceChanged(final MapActivity mapActivity) {
|
||||
public boolean isProfileAppearanceChanged() {
|
||||
hideKeyboard();
|
||||
if (isChanged()) {
|
||||
AlertDialog.Builder dismissDialog = createWarningDialog(getActivity(),
|
||||
|
|
Loading…
Reference in a new issue