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

Commit f24c87c0 authored by Aaron Liu's avatar Aaron Liu Committed by Automerger Merge Worker
Browse files

Merge "Destroy and reinflate bouncer before showing" into tm-qpr-dev am: d3d710e8

parents 94b6b0b1 d3d710e8
Loading
Loading
Loading
Loading
+16 −17
Original line number Diff line number Diff line
@@ -202,8 +202,11 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
        mKeyguardSecurityContainerController.onPause();
    }

    public void resetSecurityContainer() {
        mKeyguardSecurityContainerController.reset();
    /**
     * Reinflate the view flipper child view.
     */
    public void reinflateViewFlipper() {
        mKeyguardSecurityContainerController.reinflateViewFlipper();
    }

    /**
@@ -232,12 +235,9 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
    /**
     * Starts the animation when the Keyguard gets shown.
     */
    public void appear(int statusBarHeight) {
    public void appear() {
        // We might still be collapsed and the view didn't have time to layout yet or still
        // be small, let's wait on the predraw to do the animation in that case.
        if (mView.getHeight() != 0 && mView.getHeight() != statusBarHeight) {
            mKeyguardSecurityContainerController.startAppearAnimation();
        } else {
        mView.getViewTreeObserver().addOnPreDrawListener(
                new ViewTreeObserver.OnPreDrawListener() {
                    @Override
@@ -249,7 +249,6 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
                });
        mView.requestLayout();
    }
    }

    /**
     * Show a string explaining why the security view needs to be solved.
+6 −3
Original line number Diff line number Diff line
@@ -743,17 +743,20 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
    }

    private void reloadColors() {
        resetViewFlipper();
        reinflateViewFlipper();
        mView.reloadColors();
    }

    /** Handles density or font scale changes. */
    private void onDensityOrFontScaleChanged() {
        resetViewFlipper();
        reinflateViewFlipper();
        mView.onDensityOrFontScaleChanged();
    }

    private void resetViewFlipper() {
    /**
     * Reinflate the view flipper child view.
     */
    public void reinflateViewFlipper() {
        mSecurityViewFlipperController.clearViews();
        mSecurityViewFlipperController.getSecurityView(mCurrentSecurityMode,
                mKeyguardSecurityCallback);
+3 −14
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.view.ViewGroup
import android.window.OnBackAnimationCallback
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle
import com.android.internal.policy.SystemBarUtils
import com.android.keyguard.KeyguardHostViewController
import com.android.keyguard.KeyguardSecurityModel
import com.android.keyguard.KeyguardUpdateMonitor
@@ -98,14 +97,14 @@ object KeyguardBouncerViewBinder {
                    viewModel.setBouncerViewDelegate(delegate)
                    launch {
                        viewModel.show.collect {
                            // Reset Security Container entirely.
                            hostViewController.reinflateViewFlipper()
                            hostViewController.showPromptReason(it.promptReason)
                            it.errorMessage?.let { errorMessage ->
                                hostViewController.showErrorMessage(errorMessage)
                            }
                            hostViewController.showPrimarySecurityScreen()
                            hostViewController.appear(
                                SystemBarUtils.getStatusBarHeight(view.context)
                            )
                            hostViewController.appear()
                            hostViewController.onResume()
                        }
                    }
@@ -114,7 +113,6 @@ object KeyguardBouncerViewBinder {
                        viewModel.hide.collect {
                            hostViewController.cancelDismissAction()
                            hostViewController.cleanUp()
                            hostViewController.resetSecurityContainer()
                        }
                    }

@@ -159,15 +157,6 @@ object KeyguardBouncerViewBinder {
                        }
                    }

                    launch {
                        viewModel.isBouncerVisible
                            .filter { !it }
                            .collect {
                                // Remove existing input for security reasons.
                                hostViewController.resetSecurityContainer()
                            }
                    }

                    launch {
                        viewModel.keyguardPosition.collect { position ->
                            hostViewController.updateKeyguardPosition(position)
+8 −0
Original line number Diff line number Diff line
@@ -600,6 +600,14 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
                any(KeyguardSecurityCallback.class));
    }

    @Test
    public void testReinflateViewFlipper() {
        mKeyguardSecurityContainerController.reinflateViewFlipper();
        verify(mKeyguardSecurityViewFlipperController).clearViews();
        verify(mKeyguardSecurityViewFlipperController).getSecurityView(any(SecurityMode.class),
                any(KeyguardSecurityCallback.class));
    }

    private KeyguardSecurityContainer.SwipeListener getRegisteredSwipeListener() {
        mKeyguardSecurityContainerController.onViewAttached();
        verify(mView).setSwipeListener(mSwipeListenerArgumentCaptor.capture());