Update size and vertical spacing of clock on keyguard.
Bug: 130223602
Test: visual
Change-Id: I09f6dff826d6ef297a4babdc9aa70b7f138dbeed
diff --git a/packages/SystemUI/res-keyguard/layout/digital_clock.xml b/packages/SystemUI/res-keyguard/layout/digital_clock.xml
index 7c15fe6..38ee081 100644
--- a/packages/SystemUI/res-keyguard/layout/digital_clock.xml
+++ b/packages/SystemUI/res-keyguard/layout/digital_clock.xml
@@ -26,6 +26,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
+ android:paddingBottom="@dimen/widget_vertical_padding_clock"
android:letterSpacing="0.03"
android:textColor="?attr/wallpaperTextColor"
android:singleLine="true"
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml b/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml
index 1967dd1..bf2963c 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml
@@ -36,7 +36,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
- android:letterSpacing="0.03"
+ android:paddingBottom="@dimen/title_clock_padding"
+ android:letterSpacing="0.02"
android:textColor="?attr/wallpaperTextColor"
android:singleLine="true"
style="@style/widget_big"
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml b/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml
index dc45b4b..a84ddaf 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml
@@ -32,8 +32,9 @@
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingStart="64dp"
- android:paddingEnd="64dp"
+ android:paddingStart="44dp"
+ android:paddingEnd="44dp"
+ android:letterSpacing="0.02"
android:visibility="gone"
android:textColor="?attr/wallpaperTextColor"
android:theme="@style/TextAppearance.Keyguard"
@@ -45,4 +46,4 @@
android:orientation="horizontal"
android:gravity="center"
/>
-</com.android.keyguard.KeyguardSliceView>
\ No newline at end of file
+</com.android.keyguard.KeyguardSliceView>
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
index 10fea9d..04d6afc 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
@@ -29,6 +29,7 @@
androidprv:layout_maxHeight="@dimen/keyguard_security_height"
android:gravity="center_horizontal|top">
<LinearLayout
+ android:id="@+id/status_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/widget_vertical_padding"
diff --git a/packages/SystemUI/res-keyguard/values-h560dp/dimens.xml b/packages/SystemUI/res-keyguard/values-h560dp/dimens.xml
index 3fb86d0..669f8fb 100644
--- a/packages/SystemUI/res-keyguard/values-h560dp/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values-h560dp/dimens.xml
@@ -16,5 +16,5 @@
-->
<resources>
- <dimen name="widget_big_font_size">64dp</dimen>
-</resources>
\ No newline at end of file
+ <dimen name="widget_big_font_size">54dp</dimen>
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-h650dp/dimens.xml b/packages/SystemUI/res-keyguard/values-h650dp/dimens.xml
index 3fb86d0..669f8fb 100644
--- a/packages/SystemUI/res-keyguard/values-h650dp/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values-h650dp/dimens.xml
@@ -16,5 +16,5 @@
-->
<resources>
- <dimen name="widget_big_font_size">64dp</dimen>
-</resources>
\ No newline at end of file
+ <dimen name="widget_big_font_size">54dp</dimen>
+</resources>
diff --git a/packages/SystemUI/res-keyguard/values-sw600dp/dimens.xml b/packages/SystemUI/res-keyguard/values-sw600dp/dimens.xml
index fdca44d..e9bd638 100644
--- a/packages/SystemUI/res-keyguard/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values-sw600dp/dimens.xml
@@ -27,7 +27,7 @@
<!-- Overload default clock widget parameters -->
<dimen name="widget_big_font_size">100dp</dimen>
- <dimen name="widget_label_font_size">16sp</dimen>
+ <dimen name="widget_label_font_size">18sp</dimen>
<!-- EmergencyCarrierArea overlap - amount to overlap the emergency button and carrier text.
Should be 0 on devices with plenty of room (e.g. tablets) -->
diff --git a/packages/SystemUI/res-keyguard/values/dimens.xml b/packages/SystemUI/res-keyguard/values/dimens.xml
index 112dde6..8e00efe 100644
--- a/packages/SystemUI/res-keyguard/values/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values/dimens.xml
@@ -42,23 +42,26 @@
<dimen name="eca_overlap">-10dip</dimen>
<!-- Slice header -->
- <dimen name="widget_title_font_size">22dp</dimen>
- <dimen name="header_subtitle_padding">4dp</dimen>
- <dimen name="header_icon_size">20dp</dimen>
+ <dimen name="widget_title_font_size">24dp</dimen>
+ <dimen name="header_subtitle_padding">12dp</dimen>
+ <dimen name="header_icon_size">16dp</dimen>
<!-- Slice subtitle -->
- <dimen name="widget_label_font_size">16dp</dimen>
+ <dimen name="widget_label_font_size">18dp</dimen>
<!-- Clock without header -->
- <dimen name="widget_big_font_size">64dp</dimen>
+ <dimen name="widget_big_font_size">54dp</dimen>
<dimen name="bottom_text_spacing_digital">0dp</dimen>
+ <dimen name="title_clock_padding">4dp</dimen>
<!-- Clock with header -->
- <dimen name="widget_small_font_size">22dp</dimen>
- <dimen name="widget_vertical_padding">32dp</dimen>
+ <dimen name="widget_small_font_size">@dimen/widget_title_font_size</dimen>
+ <dimen name="widget_vertical_padding">24dp</dimen>
+ <dimen name="widget_vertical_padding_with_header">32dp</dimen>
<dimen name="widget_vertical_padding_clock">12dp</dimen>
<!-- Subtitle paddings -->
<dimen name="widget_horizontal_padding">8dp</dimen>
- <dimen name="widget_icon_size">16dp</dimen>
+ <dimen name="widget_icon_size">20dp</dimen>
<dimen name="widget_icon_padding">8dp</dimen>
- <dimen name="subtitle_clock_padding">15dp</dimen>
+ <dimen name="subtitle_clock_padding">0dp</dimen>
+ <dimen name="header_row_font_size">14dp</dimen>
<!-- Notification shelf padding when dark -->
<dimen name="widget_bottom_separator_padding">-6dp</dimen>
diff --git a/packages/SystemUI/res-keyguard/values/styles.xml b/packages/SystemUI/res-keyguard/values/styles.xml
index 1c8e141..137c30a 100644
--- a/packages/SystemUI/res-keyguard/values/styles.xml
+++ b/packages/SystemUI/res-keyguard/values/styles.xml
@@ -115,6 +115,7 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:lines">1</item>
<item name="android:textSize">@dimen/widget_label_font_size</item>
+ <item name="android:letterSpacing">0.02</item>
</style>
<style name="TextAppearance.Keyguard.BottomArea">
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
index c15c787..d0b2c58 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
@@ -416,7 +416,7 @@
mClockView.setVisibility(hasHeader ? View.INVISIBLE : View.VISIBLE);
mClockViewBold.setVisibility(hasHeader ? View.VISIBLE : View.INVISIBLE);
int paddingBottom = mContext.getResources().getDimensionPixelSize(hasHeader
- ? R.dimen.widget_vertical_padding_clock : R.dimen.header_subtitle_padding);
+ ? R.dimen.widget_vertical_padding_clock : R.dimen.title_clock_padding);
mClockView.setPadding(mClockView.getPaddingLeft(), mClockView.getPaddingTop(),
mClockView.getPaddingRight(), paddingBottom);
mClockViewBold.setPadding(mClockViewBold.getPaddingLeft(), mClockViewBold.getPaddingTop(),
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
index c1bf4d4..e219e24 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
@@ -38,6 +38,7 @@
import android.text.TextUtils.TruncateAt;
import android.util.AttributeSet;
import android.util.Log;
+import android.util.TypedValue;
import android.view.View;
import android.view.animation.Animation;
import android.widget.Button;
@@ -98,6 +99,7 @@
private LiveData<Slice> mLiveData;
private int mDisplayId = INVALID_DISPLAY;
private int mIconSize;
+ private int mIconSizeWithHeader;
/**
* Runnable called whenever the view contents change.
*/
@@ -106,6 +108,8 @@
private boolean mHasHeader;
private final int mRowWithHeaderPadding;
private final int mRowPadding;
+ private float mRowTextSize;
+ private float mRowWithHeaderTextSize;
@Inject
public KeyguardSliceView(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
@@ -141,6 +145,11 @@
mRow = findViewById(R.id.row);
mTextColor = Utils.getColorAttrDefaultColor(mContext, R.attr.wallpaperTextColor);
mIconSize = (int) mContext.getResources().getDimension(R.dimen.widget_icon_size);
+ mIconSizeWithHeader = (int) mContext.getResources().getDimension(R.dimen.header_icon_size);
+ mRowTextSize = mContext.getResources().getDimensionPixelSize(
+ R.dimen.widget_label_font_size);
+ mRowWithHeaderTextSize = mContext.getResources().getDimensionPixelSize(
+ R.dimen.header_row_font_size);
mTitle.setOnClickListener(this);
}
@@ -244,16 +253,19 @@
final SliceItem titleItem = rc.getTitleItem();
button.setText(titleItem == null ? null : titleItem.getText());
button.setContentDescription(rc.getContentDescription());
+ button.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+ mHasHeader ? mRowWithHeaderTextSize : mRowTextSize);
Drawable iconDrawable = null;
SliceItem icon = SliceQuery.find(item.getSlice(),
android.app.slice.SliceItem.FORMAT_IMAGE);
if (icon != null) {
+ final int iconSize = mHasHeader ? mIconSizeWithHeader : mIconSize;
iconDrawable = icon.getIcon().loadDrawable(mContext);
if (iconDrawable != null) {
final int width = (int) (iconDrawable.getIntrinsicWidth()
- / (float) iconDrawable.getIntrinsicHeight() * mIconSize);
- iconDrawable.setBounds(0, 0, Math.max(width, 1), mIconSize);
+ / (float) iconDrawable.getIntrinsicHeight() * iconSize);
+ iconDrawable.setBounds(0, 0, Math.max(width, 1), iconSize);
}
}
button.setCompoundDrawables(iconDrawable, null, null, null);
@@ -361,6 +373,11 @@
@Override
public void onDensityOrFontScaleChanged() {
mIconSize = mContext.getResources().getDimensionPixelSize(R.dimen.widget_icon_size);
+ mIconSizeWithHeader = (int) mContext.getResources().getDimension(R.dimen.header_icon_size);
+ mRowTextSize = mContext.getResources().getDimensionPixelSize(
+ R.dimen.widget_label_font_size);
+ mRowWithHeaderTextSize = mContext.getResources().getDimensionPixelSize(
+ R.dimen.header_row_font_size);
}
public void refresh() {
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index b02d514..1dc3474 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -33,6 +33,7 @@
import android.util.TypedValue;
import android.view.View;
import android.widget.GridLayout;
+import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.core.graphics.ColorUtils;
@@ -55,6 +56,7 @@
private final LockPatternUtils mLockPatternUtils;
private final IActivityManager mIActivityManager;
+ private LinearLayout mStatusViewContainer;
private TextView mLogoutView;
private KeyguardClockSwitch mClockView;
private TextView mOwnerInfo;
@@ -66,6 +68,14 @@
private float mDarkAmount = 0;
private int mTextColor;
+ /**
+ * Bottom margin that defines the margin between bottom of smart space and top of notification
+ * icons on AOD.
+ */
+ private int mBottomMargin;
+ private int mBottomMarginWithHeader;
+ private boolean mShowingHeader;
+
private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
@Override
@@ -161,6 +171,7 @@
@Override
protected void onFinishInflate() {
super.onFinishInflate();
+ mStatusViewContainer = findViewById(R.id.status_view_container);
mLogoutView = findViewById(R.id.logout);
if (mLogoutView != null) {
mLogoutView.setOnClickListener(this::onLogoutClicked);
@@ -190,7 +201,19 @@
* Moves clock, adjusting margins when slice content changes.
*/
private void onSliceContentChanged() {
- mClockView.setKeyguardShowingHeader(mKeyguardSlice.hasHeader());
+ final boolean hasHeader = mKeyguardSlice.hasHeader();
+ mClockView.setKeyguardShowingHeader(hasHeader);
+ if (mShowingHeader == hasHeader) {
+ return;
+ }
+ mShowingHeader = hasHeader;
+ // Update bottom margin since header has appeared/disappeared.
+ if (mStatusViewContainer != null) {
+ MarginLayoutParams params = (MarginLayoutParams) mStatusViewContainer.getLayoutParams();
+ params.setMargins(params.leftMargin, params.topMargin, params.rightMargin,
+ hasHeader ? mBottomMarginWithHeader : mBottomMargin);
+ mStatusViewContainer.setLayoutParams(params);
+ }
}
@Override
@@ -209,6 +232,7 @@
mOwnerInfo.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimensionPixelSize(R.dimen.widget_label_font_size));
}
+ loadBottomMargin();
}
public void dozeTimeTick() {
@@ -318,6 +342,12 @@
}
}
+ private void loadBottomMargin() {
+ mBottomMargin = getResources().getDimensionPixelSize(R.dimen.widget_vertical_padding);
+ mBottomMarginWithHeader = getResources().getDimensionPixelSize(
+ R.dimen.widget_vertical_padding_with_header);
+ }
+
// DateFormat.getBestDateTimePattern is extremely expensive, and refresh is called often.
// This is an optimization to ensure we only recompute the patterns when the inputs change.
private static final class Patterns {