summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/values/config.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeService.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java5
3 files changed, 17 insertions, 1 deletions
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 17b38338a310..a8c95c12b42b 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -203,6 +203,9 @@
<!-- Doze: maximum number of times the notification pulse schedule can be reset -->
<integer name="doze_pulse_schedule_resets">3</integer>
+ <!-- Doze: duration to avoid false pickup gestures triggered by notification vibrations -->
+ <integer name="doze_pickup_vibration_threshold">2000</integer>
+
<!-- Doze: pulse parameter - how long does it take to fade in? -->
<integer name="doze_pulse_duration_in">1000</integer>
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
index dae15e61afd3..e2c8ff95ae17 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
@@ -411,7 +411,15 @@ public class DozeService extends DreamService {
}
requestPulse();
setListening(true); // reregister, this sensor only fires once
- resetNotificationResets();
+
+ // reset the notification pulse schedule, but only if we think we were not triggered
+ // by a notification-related vibration
+ final long timeSinceNotification = System.currentTimeMillis() - mNotificationPulseTime;
+ if (timeSinceNotification < mDozeParameters.getPickupVibrationThreshold()) {
+ if (DEBUG) Log.d(mTag, "Not resetting schedule, recent notification");
+ } else {
+ resetNotificationResets();
+ }
}
}
}
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 bcf42ded5ce3..b566bbc7096e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
@@ -57,6 +57,7 @@ public class DozeParameters {
pw.print(" getPulseOnNotifications(): "); pw.println(getPulseOnNotifications());
pw.print(" getPulseSchedule(): "); pw.println(getPulseSchedule());
pw.print(" getPulseScheduleResets(): "); pw.println(getPulseScheduleResets());
+ pw.print(" getPickupVibrationThreshold(): "); pw.println(getPickupVibrationThreshold());
}
public boolean getDisplayStateSupported() {
@@ -111,6 +112,10 @@ public class DozeParameters {
return getInt("doze.pulse.schedule.resets", R.integer.doze_pulse_schedule_resets);
}
+ public int getPickupVibrationThreshold() {
+ return getInt("doze.pickup.vibration.threshold", R.integer.doze_pickup_vibration_threshold);
+ }
+
private boolean getBoolean(String propName, int resId) {
return SystemProperties.getBoolean(propName, mContext.getResources().getBoolean(resId));
}