summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java30
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java1
2 files changed, 27 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
index 06b66922466c..1703b3034775 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java
@@ -48,6 +48,7 @@ public class KeyguardClockSwitch extends RelativeLayout {
private static final long STATUS_AREA_MOVE_UP_MILLIS = 967;
private static final long STATUS_AREA_MOVE_DOWN_MILLIS = 467;
private static final float SMARTSPACE_TRANSLATION_CENTER_MULTIPLIER = 1.4f;
+ private static final float SMARTSPACE_TOP_PADDING_MULTIPLIER = 2.625f;
@IntDef({LARGE, SMALL})
@Retention(RetentionPolicy.SOURCE)
@@ -96,6 +97,14 @@ public class KeyguardClockSwitch extends RelativeLayout {
private KeyguardClockFrame mLargeClockFrame;
private ClockController mClock;
+ // It's bc_smartspace_view, assigned by KeyguardClockSwitchController
+ // to get the top padding for translating smartspace for weather clock
+ private View mSmartspace;
+
+ // Smartspace in weather clock is translated by this value
+ // to compensate for the position invisible dateWeatherView
+ private int mSmartspaceTop = -1;
+
private KeyguardStatusAreaView mStatusArea;
private int mSmartspaceTopOffset;
private float mWeatherClockSmartspaceScaling = 1f;
@@ -134,8 +143,11 @@ public class KeyguardClockSwitch extends RelativeLayout {
public void onConfigChanged() {
mClockSwitchYAmount = mContext.getResources().getDimensionPixelSize(
R.dimen.keyguard_clock_switch_y_shift);
- mSmartspaceTopOffset = mContext.getResources().getDimensionPixelSize(
- R.dimen.keyguard_smartspace_top_offset);
+ mSmartspaceTopOffset = (int) (mContext.getResources().getDimensionPixelSize(
+ R.dimen.keyguard_smartspace_top_offset)
+ * mContext.getResources().getConfiguration().fontScale
+ / mContext.getResources().getDisplayMetrics().density
+ * SMARTSPACE_TOP_PADDING_MULTIPLIER);
mWeatherClockSmartspaceScaling = ResourcesCompat.getFloat(
mContext.getResources(), R.dimen.weather_clock_smartspace_scale);
mWeatherClockSmartspaceTranslateX = mContext.getResources().getDimensionPixelSize(
@@ -145,6 +157,12 @@ public class KeyguardClockSwitch extends RelativeLayout {
updateStatusArea(/* animate= */false);
}
+ /** Get bc_smartspace_view from KeyguardClockSwitchController
+ * Use its top to decide the translation value */
+ public void setSmartspace(View smartspace) {
+ mSmartspace = smartspace;
+ }
+
/** Sets whether the large clock is being shown on a connected display. */
public void setLargeClockOnSecondaryDisplay(boolean onSecondaryDisplay) {
if (mClock != null) {
@@ -295,7 +313,7 @@ public class KeyguardClockSwitch extends RelativeLayout {
&& mClock.getLargeClock().getConfig().getHasCustomWeatherDataDisplay()) {
statusAreaClockScale = mWeatherClockSmartspaceScaling;
statusAreaClockTranslateX = mWeatherClockSmartspaceTranslateX;
- statusAreaClockTranslateY = mWeatherClockSmartspaceTranslateY;
+ statusAreaClockTranslateY = mWeatherClockSmartspaceTranslateY - mSmartspaceTop;
if (mSplitShadeCentered) {
statusAreaClockTranslateX *= SMARTSPACE_TRANSLATION_CENTER_MULTIPLIER;
}
@@ -418,10 +436,14 @@ public class KeyguardClockSwitch extends RelativeLayout {
post(() -> updateClockTargetRegions());
}
- if (mDisplayedClockSize != null && !mChildrenAreLaidOut) {
+ if (mSmartspace != null && mSmartspaceTop != mSmartspace.getTop()) {
+ mSmartspaceTop = mSmartspace.getTop();
post(() -> updateClockViews(mDisplayedClockSize == LARGE, mAnimateOnLayout));
}
+ if (mDisplayedClockSize != null && !mChildrenAreLaidOut) {
+ post(() -> updateClockViews(mDisplayedClockSize == LARGE, mAnimateOnLayout));
+ }
mChildrenAreLaidOut = true;
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
index 6d2880e00203..d89796005e25 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
@@ -372,6 +372,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
mSmartspaceView.setPaddingRelative(startPadding, 0, endPadding, 0);
mKeyguardUnlockAnimationController.setLockscreenSmartspace(mSmartspaceView);
+ mView.setSmartspace(mSmartspaceView);
}
/**