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

Commit e0c5f710 authored by George Lin's avatar George Lin
Browse files

[WPP logging] Wire logClockColorApplied and logClockSizeApplied

Test: Manually tested. See bug.
Bug: 305753671
Flag: NONE
Change-Id: Ied843e1b57e8c180e83883fd60377753eae5fc2c
parent e209f49a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -494,6 +494,7 @@ internal constructor(
                        context,
                        wallpaperColorsRepository,
                    ),
                    userEventLogger,
                ) { clockId ->
                    clockId?.let { clockViewFactory.getController(clockId).config.isReactiveToTone }
                        ?: false
+4 −0
Original line number Diff line number Diff line
@@ -57,4 +57,8 @@ interface ThemesUserEventLogger : UserEventLogger {
    )
    @Retention(AnnotationRetention.SOURCE)
    annotation class ClockSize

    companion object {
        const val NULL_SEED_COLOR = 0
    }
}
+11 −0
Original line number Diff line number Diff line
@@ -16,7 +16,18 @@
 */
package com.android.customization.picker.clock.shared

import android.stats.style.StyleEnums
import com.android.customization.module.logging.ThemesUserEventLogger

enum class ClockSize {
    DYNAMIC,
    SMALL,
}

@ThemesUserEventLogger.ClockSize
fun ClockSize.toClockSizeForLogging(): Int {
    return when (this) {
        ClockSize.DYNAMIC -> StyleEnums.CLOCK_SIZE_DYNAMIC
        ClockSize.SMALL -> StyleEnums.CLOCK_SIZE_SMALL
    }
}
+28 −14
Original line number Diff line number Diff line
@@ -21,9 +21,12 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.android.customization.model.color.ColorOptionImpl
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.module.logging.ThemesUserEventLogger.Companion.NULL_SEED_COLOR
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import com.android.customization.picker.clock.shared.toClockSizeForLogging
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
import com.android.customization.picker.color.shared.model.ColorOptionModel
import com.android.customization.picker.color.shared.model.ColorType
@@ -53,6 +56,7 @@ private constructor(
    private val clockPickerInteractor: ClockPickerInteractor,
    private val colorPickerInteractor: ColorPickerInteractor,
    private val getIsReactiveToTone: (clockId: String?) -> Boolean,
    private val logger: ThemesUserEventLogger,
) : ViewModel() {

    enum class Tab {
@@ -106,15 +110,17 @@ private constructor(
    suspend fun onSliderProgressStop(progress: Int) {
        val selectedColorId = selectedColorId.value ?: return
        val clockColorViewModel = colorMap[selectedColorId] ?: return
        clockPickerInteractor.setClockColor(
            selectedColorId = selectedColorId,
            colorToneProgress = progress,
            seedColor =
        val seedColor =
            blendColorWithTone(
                color = clockColorViewModel.color,
                colorTone = clockColorViewModel.getColorTone(progress),
            )
        clockPickerInteractor.setClockColor(
            selectedColorId = selectedColorId,
            colorToneProgress = progress,
            seedColor = seedColor,
        )
        logger.logClockColorApplied(seedColor)
    }

    @OptIn(ExperimentalCoroutinesApi::class)
@@ -169,18 +175,20 @@ private constructor(
                                    } else {
                                        {
                                            viewModelScope.launch {
                                                clockPickerInteractor.setClockColor(
                                                    selectedColorId = colorModel.colorId,
                                                    colorToneProgress = colorToneProgress,
                                                    seedColor =
                                                val seedColor =
                                                    blendColorWithTone(
                                                        color = colorModel.color,
                                                        colorTone =
                                                            colorModel.getColorTone(
                                                                colorToneProgress,
                                                            ),
                                                        ),
                                                    )
                                                clockPickerInteractor.setClockColor(
                                                    selectedColorId = colorModel.colorId,
                                                    colorToneProgress = colorToneProgress,
                                                    seedColor = seedColor,
                                                )
                                                logger.logClockColorApplied(seedColor)
                                            }
                                        }
                                    }
@@ -244,6 +252,7 @@ private constructor(
                                        ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
                                    seedColor = null,
                                )
                                logger.logClockColorApplied(NULL_SEED_COLOR)
                            }
                        }
                    }
@@ -254,7 +263,10 @@ private constructor(
    val selectedClockSize: Flow<ClockSize> = clockPickerInteractor.selectedClockSize

    fun setClockSize(size: ClockSize) {
        viewModelScope.launch { clockPickerInteractor.setClockSize(size) }
        viewModelScope.launch {
            clockPickerInteractor.setClockSize(size)
            logger.logClockSizeApplied(size.toClockSizeForLogging())
        }
    }

    private val _selectedTabPosition = MutableStateFlow(Tab.COLOR)
@@ -304,6 +316,7 @@ private constructor(
        private val context: Context,
        private val clockPickerInteractor: ClockPickerInteractor,
        private val colorPickerInteractor: ColorPickerInteractor,
        private val logger: ThemesUserEventLogger,
        private val getIsReactiveToTone: (clockId: String?) -> Boolean,
    ) : ViewModelProvider.Factory {
        override fun <T : ViewModel> create(modelClass: Class<T>): T {
@@ -312,6 +325,7 @@ private constructor(
                context = context,
                clockPickerInteractor = clockPickerInteractor,
                colorPickerInteractor = colorPickerInteractor,
                logger = logger,
                getIsReactiveToTone = getIsReactiveToTone,
            )
                as T
+11 −1
Original line number Diff line number Diff line
@@ -15,7 +15,9 @@
 */
package com.android.customization.module.logging

import android.stats.style.StyleEnums
import com.android.customization.model.grid.GridOption
import com.android.customization.module.logging.ThemesUserEventLogger.ClockSize
import com.android.customization.module.logging.ThemesUserEventLogger.ColorSource
import com.android.wallpaper.module.logging.TestUserEventLogger
import javax.inject.Inject
@@ -25,6 +27,7 @@ import javax.inject.Singleton
@Singleton
class TestThemesUserEventLogger @Inject constructor() :
    TestUserEventLogger(), ThemesUserEventLogger {
    @ClockSize private var clockSize: Int = StyleEnums.CLOCK_SIZE_UNSPECIFIED

    override fun logThemeColorApplied(@ColorSource source: Int, variant: Int, seedColor: Int) {}

@@ -34,7 +37,9 @@ class TestThemesUserEventLogger @Inject constructor() :

    override fun logClockColorApplied(seedColor: Int) {}

    override fun logClockSizeApplied(clockSize: Int) {}
    override fun logClockSizeApplied(@ClockSize clockSize: Int) {
        this.clockSize = clockSize
    }

    override fun logThemedIconApplied(useThemeIcon: Boolean) {}

@@ -43,4 +48,9 @@ class TestThemesUserEventLogger @Inject constructor() :
    override fun logShortcutApplied(shortcut: String, shortcutSlotId: String) {}

    override fun logDarkThemeApplied(useDarkTheme: Boolean) {}

    @ClockSize
    fun getLoggedClockSize(): Int {
        return clockSize
    }
}
Loading