From c83434064bc4c9b3d402f330bc67608b5964ff0d Mon Sep 17 00:00:00 2001 From: Aaron Heuckroth Date: Wed, 13 Mar 2019 16:27:15 -0400 Subject: [PATCH] Use different colors for grid-based global actions menu. Refactor EmergencyActions to group coloring code. Test: Automated tests pass, global actions menu colors match mocks for dark + light themes. Buttons and text are readable. Change-Id: Ia0ca8c31d09cda8acda7b8677c2ccd923cc2c0c5 Fixes: 126445990 Fixes: 128768560 --- .../res/layout/global_actions_grid.xml | 2 - packages/SystemUI/res/values-night/colors.xml | 12 +++ packages/SystemUI/res/values/colors.xml | 15 +++ .../android/systemui/HardwareBgDrawable.java | 2 +- .../globalactions/GlobalActionsDialog.java | 100 ++++++++++-------- .../GlobalActionsGridLayout.java | 11 +- 6 files changed, 91 insertions(+), 51 deletions(-) diff --git a/packages/SystemUI/res/layout/global_actions_grid.xml b/packages/SystemUI/res/layout/global_actions_grid.xml index d90d5e9f676b2..8651e5a463c98 100644 --- a/packages/SystemUI/res/layout/global_actions_grid.xml +++ b/packages/SystemUI/res/layout/global_actions_grid.xml @@ -31,7 +31,6 @@ android:paddingTop="@dimen/global_actions_grid_vertical_padding" android:paddingBottom="@dimen/global_actions_grid_vertical_padding" android:orientation="vertical" - android:background="?android:attr/colorBackgroundFloating" android:gravity="center" android:translationZ="@dimen/global_actions_translate" /> @@ -48,7 +47,6 @@ android:paddingRight="@dimen/global_actions_grid_horizontal_padding" android:paddingTop="@dimen/global_actions_grid_vertical_padding" android:paddingBottom="@dimen/global_actions_grid_vertical_padding" - android:background="?android:attr/colorBackgroundFloating" > @color/GM2_grey_800 + + + @color/GM2_grey_900 + + + @color/GM2_grey_800 + + + @color/GM2_grey_200 + + + @color/GM2_red_300 \ No newline at end of file diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml index 0e4ffee81165c..b82c250e2bd25 100644 --- a/packages/SystemUI/res/values/colors.xml +++ b/packages/SystemUI/res/values/colors.xml @@ -38,6 +38,18 @@ @color/GM2_grey_50 @color/GM2_grey_100 + + @color/GM2_grey_300 + + + @color/GM2_grey_200 + + + @color/GM2_grey_900 + + + @color/GM2_red_500 + #ff686868 @@ -149,4 +161,7 @@ #5F6368 #3C4043 #202124 + + #F28B82 + #B71C1C diff --git a/packages/SystemUI/src/com/android/systemui/HardwareBgDrawable.java b/packages/SystemUI/src/com/android/systemui/HardwareBgDrawable.java index 97d799909ed9f..d631cf3551d98 100644 --- a/packages/SystemUI/src/com/android/systemui/HardwareBgDrawable.java +++ b/packages/SystemUI/src/com/android/systemui/HardwareBgDrawable.java @@ -115,4 +115,4 @@ public class HardwareBgDrawable extends LayerDrawable { public void setRotatedBackground(boolean rotatedBackground) { mRotatedBackground = rotatedBackground; } -} +} \ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java index ce588955298c5..50530ff46e8d7 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java @@ -379,8 +379,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, mHasLogoutButton = true; } } else if (GLOBAL_ACTION_KEY_EMERGENCY.equals(actionKey)) { - if (shouldUseSeparatedView() - && !mEmergencyAffordanceManager.needsEmergencyAffordance()) { + if (!mEmergencyAffordanceManager.needsEmergencyAffordance()) { mItems.add(new EmergencyDialerAction()); } } else { @@ -391,7 +390,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, } if (mEmergencyAffordanceManager.needsEmergencyAffordance()) { - mItems.add(getEmergencyAction()); + mItems.add(new EmergencyAffordanceAction()); } mAdapter = new MyAdapter(); @@ -469,7 +468,59 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, } } - private class EmergencyDialerAction extends SinglePressAction { + private abstract class EmergencyAction extends SinglePressAction { + EmergencyAction(int iconResId, int messageResId) { + super(iconResId, messageResId); + } + + @Override + public boolean shouldBeSeparated() { + return shouldUseSeparatedView(); + } + + @Override + public View create( + Context context, View convertView, ViewGroup parent, LayoutInflater inflater) { + View v = super.create(context, convertView, parent, inflater); + int textColor; + if (shouldBeSeparated()) { + textColor = v.getResources().getColor( + com.android.systemui.R.color.global_actions_alert_text); + } else { + textColor = v.getResources().getColor( + com.android.systemui.R.color.global_actions_text); + } + TextView messageView = v.findViewById(R.id.message); + messageView.setTextColor(textColor); + ImageView icon = (ImageView) v.findViewById(R.id.icon); + icon.getDrawable().setTint(textColor); + return v; + } + + @Override + public boolean showDuringKeyguard() { + return true; + } + + @Override + public boolean showBeforeProvisioning() { + return true; + } + } + + private class EmergencyAffordanceAction extends EmergencyAction { + EmergencyAffordanceAction() { + super(R.drawable.emergency_icon, + R.string.global_action_emergency); + } + + @Override + public void onPress() { + mEmergencyAffordanceManager.performEmergencyCall(); + } + } + + private class EmergencyDialerAction extends EmergencyAction { private EmergencyDialerAction() { super(R.drawable.ic_faster_emergency, R.string.global_action_emergency); @@ -486,21 +537,6 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, EmergencyDialerConstants.ENTRY_TYPE_POWER_MENU); mContext.startActivityAsUser(intent, UserHandle.CURRENT); } - - @Override - public boolean showDuringKeyguard() { - return true; - } - - @Override - public boolean showBeforeProvisioning() { - return true; - } - - @Override - public boolean shouldBeSeparated() { - return true; - } } private final class RestartAction extends SinglePressAction implements LongPressAction { @@ -688,32 +724,6 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, }; } - private Action getEmergencyAction() { - Drawable emergencyIcon = mContext.getDrawable(R.drawable.emergency_icon); - if (!shouldUseSeparatedView()) { - // use un-colored legacy treatment - emergencyIcon.setTintList(null); - } - - return new SinglePressAction(R.drawable.emergency_icon, - R.string.global_action_emergency) { - @Override - public void onPress() { - mEmergencyAffordanceManager.performEmergencyCall(); - } - - @Override - public boolean showDuringKeyguard() { - return true; - } - - @Override - public boolean showBeforeProvisioning() { - return true; - } - }; - } - private Action getAssistAction() { return new SinglePressAction(R.drawable.ic_action_assist_focused, R.string.global_action_assist) { diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsGridLayout.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsGridLayout.java index 058ea605bc879..9a0759c70b5bd 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsGridLayout.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsGridLayout.java @@ -42,11 +42,16 @@ public class GlobalActionsGridLayout extends MultiListLayout { } private void setBackgrounds() { + int gridBackgroundColor = getResources().getColor( + com.android.systemui.R.color.global_actions_grid_background, null); + int separatedBackgroundColor = getResources().getColor( + com.android.systemui.R.color.global_actions_separated_background, null); HardwareBgDrawable listBackground = new HardwareBgDrawable(true, true, getContext()); - HardwareBgDrawable separatedViewBackground = new HardwareBgDrawable(true, true, - getContext()); + HardwareBgDrawable separatedBackground = new HardwareBgDrawable(true, true, getContext()); + listBackground.setTint(gridBackgroundColor); + separatedBackground.setTint(separatedBackgroundColor); getListView().setBackground(listBackground); - getSeparatedView().setBackground(separatedViewBackground); + getSeparatedView().setBackground(separatedBackground); } @Override