Fix profile switch visibility and update osm editing icon

This commit is contained in:
Vitaliy 2020-02-03 15:07:47 +02:00
parent 92a9f98bed
commit 2b9c871e7d
3 changed files with 19 additions and 5 deletions

View file

@ -21,12 +21,12 @@
tools:summary="@string/open_street_map_login_descr" /> tools:summary="@string/open_street_map_login_descr" />
<net.osmand.plus.settings.preferences.SwitchPreferenceEx <net.osmand.plus.settings.preferences.SwitchPreferenceEx
android:icon="@drawable/ic_action_offline"
android:key="offline_osm_editing" android:key="offline_osm_editing"
android:layout="@layout/preference_with_descr_dialog_and_switch" android:layout="@layout/preference_with_descr_dialog_and_switch"
android:summaryOff="@string/shared_string_disabled" android:summaryOff="@string/shared_string_disabled"
android:summaryOn="@string/shared_string_enabled" android:summaryOn="@string/shared_string_enabled"
android:title="@string/offline_edition" /> android:title="@string/offline_edition"
tools:icon="@drawable/ic_action_offline" />
<Preference <Preference
android:layout="@layout/simple_divider_item" android:layout="@layout/simple_divider_item"

View file

@ -2,6 +2,7 @@ package net.osmand.plus.osmedit;
import android.content.Intent; import android.content.Intent;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.text.SpannableString; import android.text.SpannableString;
@ -53,6 +54,11 @@ public class OsmEditingFragment extends BaseSettingsFragment implements OnPrefer
private void setupOfflineEditingPref() { private void setupOfflineEditingPref() {
SwitchPreferenceEx offlineEditingPref = (SwitchPreferenceEx) findPreference(settings.OFFLINE_EDITION.getId()); SwitchPreferenceEx offlineEditingPref = (SwitchPreferenceEx) findPreference(settings.OFFLINE_EDITION.getId());
offlineEditingPref.setDescription(getString(R.string.offline_edition_descr)); offlineEditingPref.setDescription(getString(R.string.offline_edition_descr));
offlineEditingPref.setIcon(getOfflineEditingIcon(settings.OFFLINE_EDITION.get()));
}
private Drawable getOfflineEditingIcon(boolean enabled) {
return enabled ? getActiveIcon(R.drawable.ic_world_globe_dark) : getContentIcon(R.drawable.ic_action_offline);
} }
private void setupOsmEditsDescrPref() { private void setupOsmEditsDescrPref() {
@ -92,6 +98,14 @@ public class OsmEditingFragment extends BaseSettingsFragment implements OnPrefer
return super.onPreferenceClick(preference); return super.onPreferenceClick(preference);
} }
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (settings.OFFLINE_EDITION.getId().equals(preference.getKey()) && newValue instanceof Boolean) {
preference.setIcon(getOfflineEditingIcon((Boolean) newValue));
}
return super.onPreferenceChange(preference, newValue);
}
@Override @Override
public void onPreferenceChanged(String prefId) { public void onPreferenceChanged(String prefId) {
if (OSM_LOGIN_DATA.equals(prefId)) { if (OSM_LOGIN_DATA.equals(prefId)) {

View file

@ -19,6 +19,7 @@ import net.osmand.plus.R;
import net.osmand.plus.SettingsHelper.*; import net.osmand.plus.SettingsHelper.*;
import net.osmand.plus.UiUtilities; import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment; import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment;
import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SelectProfileListener; import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SelectProfileListener;
import net.osmand.plus.settings.preferences.SwitchPreferenceEx; import net.osmand.plus.settings.preferences.SwitchPreferenceEx;
@ -88,9 +89,8 @@ public class MainSettingsFragment extends BaseSettingsFragment {
AndroidUtils.setBackground(selectedProfile, backgroundDrawable); AndroidUtils.setBackground(selectedProfile, backgroundDrawable);
} }
} }
if (ApplicationMode.DEFAULT.getStringKey().equals(preference.getKey())) { boolean visible = !ApplicationMode.DEFAULT.getStringKey().equals(key);
holder.findViewById(R.id.switchWidget).setVisibility(View.GONE); AndroidUiHelper.updateVisibility(holder.findViewById(R.id.switchWidget), visible);
}
} }
@Override @Override