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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21403775

Change-Id: Icf4a9d2ccbfa72d28cb9423861e9ac099ac3092c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Aaron Liu
2023-02-13 21:15:49 +00:00
committed by Automerger Merge Worker
4 changed files with 34 additions and 33 deletions

View File

@@ -202,11 +202,8 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
mKeyguardSecurityContainerController.onPause();
}
/**
* Reinflate the view flipper child view.
*/
public void reinflateViewFlipper() {
mKeyguardSecurityContainerController.reinflateViewFlipper();
public void resetSecurityContainer() {
mKeyguardSecurityContainerController.reset();
}
/**
@@ -235,19 +232,23 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
/**
* Starts the animation when the Keyguard gets shown.
*/
public void appear() {
public void appear(int statusBarHeight) {
// 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.
mView.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
mView.getViewTreeObserver().removeOnPreDrawListener(this);
mKeyguardSecurityContainerController.startAppearAnimation();
return true;
}
});
mView.requestLayout();
if (mView.getHeight() != 0 && mView.getHeight() != statusBarHeight) {
mKeyguardSecurityContainerController.startAppearAnimation();
} else {
mView.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
mView.getViewTreeObserver().removeOnPreDrawListener(this);
mKeyguardSecurityContainerController.startAppearAnimation();
return true;
}
});
mView.requestLayout();
}
}
/**

View File

@@ -743,20 +743,17 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
}
private void reloadColors() {
reinflateViewFlipper();
resetViewFlipper();
mView.reloadColors();
}
/** Handles density or font scale changes. */
private void onDensityOrFontScaleChanged() {
reinflateViewFlipper();
resetViewFlipper();
mView.onDensityOrFontScaleChanged();
}
/**
* Reinflate the view flipper child view.
*/
public void reinflateViewFlipper() {
private void resetViewFlipper() {
mSecurityViewFlipperController.clearViews();
mSecurityViewFlipperController.getSecurityView(mCurrentSecurityMode,
mKeyguardSecurityCallback);

View File

@@ -22,6 +22,7 @@ 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
@@ -97,14 +98,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()
hostViewController.appear(
SystemBarUtils.getStatusBarHeight(view.context)
)
hostViewController.onResume()
}
}
@@ -113,6 +114,7 @@ object KeyguardBouncerViewBinder {
viewModel.hide.collect {
hostViewController.cancelDismissAction()
hostViewController.cleanUp()
hostViewController.resetSecurityContainer()
}
}
@@ -157,6 +159,15 @@ object KeyguardBouncerViewBinder {
}
}
launch {
viewModel.isBouncerVisible
.filter { !it }
.collect {
// Remove existing input for security reasons.
hostViewController.resetSecurityContainer()
}
}
launch {
viewModel.keyguardPosition.collect { position ->
hostViewController.updateKeyguardPosition(position)

View File

@@ -600,14 +600,6 @@ 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());