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

Commit 2b1e19a1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add dispatcher module for Hilt injection (2/3)" into udc-qpr-dev

parents 50ce33ce e8661973
Loading
Loading
Loading
Loading
+25 −13
Original line number Diff line number Diff line
@@ -68,6 +68,8 @@ import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQui
import com.android.systemui.shared.clocks.ClockRegistry
import com.android.systemui.shared.customization.data.content.CustomizationProviderClient
import com.android.systemui.shared.customization.data.content.CustomizationProviderClientImpl
import com.android.wallpaper.dispatchers.BackgroundDispatcher
import com.android.wallpaper.dispatchers.MainDispatcher
import com.android.wallpaper.model.LiveWallpaperInfo
import com.android.wallpaper.model.WallpaperColorsViewModel
import com.android.wallpaper.model.WallpaperInfo
@@ -85,9 +87,19 @@ import com.android.wallpaper.picker.customization.data.repository.WallpaperRepos
import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
import com.android.wallpaper.util.ScreenSizeCalculator
import kotlinx.coroutines.Dispatchers

open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInjector {
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope

@Singleton
open class ThemePickerInjector
@Inject
internal constructor(
    @MainDispatcher private val mainScope: CoroutineScope,
    @MainDispatcher private val mainDispatcher: CoroutineDispatcher,
    @BackgroundDispatcher private val bgDispatcher: CoroutineDispatcher,
) : WallpaperPicker2Injector(mainScope, bgDispatcher), CustomizationInjector {
    private var customizationSections: CustomizationSections? = null
    private var userEventLogger: UserEventLogger? = null
    private var prefs: WallpaperPreferences? = null
@@ -248,7 +260,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
                                    wallpaperManager = WallpaperManager.getInstance(appContext)
                                ),
                            wallpaperPreferences = getPreferences(context = appContext),
                            backgroundDispatcher = Dispatchers.IO,
                            backgroundDispatcher = bgDispatcher,
                        ),
                    shouldHandleReload = {
                        TextUtils.equals(
@@ -288,7 +300,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
        val client = getKeyguardQuickAffordancePickerProviderClient(context)
        val appContext = context.applicationContext
        return KeyguardQuickAffordancePickerInteractor(
            KeyguardQuickAffordancePickerRepository(client, Dispatchers.IO),
            KeyguardQuickAffordancePickerRepository(client, bgDispatcher),
            client
        ) {
            getKeyguardQuickAffordanceSnapshotRestorer(appContext)
@@ -299,7 +311,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
        context: Context
    ): CustomizationProviderClient {
        return customizationProviderClient
            ?: CustomizationProviderClientImpl(context.applicationContext, Dispatchers.IO).also {
            ?: CustomizationProviderClientImpl(context.applicationContext, bgDispatcher).also {
                customizationProviderClient = it
            }
    }
@@ -334,7 +346,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
                    repository =
                        NotificationsRepository(
                            scope = getApplicationCoroutineScope(),
                            backgroundDispatcher = Dispatchers.IO,
                            backgroundDispatcher = bgDispatcher,
                            secureSettingsRepository = getSecureSettingsRepository(context),
                        ),
                    snapshotRestorer = { getNotificationsSnapshotRestorer(appContext) },
@@ -358,8 +370,8 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
                ?: ClockRegistryProvider(
                        context = context.applicationContext,
                        coroutineScope = getApplicationCoroutineScope(),
                        mainDispatcher = Dispatchers.Main,
                        backgroundDispatcher = Dispatchers.IO,
                        mainDispatcher = mainDispatcher,
                        backgroundDispatcher = bgDispatcher,
                    )
                    .also { clockRegistryProvider = it })
            .get()
@@ -376,7 +388,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
                            secureSettingsRepository = getSecureSettingsRepository(appContext),
                            registry = getClockRegistry(appContext),
                            scope = getApplicationCoroutineScope(),
                            mainDispatcher = Dispatchers.Main,
                            mainDispatcher = mainDispatcher,
                        ),
                    snapshotRestorer = { getClockPickerSnapshotRestorer(appContext) },
                )
@@ -398,7 +410,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
        interactor: ClockPickerInteractor,
    ): ClockCarouselViewModel.Factory {
        return clockCarouselViewModelFactory
            ?: ClockCarouselViewModel.Factory(interactor, Dispatchers.IO).also {
            ?: ClockCarouselViewModel.Factory(interactor, bgDispatcher).also {
                clockCarouselViewModelFactory = it
            }
    }
@@ -493,7 +505,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
            ?: DarkModeSnapshotRestorer(
                    context = appContext,
                    manager = appContext.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager,
                    backgroundDispatcher = Dispatchers.IO,
                    backgroundDispatcher = bgDispatcher,
                )
                .also { darkModeSnapshotRestorer = it }
    }
@@ -568,7 +580,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
                        GridRepositoryImpl(
                            applicationScope = getApplicationCoroutineScope(),
                            manager = GridOptionsManager.getInstance(context),
                            backgroundDispatcher = Dispatchers.IO,
                            backgroundDispatcher = bgDispatcher,
                        ),
                    snapshotRestorer = { getGridSnapshotRestorer(appContext) },
                )
+6 −1
Original line number Diff line number Diff line
@@ -22,16 +22,21 @@ import com.android.wallpaper.module.InjectorProvider;

import dagger.hilt.android.HiltAndroidApp;

import javax.inject.Inject;

/**
 * Application subclass that initializes the injector.
 */
@HiltAndroidApp(Application.class)
public class CustomizationPickerApplication extends Hilt_CustomizationPickerApplication {

    @Inject ThemePickerInjector mInjector;

    @Override
    public void onCreate() {
        super.onCreate();

        // Initialize the injector.
        InjectorProvider.setInjector(new ThemePickerInjector());
        InjectorProvider.setInjector(mInjector);
    }
}