Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java +5 −6 Original line number Diff line number Diff line Loading @@ -57,8 +57,7 @@ public class KeyguardClockPositionAlgorithm { private int mUserSwitchPreferredY; /** * Minimum top margin to avoid overlap with status bar, lock icon, or multi-user switcher * avatar. * Minimum top margin to avoid overlap with status bar or multi-user switcher avatar. */ private int mMinTopMargin; Loading Loading @@ -203,7 +202,7 @@ public class KeyguardClockPositionAlgorithm { if (mBypassEnabled) { return mUnlockedStackScrollerPadding; } else if (mIsSplitShade) { return getClockY(1.0f, mDarkAmount); return getClockY(1.0f, mDarkAmount) + mUserSwitchHeight; } else { return getClockY(1.0f, mDarkAmount) + mKeyguardStatusHeight; } Loading @@ -213,7 +212,7 @@ public class KeyguardClockPositionAlgorithm { if (mBypassEnabled) { return (int) (mUnlockedStackScrollerPadding + mOverStretchAmount); } else if (mIsSplitShade) { return Math.max(0, clockYPosition - mSplitShadeTopNotificationsMargin); return clockYPosition - mSplitShadeTopNotificationsMargin + mUserSwitchHeight; } else { return clockYPosition + mKeyguardStatusHeight; } Loading @@ -223,7 +222,7 @@ public class KeyguardClockPositionAlgorithm { if (mBypassEnabled) { return mUnlockedStackScrollerPadding; } else if (mIsSplitShade) { return Math.max(mSplitShadeTargetTopMargin, mMinTopMargin); return mSplitShadeTargetTopMargin + mUserSwitchHeight; } else { return mMinTopMargin + mKeyguardStatusHeight; } Loading @@ -231,7 +230,7 @@ public class KeyguardClockPositionAlgorithm { private int getExpandedPreferredClockY() { if (mIsSplitShade) { return Math.max(mSplitShadeTargetTopMargin, mMinTopMargin); return mSplitShadeTargetTopMargin; } else { return mMinTopMargin; } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +5 −2 Original line number Diff line number Diff line Loading @@ -1303,8 +1303,11 @@ public class NotificationPanelViewController extends PanelViewController { mKeyguardStatusViewController.displayClock(LARGE); } updateKeyguardStatusViewAlignment(true /* animate */); int userIconHeight = mKeyguardQsUserSwitchController != null int userSwitcherHeight = mKeyguardQsUserSwitchController != null ? mKeyguardQsUserSwitchController.getUserIconHeight() : 0; if (mKeyguardUserSwitcherController != null) { userSwitcherHeight = mKeyguardUserSwitcherController.getHeight(); } float expandedFraction = mUnlockedScreenOffAnimationController.isScreenOffAnimationPlaying() ? 1.0f : getExpandedFraction(); Loading @@ -1324,7 +1327,7 @@ public class NotificationPanelViewController extends PanelViewController { mStatusBarHeaderHeightKeyguard, expandedFraction, mKeyguardStatusViewController.getLockscreenHeight(), userIconHeight, userSwitcherHeight, userSwitcherPreferredY, darkamount, mOverStretchAmount, bypassEnabled, getUnlockedStackScrollerPadding(), Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java +4 −0 Original line number Diff line number Diff line Loading @@ -245,6 +245,10 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS return mUserSwitcherController.isSimpleUserSwitcher(); } public int getHeight() { return mListView.getHeight(); } /** * @param animate if the transition should be animated * @return true if the switcher state changed Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherListView.java +13 −3 Original line number Diff line number Diff line Loading @@ -97,10 +97,13 @@ public class KeyguardUserSwitcherListView extends AlphaOptimizedLinearLayout { } else { // Update clickable state immediately so that the menu feels more responsive userItemViews[i].setClickable(open); // Before running the animation, ensure visibility is set correctly userItemViews[i].updateVisibilities(animate || open /* showItem */, // when opening we need to make views visible beforehand so they can be animated if (open) { userItemViews[i].updateVisibilities(true /* showItem */, true /* showTextName */, false /* animate */); } } } if (animate && userItemViews.length > 1) { Loading @@ -117,6 +120,13 @@ public class KeyguardUserSwitcherListView extends AlphaOptimizedLinearLayout { setClipChildren(true); setClipToPadding(true); mAnimating = false; if (!open) { // after closing we hide children so that height of this view is correct for (int i = 1; i < userItemViews.length; i++) { userItemViews[i].updateVisibilities(false /* showItem */, true /* showTextName */, false /* animate */); } } }); } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java +34 −3 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { private float mPanelExpansion; private int mKeyguardStatusBarHeaderHeight; private int mKeyguardStatusHeight; private int mUserSwitchHeight; private float mDark; private float mQsExpansion; private int mCutoutTopInset = 0; Loading Loading @@ -264,8 +265,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { @Test public void clockPositionedDependingOnMarginInSplitShade() { when(mResources.getDimensionPixelSize(R.dimen.keyguard_split_shade_top_margin)) .thenReturn(400); setSplitShadeTopMargin(400); mClockPositionAlgorithm.loadDimens(mResources); givenLockScreen(); mIsSplitShade = true; Loading @@ -290,6 +290,32 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { assertThat(mClockPosition.stackScrollerPadding).isEqualTo(30); } @Test public void notifPaddingAccountsForMultiUserSwitcherInSplitShade() { setSplitShadeTopMargin(100); mUserSwitchHeight = 150; mClockPositionAlgorithm.loadDimens(mResources); givenLockScreen(); mIsSplitShade = true; // WHEN the position algorithm is run positionClock(); // THEN the notif padding is split shade top margin + user switch height assertThat(mClockPosition.stackScrollerPadding).isEqualTo(250); } @Test public void clockDoesntAccountForMultiUserSwitcherInSplitShade() { setSplitShadeTopMargin(100); mUserSwitchHeight = 150; mClockPositionAlgorithm.loadDimens(mResources); givenLockScreen(); mIsSplitShade = true; // WHEN the position algorithm is run positionClock(); // THEN clockY = split shade top margin assertThat(mClockPosition.clockY).isEqualTo(100); } @Test public void notifPaddingExpandedAlignedWithClockInSplitShadeMode() { givenLockScreen(); Loading Loading @@ -495,6 +521,11 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { assertThat(mClockPosition.clockY).isEqualTo(mCutoutTopInset); } private void setSplitShadeTopMargin(int value) { when(mResources.getDimensionPixelSize(R.dimen.keyguard_split_shade_top_margin)) .thenReturn(value); } private void givenHighestBurnInOffset() { when(BurnInHelperKt.getBurnInOffset(anyInt(), anyBoolean())).then(returnsFirstArg()); } Loading Loading @@ -529,7 +560,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { mKeyguardStatusBarHeaderHeight, mPanelExpansion, mKeyguardStatusHeight, 0 /* userSwitchHeight */, mUserSwitchHeight, 0 /* userSwitchPreferredY */, mDark, ZERO_DRAG, Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java +5 −6 Original line number Diff line number Diff line Loading @@ -57,8 +57,7 @@ public class KeyguardClockPositionAlgorithm { private int mUserSwitchPreferredY; /** * Minimum top margin to avoid overlap with status bar, lock icon, or multi-user switcher * avatar. * Minimum top margin to avoid overlap with status bar or multi-user switcher avatar. */ private int mMinTopMargin; Loading Loading @@ -203,7 +202,7 @@ public class KeyguardClockPositionAlgorithm { if (mBypassEnabled) { return mUnlockedStackScrollerPadding; } else if (mIsSplitShade) { return getClockY(1.0f, mDarkAmount); return getClockY(1.0f, mDarkAmount) + mUserSwitchHeight; } else { return getClockY(1.0f, mDarkAmount) + mKeyguardStatusHeight; } Loading @@ -213,7 +212,7 @@ public class KeyguardClockPositionAlgorithm { if (mBypassEnabled) { return (int) (mUnlockedStackScrollerPadding + mOverStretchAmount); } else if (mIsSplitShade) { return Math.max(0, clockYPosition - mSplitShadeTopNotificationsMargin); return clockYPosition - mSplitShadeTopNotificationsMargin + mUserSwitchHeight; } else { return clockYPosition + mKeyguardStatusHeight; } Loading @@ -223,7 +222,7 @@ public class KeyguardClockPositionAlgorithm { if (mBypassEnabled) { return mUnlockedStackScrollerPadding; } else if (mIsSplitShade) { return Math.max(mSplitShadeTargetTopMargin, mMinTopMargin); return mSplitShadeTargetTopMargin + mUserSwitchHeight; } else { return mMinTopMargin + mKeyguardStatusHeight; } Loading @@ -231,7 +230,7 @@ public class KeyguardClockPositionAlgorithm { private int getExpandedPreferredClockY() { if (mIsSplitShade) { return Math.max(mSplitShadeTargetTopMargin, mMinTopMargin); return mSplitShadeTargetTopMargin; } else { return mMinTopMargin; } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +5 −2 Original line number Diff line number Diff line Loading @@ -1303,8 +1303,11 @@ public class NotificationPanelViewController extends PanelViewController { mKeyguardStatusViewController.displayClock(LARGE); } updateKeyguardStatusViewAlignment(true /* animate */); int userIconHeight = mKeyguardQsUserSwitchController != null int userSwitcherHeight = mKeyguardQsUserSwitchController != null ? mKeyguardQsUserSwitchController.getUserIconHeight() : 0; if (mKeyguardUserSwitcherController != null) { userSwitcherHeight = mKeyguardUserSwitcherController.getHeight(); } float expandedFraction = mUnlockedScreenOffAnimationController.isScreenOffAnimationPlaying() ? 1.0f : getExpandedFraction(); Loading @@ -1324,7 +1327,7 @@ public class NotificationPanelViewController extends PanelViewController { mStatusBarHeaderHeightKeyguard, expandedFraction, mKeyguardStatusViewController.getLockscreenHeight(), userIconHeight, userSwitcherHeight, userSwitcherPreferredY, darkamount, mOverStretchAmount, bypassEnabled, getUnlockedStackScrollerPadding(), Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java +4 −0 Original line number Diff line number Diff line Loading @@ -245,6 +245,10 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS return mUserSwitcherController.isSimpleUserSwitcher(); } public int getHeight() { return mListView.getHeight(); } /** * @param animate if the transition should be animated * @return true if the switcher state changed Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherListView.java +13 −3 Original line number Diff line number Diff line Loading @@ -97,10 +97,13 @@ public class KeyguardUserSwitcherListView extends AlphaOptimizedLinearLayout { } else { // Update clickable state immediately so that the menu feels more responsive userItemViews[i].setClickable(open); // Before running the animation, ensure visibility is set correctly userItemViews[i].updateVisibilities(animate || open /* showItem */, // when opening we need to make views visible beforehand so they can be animated if (open) { userItemViews[i].updateVisibilities(true /* showItem */, true /* showTextName */, false /* animate */); } } } if (animate && userItemViews.length > 1) { Loading @@ -117,6 +120,13 @@ public class KeyguardUserSwitcherListView extends AlphaOptimizedLinearLayout { setClipChildren(true); setClipToPadding(true); mAnimating = false; if (!open) { // after closing we hide children so that height of this view is correct for (int i = 1; i < userItemViews.length; i++) { userItemViews[i].updateVisibilities(false /* showItem */, true /* showTextName */, false /* animate */); } } }); } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java +34 −3 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { private float mPanelExpansion; private int mKeyguardStatusBarHeaderHeight; private int mKeyguardStatusHeight; private int mUserSwitchHeight; private float mDark; private float mQsExpansion; private int mCutoutTopInset = 0; Loading Loading @@ -264,8 +265,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { @Test public void clockPositionedDependingOnMarginInSplitShade() { when(mResources.getDimensionPixelSize(R.dimen.keyguard_split_shade_top_margin)) .thenReturn(400); setSplitShadeTopMargin(400); mClockPositionAlgorithm.loadDimens(mResources); givenLockScreen(); mIsSplitShade = true; Loading @@ -290,6 +290,32 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { assertThat(mClockPosition.stackScrollerPadding).isEqualTo(30); } @Test public void notifPaddingAccountsForMultiUserSwitcherInSplitShade() { setSplitShadeTopMargin(100); mUserSwitchHeight = 150; mClockPositionAlgorithm.loadDimens(mResources); givenLockScreen(); mIsSplitShade = true; // WHEN the position algorithm is run positionClock(); // THEN the notif padding is split shade top margin + user switch height assertThat(mClockPosition.stackScrollerPadding).isEqualTo(250); } @Test public void clockDoesntAccountForMultiUserSwitcherInSplitShade() { setSplitShadeTopMargin(100); mUserSwitchHeight = 150; mClockPositionAlgorithm.loadDimens(mResources); givenLockScreen(); mIsSplitShade = true; // WHEN the position algorithm is run positionClock(); // THEN clockY = split shade top margin assertThat(mClockPosition.clockY).isEqualTo(100); } @Test public void notifPaddingExpandedAlignedWithClockInSplitShadeMode() { givenLockScreen(); Loading Loading @@ -495,6 +521,11 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { assertThat(mClockPosition.clockY).isEqualTo(mCutoutTopInset); } private void setSplitShadeTopMargin(int value) { when(mResources.getDimensionPixelSize(R.dimen.keyguard_split_shade_top_margin)) .thenReturn(value); } private void givenHighestBurnInOffset() { when(BurnInHelperKt.getBurnInOffset(anyInt(), anyBoolean())).then(returnsFirstArg()); } Loading Loading @@ -529,7 +560,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase { mKeyguardStatusBarHeaderHeight, mPanelExpansion, mKeyguardStatusHeight, 0 /* userSwitchHeight */, mUserSwitchHeight, 0 /* userSwitchPreferredY */, mDark, ZERO_DRAG, Loading