Merge "Lockscreen spacing to UX specs" into sc-dev am: e1ae3b743e am: a261775d2f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15049505 Change-Id: I4025cdf7c236c4381975c122362c08bb0c5db5aa
This commit is contained in:
@@ -36,10 +36,6 @@
|
||||
<!-- On tablets this is just the close_handle_height -->
|
||||
<dimen name="peek_height">@dimen/close_handle_height</dimen>
|
||||
|
||||
<!-- The margin between the clock and the notifications on Keyguard. See
|
||||
keyguard_clock_height_fraction_* for the difference between min and max.-->
|
||||
<dimen name="keyguard_clock_notifications_margin">44dp</dimen>
|
||||
|
||||
<!-- Height of the status bar header bar when on Keyguard -->
|
||||
<dimen name="status_bar_header_height_keyguard">60dp</dimen>
|
||||
|
||||
|
||||
@@ -735,8 +735,8 @@
|
||||
<!-- Minimum distance the user has to drag down to go to the full shade. -->
|
||||
<dimen name="keyguard_drag_down_min_distance">100dp</dimen>
|
||||
|
||||
<!-- The margin between the clock and the notifications on Keyguard.-->
|
||||
<dimen name="keyguard_clock_notifications_margin">30dp</dimen>
|
||||
<!-- The margin between the status view and the notifications on Keyguard.-->
|
||||
<dimen name="keyguard_status_view_bottom_margin">20dp</dimen>
|
||||
<!-- Minimum margin between clock and status bar -->
|
||||
<dimen name="keyguard_clock_top_margin">36dp</dimen>
|
||||
<!-- The margin between top of clock and bottom of lock icon. -->
|
||||
|
||||
@@ -207,6 +207,10 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
|
||||
}
|
||||
}
|
||||
|
||||
int getNotificationIconAreaHeight() {
|
||||
return mNotificationIconAreaController.getHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewDetached() {
|
||||
if (CUSTOM_CLOCKS_ENABLED) {
|
||||
|
||||
@@ -189,10 +189,11 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the height of the keyguard status view.
|
||||
* Get the height of the keyguard status view without the notification icon area, as that's
|
||||
* only visible on AOD.
|
||||
*/
|
||||
public int getHeight() {
|
||||
return mView.getHeight();
|
||||
public int getLockscreenHeight() {
|
||||
return mView.getHeight() - mKeyguardClockSwitchController.getNotificationIconAreaHeight();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -40,9 +40,9 @@ public class KeyguardClockPositionAlgorithm {
|
||||
private static float CLOCK_HEIGHT_WEIGHT = 0.7f;
|
||||
|
||||
/**
|
||||
* Margin between the bottom of the clock and the notification shade.
|
||||
* Margin between the bottom of the status view and the notification shade.
|
||||
*/
|
||||
private int mClockNotificationsMargin;
|
||||
private int mStatusViewBottomMargin;
|
||||
|
||||
/**
|
||||
* Height of the parent view - display size in px.
|
||||
@@ -153,8 +153,8 @@ public class KeyguardClockPositionAlgorithm {
|
||||
* Refreshes the dimension values.
|
||||
*/
|
||||
public void loadDimens(Resources res) {
|
||||
mClockNotificationsMargin = res.getDimensionPixelSize(
|
||||
R.dimen.keyguard_clock_notifications_margin);
|
||||
mStatusViewBottomMargin = res.getDimensionPixelSize(
|
||||
R.dimen.keyguard_status_view_bottom_margin);
|
||||
|
||||
mContainerTopPadding =
|
||||
res.getDimensionPixelSize(R.dimen.keyguard_clock_top_margin) / 2;
|
||||
@@ -181,7 +181,7 @@ public class KeyguardClockPositionAlgorithm {
|
||||
mNotificationStackHeight = notificationStackHeight;
|
||||
mPanelExpansion = panelExpansion;
|
||||
mHeight = parentHeight;
|
||||
mKeyguardStatusHeight = keyguardStatusHeight;
|
||||
mKeyguardStatusHeight = keyguardStatusHeight + mStatusViewBottomMargin;
|
||||
mUserSwitchHeight = userSwitchHeight;
|
||||
mUserSwitchPreferredY = userSwitchPreferredY;
|
||||
mHasCustomClock = hasCustomClock;
|
||||
@@ -221,40 +221,15 @@ public class KeyguardClockPositionAlgorithm {
|
||||
|
||||
public float getMinStackScrollerPadding() {
|
||||
return mBypassEnabled ? mUnlockedStackScrollerPadding
|
||||
: mMinTopMargin + mKeyguardStatusHeight + mClockNotificationsMargin;
|
||||
}
|
||||
|
||||
private int getMaxClockY() {
|
||||
return mHeight / 2 - mKeyguardStatusHeight - mClockNotificationsMargin;
|
||||
: mMinTopMargin + mKeyguardStatusHeight;
|
||||
}
|
||||
|
||||
private int getExpandedPreferredClockY() {
|
||||
return mMinTopMargin + mUserSwitchHeight;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vertically align the clock and the shade in the available space considering only
|
||||
* a percentage of the clock height defined by {@code CLOCK_HEIGHT_WEIGHT}.
|
||||
* @return Clock Y in pixels.
|
||||
*/
|
||||
public int getExpandedClockPosition() {
|
||||
final int availableHeight = mMaxShadeBottom - mMinTopMargin;
|
||||
final int containerCenter = mMinTopMargin + availableHeight / 2;
|
||||
|
||||
float y = containerCenter
|
||||
- (mKeyguardStatusHeight + mUserSwitchHeight) * CLOCK_HEIGHT_WEIGHT
|
||||
- mClockNotificationsMargin - mNotificationStackHeight / 2;
|
||||
if (y < mMinTopMargin) {
|
||||
y = mMinTopMargin;
|
||||
}
|
||||
|
||||
// Don't allow the clock base to be under half of the screen
|
||||
final float maxClockY = getMaxClockY();
|
||||
if (y > maxClockY) {
|
||||
y = maxClockY;
|
||||
}
|
||||
|
||||
return (int) y;
|
||||
public int getLockscreenStatusViewHeight() {
|
||||
return mKeyguardStatusHeight;
|
||||
}
|
||||
|
||||
private int getClockY(float panelExpansion, float darkAmount) {
|
||||
|
||||
@@ -602,6 +602,10 @@ public class NotificationIconAreaController implements
|
||||
updateAodIconColors();
|
||||
}
|
||||
|
||||
public int getHeight() {
|
||||
return mAodIcons == null ? 0 : mAodIcons.getHeight();
|
||||
}
|
||||
|
||||
public void appearAodIcons() {
|
||||
if (mAodIcons == null) {
|
||||
return;
|
||||
|
||||
@@ -1273,7 +1273,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
mNotificationStackScrollLayoutController.getIntrinsicContentHeight(),
|
||||
expandedFraction,
|
||||
totalHeight,
|
||||
mKeyguardStatusViewController.getHeight(),
|
||||
mKeyguardStatusViewController.getLockscreenHeight(),
|
||||
userIconHeight,
|
||||
userSwitcherPreferredY, hasCustomClock(),
|
||||
hasVisibleNotifications, darkamount, mOverStretchAmount,
|
||||
@@ -2682,14 +2682,6 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
|
||||
@Override
|
||||
protected int getMaxPanelHeight() {
|
||||
if (mKeyguardBypassController.getBypassEnabled() && mBarState == KEYGUARD) {
|
||||
return getMaxPanelHeightBypass();
|
||||
} else {
|
||||
return getMaxPanelHeightNonBypass();
|
||||
}
|
||||
}
|
||||
|
||||
private int getMaxPanelHeightNonBypass() {
|
||||
int min = mStatusBarMinHeight;
|
||||
if (!(mBarState == KEYGUARD)
|
||||
&& mNotificationStackScrollLayoutController.getNotGoneChildCount() == 0) {
|
||||
@@ -2714,16 +2706,6 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
return maxHeight;
|
||||
}
|
||||
|
||||
private int getMaxPanelHeightBypass() {
|
||||
int position =
|
||||
mClockPositionAlgorithm.getExpandedClockPosition()
|
||||
+ mKeyguardStatusViewController.getHeight();
|
||||
if (mNotificationStackScrollLayoutController.getVisibleNotificationCount() != 0) {
|
||||
position += mShelfHeight / 2.0f + mDarkIconSize / 2.0f;
|
||||
}
|
||||
return position;
|
||||
}
|
||||
|
||||
public boolean isInSettings() {
|
||||
return mQsExpanded;
|
||||
}
|
||||
@@ -2795,11 +2777,8 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
maxHeight += mNotificationStackScrollLayoutController.getTopPaddingOverflow();
|
||||
|
||||
if (mBarState == KEYGUARD) {
|
||||
int
|
||||
minKeyguardPanelBottom =
|
||||
mClockPositionAlgorithm.getExpandedClockPosition()
|
||||
+ mKeyguardStatusViewController.getHeight()
|
||||
+ mNotificationStackScrollLayoutController.getIntrinsicContentHeight();
|
||||
int minKeyguardPanelBottom = mClockPositionAlgorithm.getLockscreenStatusViewHeight()
|
||||
+ mNotificationStackScrollLayoutController.getIntrinsicContentHeight();
|
||||
return Math.max(maxHeight, minKeyguardPanelBottom);
|
||||
} else {
|
||||
return maxHeight;
|
||||
@@ -3349,7 +3328,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
}
|
||||
if (mKeyguardBypassController.getBypassEnabled() && isOnKeyguard()) {
|
||||
// The expandedHeight is always the full panel Height when bypassing
|
||||
expandedHeight = getMaxPanelHeightNonBypass();
|
||||
expandedHeight = getMaxPanelHeight();
|
||||
}
|
||||
mNotificationStackScrollLayoutController.setExpandedHeight(expandedHeight);
|
||||
updateKeyguardBottomAreaAlpha();
|
||||
|
||||
Reference in New Issue
Block a user