Merge "Fix overlap between weather clock and smartspace" into udc-qpr-dev am: 335ebbcd21
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24762406
Change-Id: Ica3717b77909f6b30403df522cad0ca6187b0dcb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
index 1703b30..610df11 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
@@ -112,6 +112,8 @@
private int mWeatherClockSmartspaceTranslateY = 0;
private int mDrawAlpha = 255;
+ private int mStatusBarHeight = 0;
+
/**
* Maintain state so that a newly connected plugin can be initialized.
*/
@@ -154,6 +156,8 @@
R.dimen.weather_clock_smartspace_translateX);
mWeatherClockSmartspaceTranslateY = mContext.getResources().getDimensionPixelSize(
R.dimen.weather_clock_smartspace_translateY);
+ mStatusBarHeight = mContext.getResources().getDimensionPixelSize(
+ R.dimen.status_bar_height);
updateStatusArea(/* animate= */false);
}
@@ -299,6 +303,8 @@
mStatusAreaAnim = null;
View in, out;
+ // statusAreaYTranslation uses for the translation for both mStatusArea and mSmallClockFrame
+ // statusAreaClockTranslateY only uses for mStatusArea
float statusAreaYTranslation, statusAreaClockScale = 1f;
float statusAreaClockTranslateX = 0f, statusAreaClockTranslateY = 0f;
float clockInYTranslation, clockOutYTranslation;
@@ -313,10 +319,21 @@
&& mClock.getLargeClock().getConfig().getHasCustomWeatherDataDisplay()) {
statusAreaClockScale = mWeatherClockSmartspaceScaling;
statusAreaClockTranslateX = mWeatherClockSmartspaceTranslateX;
- statusAreaClockTranslateY = mWeatherClockSmartspaceTranslateY - mSmartspaceTop;
if (mSplitShadeCentered) {
statusAreaClockTranslateX *= SMARTSPACE_TRANSLATION_CENTER_MULTIPLIER;
}
+
+ // On large weather clock,
+ // top padding for time is status bar height from top of the screen.
+ // On small one,
+ // it's screenOffsetYPadding (translationY for KeyguardStatusView),
+ // Cause smartspace is positioned according to the smallClockFrame
+ // we need to translate the difference between bottom of large clock and small clock
+ // Also, we need to counter offset the empty date weather view, mSmartspaceTop
+ // mWeatherClockSmartspaceTranslateY is only for Felix
+ statusAreaClockTranslateY = mStatusBarHeight - 0.6F * mSmallClockFrame.getHeight()
+ - mSmartspaceTop - screenOffsetYPadding
+ - statusAreaYTranslation + mWeatherClockSmartspaceTranslateY;
}
clockInYTranslation = 0;
clockOutYTranslation = 0; // Small clock translation is handled with statusArea