Merge "[Bouncer] Update bouncer view with display size." into tm-qpr-dev

This commit is contained in:
Aaron Liu
2022-11-11 18:15:31 +00:00
committed by Android (Google) Code Review
6 changed files with 77 additions and 6 deletions

View File

@@ -727,6 +727,11 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
mViewMode.reloadColors();
}
/** Handles density or font scale changes. */
void onDensityOrFontScaleChanged() {
mViewMode.onDensityOrFontScaleChanged();
}
/**
* Enscapsulates the differences between bouncer modes for the container.
*/
@@ -752,6 +757,9 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
/** Refresh colors */
default void reloadColors() {};
/** Handles density or font scale changes. */
default void onDensityOrFontScaleChanged() {}
/** On a successful auth, optionally handle how the view disappears */
default void startDisappearAnimation(SecurityMode securityMode) {};
@@ -899,14 +907,9 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
mFalsingA11yDelegate = falsingA11yDelegate;
if (mUserSwitcherViewGroup == null) {
LayoutInflater.from(v.getContext()).inflate(
R.layout.keyguard_bouncer_user_switcher,
mView,
true);
mUserSwitcherViewGroup = mView.findViewById(R.id.keyguard_bouncer_user_switcher);
inflateUserSwitcher();
}
updateSecurityViewLocation();
mUserSwitcher = mView.findViewById(R.id.user_switcher_header);
setupUserSwitcher();
mUserSwitcherController.addUserSwitchCallback(mUserSwitchCallback);
}
@@ -936,6 +939,12 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
}
}
@Override
public void onDensityOrFontScaleChanged() {
mView.removeView(mUserSwitcherViewGroup);
inflateUserSwitcher();
}
@Override
public void onDestroy() {
mUserSwitcherController.removeUserSwitchCallback(mUserSwitchCallback);
@@ -1145,6 +1154,15 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
}
}
private void inflateUserSwitcher() {
LayoutInflater.from(mView.getContext()).inflate(
R.layout.keyguard_bouncer_user_switcher,
mView,
true);
mUserSwitcherViewGroup = mView.findViewById(R.id.keyguard_bouncer_user_switcher);
mUserSwitcher = mView.findViewById(R.id.user_switcher_header);
}
interface UserSwitcherCallback {
void showUnlockToContinueMessage();
}

View File

@@ -251,6 +251,11 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
public void onUiModeChanged() {
reloadColors();
}
@Override
public void onDensityOrFontScaleChanged() {
KeyguardSecurityContainerController.this.onDensityOrFontScaleChanged();
}
};
private boolean mBouncerVisible = false;
private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback =
@@ -727,6 +732,14 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
mView.reloadColors();
}
/** Handles density or font scale changes. */
private void onDensityOrFontScaleChanged() {
mSecurityViewFlipperController.onDensityOrFontScaleChanged();
mSecurityViewFlipperController.getSecurityView(mCurrentSecurityMode,
mKeyguardSecurityCallback);
mView.onDensityOrFontScaleChanged();
}
static class Factory {
private final KeyguardSecurityContainer mView;

View File

@@ -83,6 +83,13 @@ public class KeyguardSecurityViewFlipperController
}
}
/** Handles density or font scale changes. */
public void onDensityOrFontScaleChanged() {
mView.removeAllViews();
mChildren.clear();
}
@VisibleForTesting
KeyguardInputViewController<KeyguardInputView> getSecurityView(SecurityMode securityMode,
KeyguardSecurityCallback keyguardSecurityCallback) {

View File

@@ -548,6 +548,22 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
verify(mKeyguardPasswordViewControllerMock, never()).showMessage(null, null);
}
@Test
public void onDensityorFontScaleChanged() {
ArgumentCaptor<ConfigurationController.ConfigurationListener>
configurationListenerArgumentCaptor = ArgumentCaptor.forClass(
ConfigurationController.ConfigurationListener.class);
mKeyguardSecurityContainerController.onViewAttached();
verify(mConfigurationController).addCallback(configurationListenerArgumentCaptor.capture());
configurationListenerArgumentCaptor.getValue().onDensityOrFontScaleChanged();
verify(mView).onDensityOrFontScaleChanged();
verify(mKeyguardSecurityViewFlipperController).onDensityOrFontScaleChanged();
verify(mKeyguardSecurityViewFlipperController).getSecurityView(any(SecurityMode.class),
any(KeyguardSecurityCallback.class));
}
private KeyguardSecurityContainer.SwipeListener getRegisteredSwipeListener() {
mKeyguardSecurityContainerController.onViewAttached();
verify(mView).setSwipeListener(mSwipeListenerArgumentCaptor.capture());

View File

@@ -310,6 +310,17 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
assertThat(anchor.isClickable()).isTrue();
}
@Test
public void testOnDensityOrFontScaleChanged() {
setupUserSwitcher();
View oldUserSwitcher = mKeyguardSecurityContainer.findViewById(
R.id.keyguard_bouncer_user_switcher);
mKeyguardSecurityContainer.onDensityOrFontScaleChanged();
View newUserSwitcher = mKeyguardSecurityContainer.findViewById(
R.id.keyguard_bouncer_user_switcher);
assertThat(oldUserSwitcher).isNotEqualTo(newUserSwitcher);
}
@Test
public void testTouchesAreRecognizedAsBeingOnTheOtherSideOfSecurity() {
setupUserSwitcher();

View File

@@ -106,4 +106,10 @@ public class KeyguardSecurityViewFlipperControllerTest extends SysuiTestCase {
}
}
}
@Test
public void onDensityOrFontScaleChanged() {
mKeyguardSecurityViewFlipperController.onDensityOrFontScaleChanged();
verify(mView).removeAllViews();
}
}