diff options
| author | 2025-03-03 18:03:40 -0800 | |
|---|---|---|
| committer | 2025-03-03 18:03:40 -0800 | |
| commit | 7a159e24b58c7935a8ac38eca3ae40ba7a3e0757 (patch) | |
| tree | b0360bbae90ceeac79812f267940297582fb94b0 | |
| parent | 321889c991ab71a1f5c2ea5aadbd4f7885804881 (diff) | |
| parent | 116cc0da04f518cfd2ebcab35da627b4cf6a49e6 (diff) | |
Merge "Fix fp unlock can be triggered when "Screen Off Unlock" is disabled" into main
| -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; |