Merge "Provide color override path through keyguard preview renderer" into udc-dev

This commit is contained in:
Hawkwood Glazier
2023-05-03 14:35:41 +00:00
committed by Android (Google) Code Review
3 changed files with 37 additions and 18 deletions

View File

@@ -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"

View File

@@ -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)
}

View File

@@ -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)
}