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

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

[WPP logging] Wire logClockApplied (1/2)

Test: Manually tested. See bug.
Bug: 305753671
Flag: NONE
Change-Id: Ibf282179a098bc105469a3fa0047b1febcfab241
parent a5b2679b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.customization.module
import android.content.Context
import android.content.res.Resources
import androidx.activity.ComponentActivity
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
@@ -54,6 +55,7 @@ interface CustomizationInjector : Injector {
        interactor: ClockPickerInteractor,
        clockViewFactory: ClockViewFactory,
        resources: Resources,
        logger: ThemesUserEventLogger,
    ): ClockCarouselViewModel.Factory

    fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory
+9 −1
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ internal constructor(
                        interactor = getClockPickerInteractor(appContext),
                        clockViewFactory = clockViewFactory,
                        resources = resources,
                        logger = userEventLogger,
                    ),
                    clockViewFactory,
                    getThemedIconSnapshotRestorer(appContext),
@@ -350,9 +351,16 @@ internal constructor(
        interactor: ClockPickerInteractor,
        clockViewFactory: ClockViewFactory,
        resources: Resources,
        logger: ThemesUserEventLogger,
    ): ClockCarouselViewModel.Factory {
        return clockCarouselViewModelFactory
            ?: ClockCarouselViewModel.Factory(interactor, bgDispatcher, clockViewFactory, resources)
            ?: ClockCarouselViewModel.Factory(
                    interactor,
                    bgDispatcher,
                    clockViewFactory,
                    resources,
                    logger,
                )
                .also { clockCarouselViewModelFactory = it }
    }

+8 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.graphics.Color
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.ui.view.ClockViewFactory
@@ -47,6 +48,7 @@ class ClockCarouselViewModel(
    private val backgroundDispatcher: CoroutineDispatcher,
    private val clockViewFactory: ClockViewFactory,
    private val resources: Resources,
    private val logger: ThemesUserEventLogger,
) : ViewModel() {
    @OptIn(ExperimentalCoroutinesApi::class)
    val allClocks: StateFlow<List<ClockCarouselItemViewModel>> =
@@ -122,7 +124,10 @@ class ClockCarouselViewModel(
    fun setSelectedClock(clockId: String) {
        setSelectedClockJob?.cancel()
        setSelectedClockJob =
            viewModelScope.launch(backgroundDispatcher) { interactor.setSelectedClock(clockId) }
            viewModelScope.launch(backgroundDispatcher) {
                interactor.setSelectedClock(clockId)
                logger.logClockApplied(clockId)
            }
    }

    class Factory(
@@ -130,6 +135,7 @@ class ClockCarouselViewModel(
        private val backgroundDispatcher: CoroutineDispatcher,
        private val clockViewFactory: ClockViewFactory,
        private val resources: Resources,
        private val logger: ThemesUserEventLogger,
    ) : ViewModelProvider.Factory {
        override fun <T : ViewModel> create(modelClass: Class<T>): T {
            @Suppress("UNCHECKED_CAST")
@@ -138,6 +144,7 @@ class ClockCarouselViewModel(
                backgroundDispatcher = backgroundDispatcher,
                clockViewFactory = clockViewFactory,
                resources = resources,
                logger = logger,
            )
                as T
        }
+1 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ constructor(
        interactor: ClockPickerInteractor,
        clockViewFactory: ClockViewFactory,
        resources: Resources,
        logger: ThemesUserEventLogger,
    ): ClockCarouselViewModel.Factory {
        throw UnsupportedOperationException("not implemented")
    }
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.customization.picker.clock.ui.viewmodel

import androidx.test.filters.SmallTest
import androidx.test.platform.app.InstrumentationRegistry
import com.android.customization.module.logging.TestThemesUserEventLogger
import com.android.customization.picker.clock.data.repository.ClockPickerRepository
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
@@ -86,6 +87,7 @@ class ClockCarouselViewModelTest {
                backgroundDispatcher = testDispatcher,
                clockViewFactory = clockViewFactory,
                resources = InstrumentationRegistry.getInstrumentation().targetContext.resources,
                logger = TestThemesUserEventLogger(),
            )
        val observedSelectedIndex = collectLastValue(underTest.selectedIndex)
        advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)