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

Commit 3ee1079a authored by Hawkwood's avatar Hawkwood
Browse files

Regsister ClockEventController listeners in preview

Add a isPreview member to ClockEventController to disable the event
callbacks that shouldn't fire as normal in the preview context. This
also changes some of the logs in ClockEventController.

Bug: 437833979
Test: Tested preview behavior on device
Flag: NONE Minor change to clock preview behavior
Change-Id: Ifd8f4587d3bb313a635614d3c79dcc71ba24ec4a
parent 263650e3
Loading
Loading
Loading
Loading
+22 −16
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import android.icu.util.TimeZone as IcuTimeZone
import android.os.Trace
import android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS
import android.provider.Settings.Global.ZEN_MODE_OFF
import android.util.Log
import android.util.TypedValue
import android.view.View
import android.view.View.OnAttachStateChangeListener
@@ -114,13 +113,8 @@ constructor(
    private val userTracker: UserTracker,
    private val dozingToLockscreenViewModel: Lazy<DozingToLockscreenTransitionViewModel>,
) {
    var loggers =
        listOf(
                clockBuffers.infraMessageBuffer,
                clockBuffers.smallClockMessageBuffer,
                clockBuffers.largeClockMessageBuffer,
            )
            .map { Logger(it, TAG) }
    val logger = Logger(clockBuffers.infraMessageBuffer, TAG)
    var isPreview: Boolean = false

    var clock: ClockController? = null
        get() = field
@@ -152,7 +146,7 @@ constructor(
            return
        }
        val clockStr = clock.toString()
        loggers.forEach { it.d({ "New Clock: $str1" }) { str1 = clockStr } }
        logger.i({ "New Clock: $str1" }) { str1 = clockStr }

        clock.eventListeners.attach(clockListener)
        clock.initialize(isDarkTheme(), dozeAmount.value, 0f)
@@ -188,9 +182,7 @@ constructor(
        updateTimeListeners()

        weatherData?.let {
            if (WeatherData.DEBUG) {
                Log.i(TAG, "Pushing cached weather data to new clock: $it")
            }
            logger.i({ "Pushing cached weather data to new clock: $str1" }) { str1 = "$it" }
            clock.events.onWeatherDataChanged(it)
        }
        zenData?.let { clock.events.onZenDataChanged(it) }
@@ -280,7 +272,7 @@ constructor(
        }

        clock?.run {
            Log.i(TAG, "isThemeDark: $isDarkTheme")
            logger.i({ "updateColors(isThemeDark = $bool1)" }) { bool1 = isDarkTheme }
            smallClock.updateTheme { it.copy(isDarkTheme = isDarkTheme) }
            largeClock.updateTheme { it.copy(isDarkTheme = isDarkTheme) }
        }
@@ -314,7 +306,7 @@ constructor(
    var smallTimeListener: TimeListener? = null
    var largeTimeListener: TimeListener? = null
    val shouldTimeListenerRun: Boolean
        get() = isKeyguardVisible && dozeAmount.value < DOZE_TICKRATE_THRESHOLD
        get() = !isPreview && isKeyguardVisible && dozeAmount.value < DOZE_TICKRATE_THRESHOLD

    private var weatherData: WeatherData? = null
    private var zenData: ZenData? = null
@@ -336,10 +328,12 @@ constructor(
    private val configListener =
        object : ConfigurationController.ConfigurationListener {
            override fun onThemeChanged() {
                logger.i("onThemeChanged")
                updateColors()
            }

            override fun onDensityOrFontScaleChanged() {
                logger.i("onDensityOrFontScaleChanged")
                updateFontSizes()
            }
        }
@@ -347,7 +341,7 @@ constructor(
    private val batteryCallback =
        object : BatteryStateChangeCallback {
            override fun onBatteryLevelChanged(level: Int, pluggedIn: Boolean, charging: Boolean) {
                if (isKeyguardVisible && !isCharging && charging) {
                if (!isPreview && isKeyguardVisible && !isCharging && charging) {
                    clock?.run {
                        smallClock.animations.charge()
                        largeClock.animations.charge()
@@ -444,7 +438,10 @@ constructor(
    private fun handleZenMode(zen: Int) {
        val mode = ZenMode.fromInt(zen)
        if (mode == null) {
            Log.e(TAG, "Failed to get zen mode from int: $zen")
            logger.e({ "Failed to get zen mode from int: $str1 ($int1)" }) {
                str1 = "$mode"
                int1 = zen
            }
            return
        }

@@ -460,6 +457,7 @@ constructor(
    }

    fun bind(parent: View): DisposableHandle {
        logger.i({ "bind($str1)" }) { str1 = "$parent" }
        return parent.repeatWhenAttached {
            repeatOnLifecycle(Lifecycle.State.CREATED) {
                listenForDnd(this)
@@ -477,6 +475,7 @@ constructor(
    fun registerListeners() {
        if (isRegistered) return
        isRegistered = true
        logger.i("registerListeners(isPreview = $isPreview)")

        broadcastDispatcher.registerReceiver(
            localeBroadcastReceiver,
@@ -507,6 +506,7 @@ constructor(
    fun unregisterListeners() {
        if (!isRegistered) return
        isRegistered = false
        logger.i("unregisterListeners(isPreview = $isPreview)")

        broadcastDispatcher.unregisterReceiver(localeBroadcastReceiver)
        configurationController.removeCallback(configListener)
@@ -578,6 +578,7 @@ constructor(
    }

    fun handleFidgetTap(x: Float, y: Float) {
        if (isPreview) return
        clock?.run {
            smallClock.animations.onFidgetTap(x, y)
            largeClock.animations.onFidgetTap(x, y)
@@ -585,6 +586,11 @@ constructor(
    }

    private fun handleDoze(doze: Float) {
        if (isPreview) {
            dozeAmount.value = doze
            return
        }

        clock?.run {
            Trace.beginSection("$TAG#smallClock.animations.doze")
            smallClock.animations.doze(doze)
+4 −0
Original line number Diff line number Diff line
@@ -139,7 +139,11 @@ constructor(
    @Style.Type private var themeStyle: Int? = null

    init {
        clockController.isPreview = true
        clockController.registerListeners()
        disposables += DisposableHandle { clockController.unregisterListeners() }
        clockController.setFallbackWeatherData(WeatherData.getPlaceholderWeatherData())

        quickAffordancesCombinedViewModel.enablePreviewMode(
            initiallySelectedSlotId =
                previewViewModel.request.getString(KEY_INITIALLY_SELECTED_SLOT_ID)