From 7a1654e8e40dfa0928a0348fc5954614554a8a06 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 14 Feb 2017 14:06:29 +0100 Subject: [PATCH] AOD: Add toggle for waking up instead of ambient display on sensors Bug: 30876804 Test: Open SysUI tuner -> Ambient Display -> Toggle wake up on sensors setting, verify that double tap and lift wake up phone instead of triggering ambient display. Change-Id: Ia33ab1ab5ed532f239262d70e00dac3fec0330e2 --- packages/SystemUI/res/values/strings.xml | 4 ++++ packages/SystemUI/res/xml/tuner_prefs.xml | 5 +++++ .../src/com/android/systemui/doze/DozeTriggers.java | 6 +++++- .../systemui/statusbar/phone/DozeParameters.java | 11 +++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 77de9a2c995cb..112120ac6b215 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -1725,6 +1725,10 @@ not appear on production builds ever. --> Ambient Display + + Wake up device on double tap or lift + Always on diff --git a/packages/SystemUI/res/xml/tuner_prefs.xml b/packages/SystemUI/res/xml/tuner_prefs.xml index c354811800756..e566213e9ff43 100644 --- a/packages/SystemUI/res/xml/tuner_prefs.xml +++ b/packages/SystemUI/res/xml/tuner_prefs.xml @@ -143,6 +143,11 @@ android:title="@string/tuner_doze_always_on" sysui:defValue="false" /> + + --> diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java index db5a3921db9de..b5c7dd3bfc668 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java @@ -97,7 +97,11 @@ public class DozeTriggers implements DozeMachine.Part { } private void onSensor(int pulseReason, boolean sensorPerformedProxCheck) { - requestPulse(pulseReason, sensorPerformedProxCheck); + if (mDozeParameters.getSensorsWakeUpFully()) { + mMachine.wakeUp(); + } else { + requestPulse(pulseReason, sensorPerformedProxCheck); + } if (pulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP) { final long timeSinceNotification = diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java index 0e074c7b87102..883a66b595311 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java @@ -31,6 +31,7 @@ import java.io.PrintWriter; public class DozeParameters { private static final int MAX_DURATION = 60 * 1000; + public static final String DOZE_SENSORS_WAKE_UP_FULLY = "doze_sensors_wake_up_fully"; private final Context mContext; @@ -56,6 +57,10 @@ public class DozeParameters { pw.print(" getPickupVibrationThreshold(): "); pw.println(getPickupVibrationThreshold()); pw.print(" getPickupSubtypePerformsProxCheck(): ");pw.println( dumpPickupSubtypePerformsProxCheck()); + if (Build.IS_DEBUGGABLE) { + pw.print(" getAlwaysOn(): "); pw.println(getAlwaysOn()); + pw.print(" getSensorsWakeUpFully(): "); pw.println(getSensorsWakeUpFully()); + } } private String dumpPickupSubtypePerformsProxCheck() { @@ -118,6 +123,12 @@ public class DozeParameters { Settings.Secure.DOZE_ALWAYS_ON, 0, UserHandle.USER_CURRENT) != 0; } + public boolean getSensorsWakeUpFully() { + return Build.IS_DEBUGGABLE + && Settings.Secure.getIntForUser(mContext.getContentResolver(), + DOZE_SENSORS_WAKE_UP_FULLY, 0, UserHandle.USER_CURRENT) != 0; + } + private boolean getBoolean(String propName, int resId) { return SystemProperties.getBoolean(propName, mContext.getResources().getBoolean(resId)); }