Separated emergency option final UI
- Refine faster emergency icon.
- Add ic_faster_emergency.xml to framework/core/res/drawable.
- Remove faster_emergency_icon.xml from SystemUI/res/drawable.
- Change emergency_icon.xml color to colorError.
- Emergency option(India case) will follow separated option design if
separated option feature is enabled.
Test: Manually,
use "adb shell settings put global faster_emergency_phone_call_enabled 1" to show separated emergency option(default case),
use "adb shell settings put global emergency_affordance_needed 1" to show India emergency option(India case),
India emergency option will be separated button if feature is enabled,
otherwise it will be default design.
Change wallpaper to enable light/dark theme & check separated emergency option color.
(light theme color : D93025 dark theme color : E25142)
Bug: 110658988
Change-Id: Id13bcb5b5242ded92b309667c5e2beb8694b9977
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index 201f40e..6c94aa4 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
@@ -146,11 +146,11 @@
private boolean mDeviceProvisioned = false;
private ToggleAction.State mAirplaneState = ToggleAction.State.Off;
private boolean mIsWaitingForEcmExit = false;
- private boolean mHasFasterEmergencyButton;
private boolean mHasTelephony;
private boolean mHasVibrator;
private boolean mHasLogoutButton;
private boolean mHasLockdownButton;
+ private boolean mSeparatedEmergencyButtonEnabled;
private final boolean mShowSilentToggle;
private final EmergencyAffordanceManager mEmergencyAffordanceManager;
private final ScreenshotHelper mScreenshotHelper;
@@ -317,7 +317,8 @@
ArraySet<String> addedKeys = new ArraySet<String>();
mHasLogoutButton = false;
mHasLockdownButton = false;
- mHasFasterEmergencyButton = false;
+ mSeparatedEmergencyButtonEnabled = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.FASTER_EMERGENCY_PHONE_CALL_ENABLED, 0) != 0;
for (int i = 0; i < defaultActions.length; i++) {
String actionKey = defaultActions[i];
if (addedKeys.contains(actionKey)) {
@@ -356,13 +357,6 @@
mItems.add(getAssistAction());
} else if (GLOBAL_ACTION_KEY_RESTART.equals(actionKey)) {
mItems.add(new RestartAction());
- } else if (GLOBAL_ACTION_KEY_EMERGENCY.equals(actionKey)) {
- if (Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.FASTER_EMERGENCY_PHONE_CALL_ENABLED, 0) != 0
- && !mEmergencyAffordanceManager.needsEmergencyAffordance()) {
- mItems.add(new EmergencyAction());
- mHasFasterEmergencyButton = true;
- }
} else if (GLOBAL_ACTION_KEY_SCREENSHOT.equals(actionKey)) {
mItems.add(new ScreenshotAction());
} else if (GLOBAL_ACTION_KEY_LOGOUT.equals(actionKey)) {
@@ -371,6 +365,11 @@
mItems.add(new LogoutAction());
mHasLogoutButton = true;
}
+ } else if (GLOBAL_ACTION_KEY_EMERGENCY.equals(actionKey)) {
+ if (mSeparatedEmergencyButtonEnabled
+ && !mEmergencyAffordanceManager.needsEmergencyAffordance()) {
+ mItems.add(new EmergencyDialerAction());
+ }
} else {
Log.e(TAG, "Invalid global action key " + actionKey);
}
@@ -393,7 +392,7 @@
return false;
};
ActionsDialog dialog = new ActionsDialog(mContext, this, mAdapter, onItemLongClickListener,
- mHasFasterEmergencyButton);
+ mSeparatedEmergencyButtonEnabled);
dialog.setCanceledOnTouchOutside(false); // Handled by the custom class.
dialog.setKeyguardShowing(mKeyguardShowing);
@@ -448,12 +447,12 @@
}
}
- private class EmergencyAction extends SinglePressAction {
+ private class EmergencyDialerAction extends SinglePressAction {
private static final String ACTION_EMERGENCY_DIALER_DIAL =
"com.android.phone.EmergencyDialer.DIAL";
- private EmergencyAction() {
- super(com.android.systemui.R.drawable.faster_emergency_icon,
+ private EmergencyDialerAction() {
+ super(R.drawable.ic_faster_emergency,
R.string.global_action_emergency);
}
@@ -660,6 +659,12 @@
}
private Action getEmergencyAction() {
+ Drawable emergencyIcon = mContext.getDrawable(R.drawable.emergency_icon);
+ if(!mSeparatedEmergencyButtonEnabled) {
+ // use un-colored legacy treatment
+ emergencyIcon.setTintList(null);
+ }
+
return new SinglePressAction(R.drawable.emergency_icon,
R.string.global_action_emergency) {
@Override