diff options
3 files changed, 37 insertions, 18 deletions
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/quickaffordance/shared/model/KeyguardPreviewConstants.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/quickaffordance/shared/model/KeyguardPreviewConstants.kt index 08ee60204178..6f363a4ffa26 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/quickaffordance/shared/model/KeyguardPreviewConstants.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/quickaffordance/shared/model/KeyguardPreviewConstants.kt @@ -20,6 +20,8 @@ package com.android.systemui.shared.quickaffordance.shared.model object KeyguardPreviewConstants { const val MESSAGE_ID_HIDE_SMART_SPACE = 1111 const val KEY_HIDE_SMART_SPACE = "hide_smart_space" + const val MESSAGE_ID_COLOR_OVERRIDE = 1234 + const val KEY_COLOR_OVERRIDE = "color_override" // ColorInt Encoded as string const val MESSAGE_ID_SLOT_SELECTED = 1337 const val KEY_SLOT_ID = "slot_id" const val KEY_INITIALLY_SELECTED_SLOT_ID = "initially_selected_slot_id" 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 951f0bd76a64..ad11360160c1 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 @@ -17,6 +17,7 @@ package com.android.systemui.keyguard.ui.preview +import android.annotation.ColorInt import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -85,6 +86,7 @@ constructor( private var clockView: View? = null private var smartSpaceView: View? = null + private var colorOverride: Int? = null private val disposables = mutableSetOf<DisposableHandle>() private var isDestroyed = false @@ -171,6 +173,14 @@ constructor( } } + /** Sets the clock's color to the overridden seed color. */ + fun onColorOverridden(@ColorInt color: Int?) { + runBlocking(mainDispatcher) { + colorOverride = color + clockController.clock?.run { events.onSeedColorChanged(color) } + } + } + /** * This sets up and shows a non-interactive smart space * @@ -288,8 +298,10 @@ constructor( val receiver = object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { - clockController.clock?.smallClock?.events?.onTimeTick() - clockController.clock?.largeClock?.events?.onTimeTick() + clockController.clock?.run { + smallClock.events.onTimeTick() + largeClock.events.onTimeTick() + } } } broadcastDispatcher.registerReceiver( @@ -305,18 +317,18 @@ constructor( } private fun onClockChanged(parentView: ViewGroup) { - clockController.clock = clockRegistry.createCurrentClock() + val clock = clockRegistry.createCurrentClock() + clockController.clock = clock + colorOverride?.let { clock.events.onSeedColorChanged(it) } if (!shouldHideClock) { - val largeClock = clockController.clock?.largeClock - - largeClock - ?.events - ?.onTargetRegionChanged(KeyguardClockSwitch.getLargeClockRegion(parentView)) + clock.largeClock.events.onTargetRegionChanged( + KeyguardClockSwitch.getLargeClockRegion(parentView) + ) clockView?.let { parentView.removeView(it) } clockView = - largeClock?.view?.apply { + clock.largeClock.view.apply { if (shouldHighlightSelectedAffordance) { alpha = DIM_ALPHA } @@ -329,7 +341,7 @@ constructor( // Hide smart space if the clock has weather display; otherwise show it val hasCustomWeatherDataDisplay = - clockController.clock?.largeClock?.config?.hasCustomWeatherDataDisplay == true + clock.largeClock.config.hasCustomWeatherDataDisplay == true hideSmartspace(hasCustomWeatherDataDisplay) } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardRemotePreviewManager.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardRemotePreviewManager.kt index 3869b23900d1..79712f9c6be5 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardRemotePreviewManager.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardRemotePreviewManager.kt @@ -115,16 +115,21 @@ constructor( when (message.what) { KeyguardPreviewConstants.MESSAGE_ID_SLOT_SELECTED -> { - message.data - .getString( - KeyguardPreviewConstants.KEY_SLOT_ID, - ) - ?.let { slotId -> renderer.onSlotSelected(slotId = slotId) } + message.data.getString(KeyguardPreviewConstants.KEY_SLOT_ID)?.let { slotId -> + renderer.onSlotSelected(slotId = slotId) + } } KeyguardPreviewConstants.MESSAGE_ID_HIDE_SMART_SPACE -> { - message.data - .getBoolean(KeyguardPreviewConstants.KEY_HIDE_SMART_SPACE) - .let { hide -> renderer.hideSmartspace(hide) } + renderer.hideSmartspace( + message.data.getBoolean(KeyguardPreviewConstants.KEY_HIDE_SMART_SPACE) + ) + } + KeyguardPreviewConstants.MESSAGE_ID_COLOR_OVERRIDE -> { + renderer.onColorOverridden( + message.data + .getString(KeyguardPreviewConstants.KEY_COLOR_OVERRIDE) + ?.toIntOrNull() + ) } else -> requestDestruction(this) } |