Merge "Provide color override path through keyguard preview renderer" into udc-dev
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 08ee602..6f363a4 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 @@
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 951f0bd..ad11360 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 @@
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 @@
}
}
+ /** 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 @@
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 @@
}
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 @@
// 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 3869b23..79712f9c 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 @@
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)
}