diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java index 12718e8bd119..9edd9dc056c7 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java @@ -94,6 +94,7 @@ import java.util.function.Consumer; public class DozeSensors { private static final String TAG = "DozeSensors"; private static final UiEventLogger UI_EVENT_LOGGER = new UiEventLoggerImpl(); + private static final String KEY_DOZE_PULSE_ON_AUTH = "doze_pulse_on_auth"; private final AsyncSensorManager mSensorManager; private final AmbientDisplayConfiguration mConfig; @@ -241,7 +242,7 @@ public class DozeSensors { ), new TriggerSensor( findSensor(config.udfpsLongPressSensorType()), - "doze_pulse_on_auth", + KEY_DOZE_PULSE_ON_AUTH, true /* settingDef */, udfpsLongPressConfigured(), DozeLog.REASON_SENSOR_UDFPS_LONG_PRESS, @@ -421,6 +422,18 @@ public class DozeSensors { && (!s.mRequiresTouchscreen || mListeningTouchScreenSensors) && (!s.mRequiresProx || mListeningProxSensors) && (!s.mRequiresAod || mListeningAodOnlySensors); + + //AOD might be turned off in visual because of BetterySaver or isAlwaysOnSuppressed(), + //but AOD isn't really turned off, in these cases, udfpsLongPressSensor should be + //unregistered. + if (!mListeningAodOnlySensors && KEY_DOZE_PULSE_ON_AUTH.equals(s.mSetting)) { + if (mConfig.alwaysOnEnabled(mSelectedUserInteractor.getSelectedUserId()) + && !mConfig.screenOffUdfpsEnabled( + mSelectedUserInteractor.getSelectedUserId())) { + listen = false; + } + } + s.setListening(listen); if (listen) { anyListening = true; |