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

Commit 4dd99003 authored by Aaron Liu's avatar Aaron Liu
Browse files

[Bouncer] Do not send message if face auth...

Succeeded.

When we authenticate the face, the KeyguardIndicationController checks
to see if the bouncer is showing and will set message to "Swipe up and
try again." if so. Ensure that we only show "Swipe up and try again." when face auth
fails.

Also ensure that message is removed when bouncer no longer becomes
visible.

Fixes: 259007288
Test: Enroll in FP and face. Open bouncer and auth via face. Turn off
and on and open bouncer again to view initial message.
Test: Unit Test

Change-Id: I8ee56d27ff60f32e696ac100a64d0553ce3c77e0
parent 1c34df1d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ public abstract class KeyguardAbsKeyInputViewController<T extends KeyguardAbsKey

    @Override
    public void reset() {
        super.reset();
        // start fresh
        mDismissing = false;
        mView.resetPasswordText(false /* animate */, false /* announce */);
+1 −0
Original line number Diff line number Diff line
@@ -121,6 +121,7 @@ public abstract class KeyguardInputViewController<T extends KeyguardInputView>

    @Override
    public void reset() {
        mMessageAreaController.setMessage("", false);
    }

    @Override
+0 −8
Original line number Diff line number Diff line
@@ -104,14 +104,6 @@ object KeyguardBouncerViewBinder {
                        }
                    }

                    launch {
                        viewModel.showWithFullExpansion.collect { model ->
                            hostViewController.resetSecurityContainer()
                            hostViewController.showPromptReason(model.promptReason)
                            hostViewController.onResume()
                        }
                    }

                    launch {
                        viewModel.hide.collect {
                            hostViewController.cancelDismissAction()
+0 −6
Original line number Diff line number Diff line
@@ -22,10 +22,8 @@ import com.android.systemui.keyguard.data.BouncerViewDelegate
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor
import com.android.systemui.keyguard.shared.model.BouncerShowMessageModel
import com.android.systemui.keyguard.shared.model.KeyguardBouncerModel
import com.android.systemui.statusbar.phone.KeyguardBouncer.EXPANSION_VISIBLE
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.map

/** Models UI state for the lock screen bouncer; handles user input. */
@@ -44,10 +42,6 @@ constructor(
    /** Observe whether bouncer is showing. */
    val show: Flow<KeyguardBouncerModel> = interactor.show

    /** Observe visible expansion when bouncer is showing. */
    val showWithFullExpansion: Flow<KeyguardBouncerModel> =
        interactor.show.filter { it.expansionAmount == EXPANSION_VISIBLE }

    /** Observe whether bouncer is hiding. */
    val hide: Flow<Unit> = interactor.hide

+2 −1
Original line number Diff line number Diff line
@@ -930,7 +930,8 @@ public class KeyguardIndicationController {
        if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
            if (mStatusBarKeyguardViewManager.isShowingAlternateBouncer()) {
                return; // udfps affordance is highlighted, no need to show action to unlock
            } else if (mKeyguardUpdateMonitor.isFaceEnrolled()) {
            } else if (!mKeyguardUpdateMonitor.getIsFaceAuthenticated()
                    && mKeyguardUpdateMonitor.isFaceEnrolled()) {
                String message = mContext.getString(R.string.keyguard_retry);
                mStatusBarKeyguardViewManager.setKeyguardMessage(message, mInitialTextColorState);
            }
Loading