Loading src/com/android/customization/module/ThemePickerInjector.kt +25 −13 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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( Loading Loading @@ -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) Loading @@ -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 } } Loading Loading @@ -334,7 +346,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject repository = NotificationsRepository( scope = getApplicationCoroutineScope(), backgroundDispatcher = Dispatchers.IO, backgroundDispatcher = bgDispatcher, secureSettingsRepository = getSecureSettingsRepository(context), ), snapshotRestorer = { getNotificationsSnapshotRestorer(appContext) }, Loading @@ -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() Loading @@ -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) }, ) Loading @@ -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 } } Loading Loading @@ -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 } } Loading Loading @@ -568,7 +580,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject GridRepositoryImpl( applicationScope = getApplicationCoroutineScope(), manager = GridOptionsManager.getInstance(context), backgroundDispatcher = Dispatchers.IO, backgroundDispatcher = bgDispatcher, ), snapshotRestorer = { getGridSnapshotRestorer(appContext) }, ) Loading src_override/com/android/customization/picker/CustomizationPickerApplication.java +6 −1 Original line number Diff line number Diff line Loading @@ -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); } } Loading
src/com/android/customization/module/ThemePickerInjector.kt +25 −13 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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( Loading Loading @@ -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) Loading @@ -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 } } Loading Loading @@ -334,7 +346,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject repository = NotificationsRepository( scope = getApplicationCoroutineScope(), backgroundDispatcher = Dispatchers.IO, backgroundDispatcher = bgDispatcher, secureSettingsRepository = getSecureSettingsRepository(context), ), snapshotRestorer = { getNotificationsSnapshotRestorer(appContext) }, Loading @@ -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() Loading @@ -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) }, ) Loading @@ -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 } } Loading Loading @@ -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 } } Loading Loading @@ -568,7 +580,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject GridRepositoryImpl( applicationScope = getApplicationCoroutineScope(), manager = GridOptionsManager.getInstance(context), backgroundDispatcher = Dispatchers.IO, backgroundDispatcher = bgDispatcher, ), snapshotRestorer = { getGridSnapshotRestorer(appContext) }, ) Loading
src_override/com/android/customization/picker/CustomizationPickerApplication.java +6 −1 Original line number Diff line number Diff line Loading @@ -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); } }