Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0287018 authored by Hawkwood Glazier's avatar Hawkwood Glazier Committed by Automerger Merge Worker
Browse files

Merge "Provide color override path through keyguard preview renderer" into...

Merge "Provide color override path through keyguard preview renderer" into udc-dev am: 082e2eeb am: 684b6a76

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22955047



Change-Id: I44c85440710d106d1345c5b6d63b65161187e620
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 36bbac2e 684b6a76
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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"
+22 −10
Original line number Diff line number Diff line
@@ -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)
    }

+13 −8
Original line number Diff line number Diff line
@@ -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 -> {
                    renderer.hideSmartspace(
                        message.data.getBoolean(KeyguardPreviewConstants.KEY_HIDE_SMART_SPACE)
                    )
                }
                KeyguardPreviewConstants.MESSAGE_ID_COLOR_OVERRIDE -> {
                    renderer.onColorOverridden(
                        message.data
                        .getBoolean(KeyguardPreviewConstants.KEY_HIDE_SMART_SPACE)
                        .let { hide -> renderer.hideSmartspace(hide) }
                            .getString(KeyguardPreviewConstants.KEY_COLOR_OVERRIDE)
                            ?.toIntOrNull()
                    )
                }
                else -> requestDestruction(this)
            }