Initialize Clock Size from NotificationPanelViewController
In change I0885d19e297ff5f881271ed0347e9699b3494928 I defaulted the small clock to invisible, which likely introduced this bug. From logs, it looks like an edge where neither clock is never selected. We correct this by always calling `switchToClock` with the correct size argument as soon as `KeyguardStatusViewController` is acquired by `NotificationPanelViewController` Fixes: 256809954 Test: Manully tested on a couple devices Change-Id: I9143d6162411065ed2ed80cfa84d73e222c1f231
This commit is contained in:
@@ -916,6 +916,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
mQsFrameTranslateController = qsFrameTranslateController;
|
||||
updateUserSwitcherFlags();
|
||||
mKeyguardBottomAreaViewModel = keyguardBottomAreaViewModel;
|
||||
mKeyguardBottomAreaInteractor = keyguardBottomAreaInteractor;
|
||||
onFinishInflate();
|
||||
keyguardUnlockAnimationController.addKeyguardUnlockAnimationListener(
|
||||
new KeyguardUnlockAnimationController.KeyguardUnlockAnimationListener() {
|
||||
@@ -933,7 +934,6 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
unlockAnimationStarted(playingCannedAnimation, isWakeAndUnlock, startDelay);
|
||||
}
|
||||
});
|
||||
mKeyguardBottomAreaInteractor = keyguardBottomAreaInteractor;
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
@@ -1109,6 +1109,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
mKeyguardStatusViewComponentFactory.build(keyguardStatusView);
|
||||
mKeyguardStatusViewController = statusViewComponent.getKeyguardStatusViewController();
|
||||
mKeyguardStatusViewController.init();
|
||||
updateClockAppearance();
|
||||
|
||||
if (mKeyguardUserSwitcherController != null) {
|
||||
// Try to close the switcher so that callbacks are triggered if necessary.
|
||||
|
||||
@@ -975,7 +975,7 @@ public class NotificationStackScrollLayoutController {
|
||||
}
|
||||
|
||||
public boolean isAddOrRemoveAnimationPending() {
|
||||
return mView.isAddOrRemoveAnimationPending();
|
||||
return mView != null && mView.isAddOrRemoveAnimationPending();
|
||||
}
|
||||
|
||||
public int getVisibleNotificationCount() {
|
||||
@@ -1132,7 +1132,9 @@ public class NotificationStackScrollLayoutController {
|
||||
}
|
||||
|
||||
public void setAlpha(float alpha) {
|
||||
mView.setAlpha(alpha);
|
||||
if (mView != null) {
|
||||
mView.setAlpha(alpha);
|
||||
}
|
||||
}
|
||||
|
||||
public float calculateAppearFraction(float height) {
|
||||
|
||||
@@ -43,6 +43,7 @@ import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.inOrder;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -530,6 +531,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
.setHeadsUpAppearanceController(mock(HeadsUpAppearanceController.class));
|
||||
verify(mNotificationStackScrollLayoutController)
|
||||
.setOnEmptySpaceClickListener(mEmptySpaceClickListenerCaptor.capture());
|
||||
verify(mKeyguardStatusViewController).displayClock(LARGE, /* animate */ true);
|
||||
reset(mKeyguardStatusViewController);
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -609,7 +612,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getVerticalSpaceForLockscreenNotifications_useLockIconBottomPadding_returnsSpaceAvailable() {
|
||||
setBottomPadding(/* stackScrollLayoutBottom= */ 100,
|
||||
setBottomPadding(/* stackScrollLayoutBottom= */ 180,
|
||||
/* lockIconPadding= */ 20,
|
||||
/* indicationPadding= */ 0,
|
||||
/* ambientPadding= */ 0);
|
||||
@@ -620,7 +623,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getVerticalSpaceForLockscreenNotifications_useIndicationBottomPadding_returnsSpaceAvailable() {
|
||||
setBottomPadding(/* stackScrollLayoutBottom= */ 100,
|
||||
setBottomPadding(/* stackScrollLayoutBottom= */ 180,
|
||||
/* lockIconPadding= */ 0,
|
||||
/* indicationPadding= */ 30,
|
||||
/* ambientPadding= */ 0);
|
||||
@@ -631,7 +634,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void getVerticalSpaceForLockscreenNotifications_useAmbientBottomPadding_returnsSpaceAvailable() {
|
||||
setBottomPadding(/* stackScrollLayoutBottom= */ 100,
|
||||
setBottomPadding(/* stackScrollLayoutBottom= */ 180,
|
||||
/* lockIconPadding= */ 0,
|
||||
/* indicationPadding= */ 0,
|
||||
/* ambientPadding= */ 40);
|
||||
@@ -1014,7 +1017,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFinishInflate_userSwitcherDisabled_doNotInflateUserSwitchView() {
|
||||
public void testFinishInflate_userSwitcherDisabled_doNotInflateUserSwitchView_initClock() {
|
||||
givenViewAttached();
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_keyguardUserSwitcher)).thenReturn(true);
|
||||
@@ -1025,6 +1028,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
mNotificationPanelViewController.onFinishInflate();
|
||||
|
||||
verify(mUserSwitcherStubView, never()).inflate();
|
||||
verify(mKeyguardStatusViewController, times(3)).displayClock(LARGE, /* animate */ true);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user