Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 116cc0da authored by Vincent Wang's avatar Vincent Wang
Browse files

Fix fp unlock can be triggered when "Screen Off Unlock" is disabled

Bug: 396113979
Flag: EXEMPT bug fixing
Test: AOD ON, ScreenOffUnlock off, BetterySaver ON, FP shouldn't work
      when screen turns off
Change-Id: I13f856a874f941e910254e484193605922ae6b37
parent 0fb96767
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -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;