From cdc8331ca55ba9698ff4909175cf7d07dfccb4fb Mon Sep 17 00:00:00 2001 From: Nazar Date: Tue, 27 Aug 2019 12:27:51 +0300 Subject: [PATCH] Profiles list color fix QuickActionListFragment "delete dialog" color fix --- .../AppModesBottomSheetDialogFragment.java | 2 +- .../plus/profiles/ProfileMenuAdapter.java | 41 ++++++++++++++----- .../quickaction/QuickActionListFragment.java | 9 ++-- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/profiles/AppModesBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/profiles/AppModesBottomSheetDialogFragment.java index 5f0e08867c..4da3f984da 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/AppModesBottomSheetDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/profiles/AppModesBottomSheetDialogFragment.java @@ -104,7 +104,7 @@ public class AppModesBottomSheetDialogFragment extends MenuBottomSheetDialogFrag public void createMenuItems(Bundle savedInstanceState) { themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; - adapter = new ProfileMenuAdapter(allModes, selectedModes, getMyApplication(), getString(R.string.shared_string_manage)); + adapter = new ProfileMenuAdapter(allModes, selectedModes, getMyApplication(), getString(R.string.shared_string_manage), true); recyclerView = new RecyclerView(getContext()); recyclerView = (RecyclerView) View .inflate(new ContextThemeWrapper(getContext(), themeRes), R.layout.recyclerview, null); diff --git a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java index 2694227662..bc16eb8927 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java +++ b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java @@ -41,19 +41,27 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter private String bottomButtonText; private static final String BUTTON_ITEM = "button_item"; + private boolean usedOnMap; + public ProfileMenuAdapter(List items, Set selectedItems, - OsmandApplication app, String bottomButtonText) { + OsmandApplication app, String bottomButtonText) { + this(items, selectedItems, app, bottomButtonText, false); + } + + public ProfileMenuAdapter(List items, Set selectedItems, + OsmandApplication app, String bottomButtonText, boolean usedOnMap) { this.items.addAll(items); if (bottomButton) { this.items.add(BUTTON_ITEM); } + this.usedOnMap = usedOnMap; this.app = app; this.selectedItems = selectedItems; this.bottomButton = !Algorithms.isEmpty(bottomButtonText); this.bottomButtonText = bottomButtonText; - selectedIconColorRes = isNightMode(app) - ? R.color.active_color_primary_dark - : R.color.active_color_primary_light; + selectedIconColorRes = isNightMode(app, usedOnMap) + ? R.color.active_color_primary_dark + : R.color.active_color_primary_light; } public List getItems() { @@ -80,6 +88,14 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter return super.getItemViewType(position); } + public boolean isUsedOnMap() { + return usedOnMap; + } + + public void setUsedOnMap(boolean usedOnMap) { + this.usedOnMap = usedOnMap; + } + @NonNull @Override public ProfileViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -99,7 +115,7 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter holder.menuIcon.setVisibility(View.VISIBLE); final ApplicationMode item = (ApplicationMode) obj; if (bottomButton) { - holder.divider.setBackgroundColor(isNightMode(app) + holder.divider.setBackgroundColor(isNightMode(app, usedOnMap) ? app.getResources().getColor(R.color.divider_color_dark) : app.getResources().getColor(R.color.divider_color_light)); } @@ -111,7 +127,7 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter holder.descr.setText(R.string.profile_type_base_string); } - holder.title.setTextColor(app.getResources().getColor(isNightMode(app) + holder.title.setTextColor(app.getResources().getColor(isNightMode(app, usedOnMap) ? R.color.text_color_primary_dark : R.color.text_color_primary_light)); @@ -129,7 +145,7 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter holder.switcher.setVisibility(View.GONE); holder.menuIcon.setVisibility(View.GONE); holder.title.setTextColor(app.getResources().getColor( - isNightMode(app) + isNightMode(app, usedOnMap) ? R.color.active_color_primary_dark : R.color.active_color_primary_light)); holder.title.setText(bottomButtonText); @@ -146,16 +162,19 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter if (iconRes == 0 || iconRes == -1) { iconRes = R.drawable.ic_action_world_globe; } - selectedIconColorRes = mode.getIconColorInfo().getColor(isNightMode(app)); + selectedIconColorRes = mode.getIconColorInfo().getColor(isNightMode(app, usedOnMap)); if (selectedItems.contains(mode)) { - holder.icon.setImageDrawable(app.getUIUtilities().getIcon(iconRes, mode.getIconColorInfo().getColor(isNightMode(app)))); + holder.icon.setImageDrawable(app.getUIUtilities().getIcon(iconRes, mode.getIconColorInfo().getColor(isNightMode(app, usedOnMap)))); } else { holder.icon.setImageDrawable(app.getUIUtilities().getIcon(iconRes, R.color.profile_icon_color_inactive)); } } - private static boolean isNightMode(OsmandApplication ctx) { - return !ctx.getSettings().isLightContent(); + private static boolean isNightMode(OsmandApplication ctx, boolean useMapTheme) { + if (useMapTheme) { + return ctx.getDaynightHelper().isNightModeForMapControls(); + } + return !ctx.getSettings().isLightContent(); } class ProfileViewHolder extends RecyclerView.ViewHolder { diff --git a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java index 43cc98dd4d..a3f49323b9 100644 --- a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java +++ b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java @@ -157,7 +157,9 @@ public class QuickActionListFragment extends BaseOsmAndFragment implements Quick } void createAndShowDeleteDialog(final int itemPosition, final String itemName) { - AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getContext(), R.style.OsmandLightTheme)); + boolean isLightContent = getMyApplication().getSettings().isLightContent(); + AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getContext(), + isLightContent ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme)); builder.setTitle(R.string.quick_actions_delete); builder.setMessage(getResources().getString(R.string.quick_actions_delete_text, itemName)); builder.setIcon(getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_delete_dark)); @@ -173,8 +175,9 @@ public class QuickActionListFragment extends BaseOsmAndFragment implements Quick } }); AlertDialog dialog = builder.show(); - dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(ContextCompat.getColor(getContext(), R.color.active_color_primary_light)); - dialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(ContextCompat.getColor(getContext(), R.color.active_color_primary_light)); + int activeColorPrimaryResId = isLightContent ? R.color.active_color_primary_light : R.color.active_color_primary_dark; + dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(ContextCompat.getColor(getContext(), activeColorPrimaryResId)); + dialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(ContextCompat.getColor(getContext(), activeColorPrimaryResId)); } @Override