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

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

Make logger injectable (1/3)

Test: Manually tested logger works as expected
Bug: 305069232
Change-Id: I4e83837498c23d45b66f77dfc7ecbeb037decdb7
parent abb9b067
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ import com.android.customization.model.themedicon.data.repository.ThemeIconRepos
import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
import com.android.customization.model.themedicon.domain.interactor.ThemedIconSnapshotRestorer
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.module.logging.ThemesUserEventLoggerImpl
import com.android.customization.picker.clock.data.repository.ClockPickerRepositoryImpl
import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
@@ -72,7 +71,6 @@ import com.android.wallpaper.dispatchers.MainDispatcher
import com.android.wallpaper.module.CustomizationSections
import com.android.wallpaper.module.FragmentFactory
import com.android.wallpaper.module.WallpaperPicker2Injector
import com.android.wallpaper.module.logging.UserEventLogger
import com.android.wallpaper.picker.CustomizationPickerActivity
import com.android.wallpaper.picker.customization.data.content.WallpaperClientImpl
import com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository
@@ -92,9 +90,9 @@ internal constructor(
    @MainDispatcher private val mainScope: CoroutineScope,
    @MainDispatcher private val mainDispatcher: CoroutineDispatcher,
    @BackgroundDispatcher private val bgDispatcher: CoroutineDispatcher,
) : WallpaperPicker2Injector(mainScope, bgDispatcher), CustomizationInjector {
    private val userEventLogger: ThemesUserEventLogger,
) : WallpaperPicker2Injector(mainScope, bgDispatcher, userEventLogger), CustomizationInjector {
    private var customizationSections: CustomizationSections? = null
    private var userEventLogger: UserEventLogger? = null
    private var wallpaperInteractor: WallpaperInteractor? = null
    private var keyguardQuickAffordancePickerInteractor: KeyguardQuickAffordancePickerInteractor? =
        null
@@ -166,10 +164,7 @@ internal constructor(

    @Synchronized
    override fun getUserEventLogger(context: Context): ThemesUserEventLogger {
        return userEventLogger as? ThemesUserEventLogger
            ?: ThemesUserEventLoggerImpl(getPreferences(context.applicationContext)).also {
                userEventLogger = it
            }
        return userEventLogger
    }

    override fun getFragmentFactory(): FragmentFactory? {
+8 −2
Original line number Diff line number Diff line
@@ -31,10 +31,16 @@ import com.android.wallpaper.module.logging.UserEventLogger.EffectStatus
import com.android.wallpaper.module.logging.UserEventLogger.SetWallpaperEntryPoint
import com.android.wallpaper.module.logging.UserEventLogger.WallpaperDestination
import com.android.wallpaper.util.LaunchSourceUtils
import javax.inject.Inject
import javax.inject.Singleton

/** StatsLog-backed implementation of [ThemesUserEventLogger]. */
class ThemesUserEventLoggerImpl(private val preferences: WallpaperPreferences) :
    ThemesUserEventLogger {
@Singleton
class ThemesUserEventLoggerImpl
@Inject
constructor(
    private val preferences: WallpaperPreferences,
) : ThemesUserEventLogger {

    override fun logSnapshot() {
        SysUiStatsLogger(StyleEnums.SNAPSHOT)
+11 −0
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@ import android.content.Context
import com.android.customization.module.CustomizationInjector
import com.android.customization.module.DefaultCustomizationPreferences
import com.android.customization.module.ThemePickerInjector
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.module.logging.ThemesUserEventLoggerImpl
import com.android.wallpaper.module.logging.UserEventLogger
import dagger.Binds
import dagger.Module
import dagger.Provides
@@ -32,6 +35,14 @@ import javax.inject.Singleton
abstract class AppModule {
    @Binds @Singleton abstract fun bindInjector(impl: ThemePickerInjector): CustomizationInjector

    @Binds
    @Singleton
    abstract fun bindUserEventLogger(impl: ThemesUserEventLoggerImpl): UserEventLogger

    @Binds
    @Singleton
    abstract fun bindThemesUserEventLogger(impl: ThemesUserEventLoggerImpl): ThemesUserEventLogger

    companion object {
        @Provides
        @Singleton
+5 −1
Original line number Diff line number Diff line
@@ -18,9 +18,13 @@ package com.android.customization.module.logging
import com.android.customization.model.grid.GridOption
import com.android.customization.module.logging.ThemesUserEventLogger.ColorSource
import com.android.wallpaper.module.logging.TestUserEventLogger
import javax.inject.Inject
import javax.inject.Singleton

/** Test implementation of [ThemesUserEventLogger]. */
class TestThemesUserEventLogger : TestUserEventLogger(), ThemesUserEventLogger {
@Singleton
class TestThemesUserEventLogger @Inject constructor() :
    TestUserEventLogger(), ThemesUserEventLogger {

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

+4 −6
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@ import android.content.res.Resources
import androidx.activity.ComponentActivity
import com.android.customization.module.CustomizationInjector
import com.android.customization.module.CustomizationPreferences
import com.android.customization.module.logging.TestThemesUserEventLogger
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
@@ -25,10 +24,10 @@ import javax.inject.Singleton
@Singleton
open class TestCustomizationInjector
@Inject
constructor(private val customPrefs: TestDefaultCustomizationPreferences) :
    TestInjector(), CustomizationInjector {
    private var themesUserEventLogger: ThemesUserEventLogger? = null

constructor(
    private val customPrefs: TestDefaultCustomizationPreferences,
    private val themesUserEventLogger: ThemesUserEventLogger
) : TestInjector(themesUserEventLogger), CustomizationInjector {
    /////////////////
    // CustomizationInjector implementations
    /////////////////
@@ -95,6 +94,5 @@ constructor(private val customPrefs: TestDefaultCustomizationPreferences) :

    override fun getUserEventLogger(context: Context): UserEventLogger {
        return themesUserEventLogger
            ?: TestThemesUserEventLogger().also { themesUserEventLogger = it }
    }
}
Loading