Refactor
This commit is contained in:
parent
8b74ded620
commit
d405a20c3e
4 changed files with 31 additions and 33 deletions
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:osmand="http://schemas.android.com/apk/res-auto"
|
xmlns:osmand="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -16,7 +15,7 @@
|
||||||
tools:background="?android:attr/selectableItemBackground">
|
tools:background="?android:attr/selectableItemBackground">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/icon_elevation"
|
android:id="@+id/icon"
|
||||||
android:layout_width="@dimen/standard_icon_size"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="@dimen/standard_icon_size"
|
android:layout_height="@dimen/standard_icon_size"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
|
@ -28,11 +27,6 @@
|
||||||
android:layout_marginBottom="@dimen/bottom_sheet_icon_margin"
|
android:layout_marginBottom="@dimen/bottom_sheet_icon_margin"
|
||||||
osmand:srcCompat="@drawable/ic_action_altitude_average" />
|
osmand:srcCompat="@drawable/ic_action_altitude_average" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:id="@+id/icon"
|
|
||||||
android:layout_width="1dp"
|
|
||||||
android:layout_height="1dp" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -41,7 +35,7 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<net.osmand.plus.widgets.TextViewEx
|
<net.osmand.plus.widgets.TextViewEx
|
||||||
android:id="@android:id/title"
|
android:id="@+id/title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ellipsize="marquee"
|
android:ellipsize="marquee"
|
||||||
|
@ -53,7 +47,7 @@
|
||||||
osmand:typeface="@string/font_roboto_regular" />
|
osmand:typeface="@string/font_roboto_regular" />
|
||||||
|
|
||||||
<net.osmand.plus.widgets.TextViewEx
|
<net.osmand.plus.widgets.TextViewEx
|
||||||
android:id="@android:id/summary"
|
android:id="@+id/description"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:letterSpacing="@dimen/description_letter_spacing"
|
android:letterSpacing="@dimen/description_letter_spacing"
|
|
@ -50,7 +50,6 @@ import net.osmand.plus.settings.backend.CommonPreference;
|
||||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||||
import net.osmand.plus.settings.bottomsheets.ElevationDateBottomSheet;
|
import net.osmand.plus.settings.bottomsheets.ElevationDateBottomSheet;
|
||||||
import net.osmand.plus.settings.fragments.BaseSettingsFragment;
|
import net.osmand.plus.settings.fragments.BaseSettingsFragment;
|
||||||
import net.osmand.plus.widgets.TextViewEx;
|
|
||||||
import net.osmand.router.GeneralRouter;
|
import net.osmand.router.GeneralRouter;
|
||||||
import net.osmand.router.GeneralRouter.RoutingParameter;
|
import net.osmand.router.GeneralRouter.RoutingParameter;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
|
@ -264,16 +263,9 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
|
||||||
final BottomSheetItemWithCompoundButton[] item = new BottomSheetItemWithCompoundButton[1];
|
final BottomSheetItemWithCompoundButton[] item = new BottomSheetItemWithCompoundButton[1];
|
||||||
final boolean active = !useHeightPref.getModeValue(applicationMode);
|
final boolean active = !useHeightPref.getModeValue(applicationMode);
|
||||||
final View itemView = UiUtilities.getInflater(app, nightMode).inflate(
|
final View itemView = UiUtilities.getInflater(app, nightMode).inflate(
|
||||||
R.layout.elevation_preference, null, false);
|
R.layout.bottom_sheet_item_with_switch_and_dialog, null, false);
|
||||||
final ImageView iconView = itemView.findViewById(R.id.icon_elevation);
|
|
||||||
final SwitchCompat switchButton = itemView.findViewById(R.id.switchWidget);
|
final SwitchCompat switchButton = itemView.findViewById(R.id.switchWidget);
|
||||||
int selectedModeColor = ContextCompat.getColor(app, selectedModeColorId);
|
int selectedModeColor = ContextCompat.getColor(app, selectedModeColorId);
|
||||||
iconView.setImageDrawable(getContentIcon(active ?
|
|
||||||
optionsItem.getActiveIconId() : optionsItem.getDisabledIconId()));
|
|
||||||
TextView title = itemView.findViewById(android.R.id.title);
|
|
||||||
title.setText(getString(R.string.routing_attr_height_obstacles_name));
|
|
||||||
final TextView description = itemView.findViewById(android.R.id.summary);
|
|
||||||
description.setText(getString(R.string.routing_attr_height_obstacles_name));
|
|
||||||
View itemsContainer = itemView.findViewById(R.id.selectable_list_item);
|
View itemsContainer = itemView.findViewById(R.id.selectable_list_item);
|
||||||
switchButton.setChecked(!active);
|
switchButton.setChecked(!active);
|
||||||
switchButton.setFocusable(false);
|
switchButton.setFocusable(false);
|
||||||
|
@ -297,6 +289,10 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
|
||||||
});
|
});
|
||||||
|
|
||||||
item[0] = (BottomSheetItemWithCompoundButton) new BottomSheetItemWithCompoundButton.Builder()
|
item[0] = (BottomSheetItemWithCompoundButton) new BottomSheetItemWithCompoundButton.Builder()
|
||||||
|
.setCompoundButtonColorId(selectedModeColorId)
|
||||||
|
.setDescription(getString(R.string.routing_attr_height_obstacles_name))
|
||||||
|
.setIcon(getContentIcon(active ? optionsItem.getActiveIconId() : optionsItem.getDisabledIconId()))
|
||||||
|
.setTitle(getString(R.string.routing_attr_height_obstacles_name))
|
||||||
.setCustomView(itemView)
|
.setCustomView(itemView)
|
||||||
.create();
|
.create();
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,6 @@ public class ElevationDateBottomSheet extends MenuBottomSheetDialogFragment {
|
||||||
appMode = ApplicationMode.valueOfStringKey(savedInstanceState.getString(APP_MODE_KEY), null);
|
appMode = ApplicationMode.valueOfStringKey(savedInstanceState.getString(APP_MODE_KEY), null);
|
||||||
}
|
}
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setDismissButtonTextId(R.string.shared_string_close);
|
|
||||||
|
|
||||||
Map<String, RoutingParameter> routingParameterMap = app.getRouter(appMode).getParameters();
|
Map<String, RoutingParameter> routingParameterMap = app.getRouter(appMode).getParameters();
|
||||||
RoutingParameter parameter = routingParameterMap.get(USE_HEIGHT_OBSTACLES);
|
RoutingParameter parameter = routingParameterMap.get(USE_HEIGHT_OBSTACLES);
|
||||||
|
@ -91,6 +90,11 @@ public class ElevationDateBottomSheet extends MenuBottomSheetDialogFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getDismissButtonTextId() {
|
||||||
|
return R.string.shared_string_close;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createMenuItems(Bundle savedInstanceState) {
|
public void createMenuItems(Bundle savedInstanceState) {
|
||||||
Context themedCtx = UiUtilities.getThemedContext(requireContext(), nightMode);
|
Context themedCtx = UiUtilities.getThemedContext(requireContext(), nightMode);
|
||||||
|
@ -178,7 +182,7 @@ public class ElevationDateBottomSheet extends MenuBottomSheetDialogFragment {
|
||||||
((BaseSettingsFragment) target).updateSetting(useHeightPref.getId());
|
((BaseSettingsFragment) target).updateSetting(useHeightPref.getId());
|
||||||
}
|
}
|
||||||
updateReliefButtons();
|
updateReliefButtons();
|
||||||
new Handler().postDelayed(new Runnable() {
|
app.runInUIThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
dismiss();
|
dismiss();
|
||||||
|
|
|
@ -290,19 +290,7 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
|
||||||
switchPreferenceEx.setIcon(getRoutingPrefIcon(p.getId()));
|
switchPreferenceEx.setIcon(getRoutingPrefIcon(p.getId()));
|
||||||
screen.addPreference(switchPreferenceEx);
|
screen.addPreference(switchPreferenceEx);
|
||||||
|
|
||||||
if (USE_HEIGHT_OBSTACLES.equals(p.getId()) && !Algorithms.isEmpty(reliefFactorParameters)) {
|
setupOtherBooleanParameterSummary(app, am, p, switchPreferenceEx);
|
||||||
String summaryOn = getString(R.string.shared_string_enabled);
|
|
||||||
for (RoutingParameter parameter : reliefFactorParameters) {
|
|
||||||
if (isRoutingParameterSelected(settings, am, parameter)) {
|
|
||||||
summaryOn = getString(R.string.ltr_or_rtl_combine_via_comma, summaryOn, getRoutingParameterTitle(app, parameter));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
switchPreferenceEx.setSummaryOn(summaryOn);
|
|
||||||
switchPreferenceEx.setSummaryOff(R.string.shared_string_disabled);
|
|
||||||
} else {
|
|
||||||
switchPreferenceEx.setSummaryOn(R.string.shared_string_on);
|
|
||||||
switchPreferenceEx.setSummaryOff(R.string.shared_string_off);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
Object[] vls = p.getPossibleValues();
|
Object[] vls = p.getPossibleValues();
|
||||||
String[] svlss = new String[vls.length];
|
String[] svlss = new String[vls.length];
|
||||||
|
@ -352,6 +340,22 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
|
||||||
setupFastRecalculationPref();
|
setupFastRecalculationPref();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setupOtherBooleanParameterSummary(OsmandApplication app, ApplicationMode am, RoutingParameter p, SwitchPreferenceEx switchPreferenceEx) {
|
||||||
|
if (USE_HEIGHT_OBSTACLES.equals(p.getId()) && !Algorithms.isEmpty(reliefFactorParameters)) {
|
||||||
|
String summaryOn = getString(R.string.shared_string_enabled);
|
||||||
|
for (RoutingParameter parameter : reliefFactorParameters) {
|
||||||
|
if (isRoutingParameterSelected(settings, am, parameter)) {
|
||||||
|
summaryOn = getString(R.string.ltr_or_rtl_combine_via_comma, summaryOn, getRoutingParameterTitle(app, parameter));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switchPreferenceEx.setSummaryOn(summaryOn);
|
||||||
|
switchPreferenceEx.setSummaryOff(R.string.shared_string_disabled);
|
||||||
|
} else {
|
||||||
|
switchPreferenceEx.setSummaryOn(R.string.shared_string_on);
|
||||||
|
switchPreferenceEx.setSummaryOff(R.string.shared_string_off);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void addDivider(PreferenceScreen screen) {
|
private void addDivider(PreferenceScreen screen) {
|
||||||
Preference divider = new Preference(requireContext());
|
Preference divider = new Preference(requireContext());
|
||||||
divider.setLayoutResource(R.layout.simple_divider_item);
|
divider.setLayoutResource(R.layout.simple_divider_item);
|
||||||
|
|
Loading…
Reference in a new issue