summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hawkwood Glazier <jglazier@google.com> 2023-05-01 19:43:14 +0000
committer Hawkwood Glazier <jglazier@google.com> 2023-05-02 19:55:04 +0000
commit0598fbb21a48ab9134d281131322da8711d415b2 (patch)
tree74e18282f3cbafea19d1abe68b052adcacd1932e
parente8899cf6512ac881c087d1a53fe19df33bf7f3f4 (diff)
Provide color override path through keyguard preview renderer
Bug: 279763790 Test: Manually checked wpp use case Change-Id: I25e7f7c481bf3327846ebf94cc09a79562dab6fc
-rw-r--r--packages/SystemUI/customization/src/com/android/systemui/shared/quickaffordance/shared/model/KeyguardPreviewConstants.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt32
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardRemotePreviewManager.kt21
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)
}