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

Commit bd8b091d authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

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
parent b877a2de
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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.
+4 −2
Original line number Diff line number Diff line
@@ -975,7 +975,7 @@ public class NotificationStackScrollLayoutController {
    }

    public boolean isAddOrRemoveAnimationPending() {
        return mView.isAddOrRemoveAnimationPending();
        return mView != null && mView.isAddOrRemoveAnimationPending();
    }

    public int getVisibleNotificationCount() {
@@ -1132,8 +1132,10 @@ public class NotificationStackScrollLayoutController {
    }

    public void setAlpha(float alpha) {
        if (mView != null) {
            mView.setAlpha(alpha);
        }
    }

    public float calculateAppearFraction(float height) {
        return mView.calculateAppearFraction(height);
+8 −4
Original line number Diff line number Diff line
@@ -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