From 685f93a978779b3068871fb656e8f40cf2fb1a24 Mon Sep 17 00:00:00 2001 From: Sherry Zhou Date: Fri, 5 May 2023 21:47:36 +0000 Subject: [PATCH] Fix clock too low in preview Test: manual Bug: 279645188 Change-Id: I05a87f89109814690edf6d5d0f5a211fc9f99194 --- .../ui/preview/KeyguardPreviewRenderer.kt | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt index 3aa57dde31781..a72490b273fbe 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt @@ -41,6 +41,7 @@ import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.keyguard.ui.viewmodel.KeyguardBottomAreaViewModel import com.android.systemui.shared.clocks.ClockRegistry +import com.android.systemui.shared.clocks.DefaultClockController import com.android.systemui.shared.clocks.shared.model.ClockPreviewConstants import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants import com.android.systemui.statusbar.lockscreen.LockscreenSmartspaceController @@ -313,6 +314,36 @@ constructor( ) disposables.add(DisposableHandle { broadcastDispatcher.unregisterReceiver(receiver) }) + val layoutChangeListener = + object : View.OnLayoutChangeListener { + override fun onLayoutChange( + v: View, + left: Int, + top: Int, + right: Int, + bottom: Int, + oldLeft: Int, + oldTop: Int, + oldRight: Int, + oldBottom: Int + ) { + if (clockController.clock !is DefaultClockController) { + clockController.clock + ?.largeClock + ?.events + ?.onTargetRegionChanged( + KeyguardClockSwitch.getLargeClockRegion(parentView) + ) + } + } + } + + parentView.addOnLayoutChangeListener(layoutChangeListener) + + disposables.add( + DisposableHandle { parentView.removeOnLayoutChangeListener(layoutChangeListener) } + ) + onClockChanged(parentView) }