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
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index ce58895..50530ff 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 @@
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 @@
}
if (mEmergencyAffordanceManager.needsEmergencyAffordance()) {
- mItems.add(getEmergencyAction());
+ mItems.add(new EmergencyAffordanceAction());
}
mAdapter = new MyAdapter();
@@ -469,7 +468,59 @@
}
}
- 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 @@
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 @@
};
}
- 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) {