am 374013f4: Merge "Suppress haptic feedback for SLEEP key when already asleep." into klp-modular-dev
* commit '374013f4dba56c9ea340d22dcefdf904cbd47ce6':
Suppress haptic feedback for SLEEP key when already asleep.
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index fad4396..48bbe58 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -3921,11 +3921,6 @@
+ " policyFlags=" + Integer.toHexString(policyFlags));
}
- if (down && (policyFlags & WindowManagerPolicy.FLAG_VIRTUAL) != 0
- && event.getRepeatCount() == 0) {
- performHapticFeedbackLw(null, HapticFeedbackConstants.VIRTUAL_KEY, false);
- }
-
// Basic policy based on interactive state.
int result;
boolean isWakeKey = (policyFlags & (WindowManagerPolicy.FLAG_WAKE
@@ -3948,6 +3943,10 @@
return result;
}
+ boolean useHapticFeedback = down
+ && (policyFlags & WindowManagerPolicy.FLAG_VIRTUAL) != 0
+ && event.getRepeatCount() == 0;
+
// Handle special keys.
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN:
@@ -4103,6 +4102,9 @@
case KeyEvent.KEYCODE_SLEEP: {
result &= ~ACTION_PASS_TO_USER;
+ if (!mPowerManager.isInteractive()) {
+ useHapticFeedback = false; // suppress feedback if already non-interactive
+ }
mPowerManager.goToSleep(event.getEventTime());
isWakeKey = false;
break;
@@ -4177,6 +4179,10 @@
}
}
+ if (useHapticFeedback) {
+ performHapticFeedbackLw(null, HapticFeedbackConstants.VIRTUAL_KEY, false);
+ }
+
if (isWakeKey) {
mPowerManager.wakeUp(event.getEventTime());
}