1 package com.android.customization.testing 2 3 import android.app.WallpaperColors 4 import android.content.Context 5 import android.content.res.Resources 6 import androidx.activity.ComponentActivity 7 import com.android.customization.model.color.WallpaperColorResources 8 import com.android.customization.module.CustomizationInjector 9 import com.android.customization.module.CustomizationPreferences 10 import com.android.customization.module.logging.ThemesUserEventLogger 11 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor 12 import com.android.customization.picker.clock.ui.view.ClockViewFactory 13 import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel 14 import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel 15 import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel 16 import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor 17 import com.android.wallpaper.module.NetworkStatusNotifier 18 import com.android.wallpaper.module.PartnerProvider 19 import com.android.wallpaper.module.WallpaperPreferences 20 import com.android.wallpaper.module.logging.UserEventLogger 21 import com.android.wallpaper.network.Requester 22 import com.android.wallpaper.picker.category.wrapper.WallpaperCategoryWrapper 23 import com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository 24 import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor 25 import com.android.wallpaper.testing.FakeCurrentWallpaperInfoFactory 26 import com.android.wallpaper.testing.FakeWallpaperClient 27 import com.android.wallpaper.testing.FakeWallpaperRefresher 28 import com.android.wallpaper.testing.TestInjector 29 import com.android.wallpaper.testing.TestPackageStatusNotifier 30 import com.android.wallpaper.util.DisplayUtils 31 import javax.inject.Inject 32 import javax.inject.Singleton 33 34 @Singleton 35 open class TestCustomizationInjector 36 @Inject 37 constructor( 38 private val customPrefs: TestDefaultCustomizationPreferences, 39 private val themesUserEventLogger: ThemesUserEventLogger, 40 displayUtils: DisplayUtils, 41 requester: Requester, 42 networkStatusNotifier: NetworkStatusNotifier, 43 partnerProvider: PartnerProvider, 44 wallpaperClient: FakeWallpaperClient, 45 injectedWallpaperInteractor: WallpaperInteractor, 46 prefs: WallpaperPreferences, 47 private val fakeWallpaperCategoryWrapper: WallpaperCategoryWrapper, 48 testStatusNotifier: TestPackageStatusNotifier, 49 currentWallpaperInfoFactory: FakeCurrentWallpaperInfoFactory, 50 wallpaperRefresher: FakeWallpaperRefresher, 51 ) : 52 TestInjector( 53 themesUserEventLogger, 54 displayUtils, 55 requester, 56 networkStatusNotifier, 57 partnerProvider, 58 wallpaperClient, 59 injectedWallpaperInteractor, 60 prefs, 61 fakeWallpaperCategoryWrapper, 62 testStatusNotifier, 63 currentWallpaperInfoFactory, 64 wallpaperRefresher, 65 ), 66 CustomizationInjector { 67 ///////////////// 68 // CustomizationInjector implementations 69 ///////////////// 70 getCustomizationPreferencesnull71 override fun getCustomizationPreferences(context: Context): CustomizationPreferences { 72 return customPrefs 73 } 74 getKeyguardQuickAffordancePickerInteractornull75 override fun getKeyguardQuickAffordancePickerInteractor( 76 context: Context 77 ): KeyguardQuickAffordancePickerInteractor { 78 throw UnsupportedOperationException("not implemented") 79 } 80 getWallpaperColorResourcesnull81 override fun getWallpaperColorResources( 82 wallpaperColors: WallpaperColors, 83 context: Context, 84 ): WallpaperColorResources { 85 throw UnsupportedOperationException("not implemented") 86 } 87 getColorPickerViewModelFactorynull88 override fun getColorPickerViewModelFactory(context: Context): ColorPickerViewModel.Factory { 89 throw UnsupportedOperationException("not implemented") 90 } 91 getClockCarouselViewModelFactorynull92 override fun getClockCarouselViewModelFactory( 93 interactor: ClockPickerInteractor, 94 clockViewFactory: ClockViewFactory, 95 resources: Resources, 96 ): ClockCarouselViewModel.Factory { 97 throw UnsupportedOperationException("not implemented") 98 } 99 getClockViewFactorynull100 override fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory { 101 throw UnsupportedOperationException("not implemented") 102 } 103 getClockSettingsViewModelFactorynull104 override fun getClockSettingsViewModelFactory( 105 context: Context, 106 wallpaperColorsRepository: WallpaperColorsRepository, 107 ): ClockSettingsViewModel.Factory { 108 throw UnsupportedOperationException("not implemented") 109 } 110 111 ///////////////// 112 // TestInjector overrides 113 ///////////////// 114 getUserEventLoggernull115 override fun getUserEventLogger(): UserEventLogger { 116 return themesUserEventLogger 117 } 118 getWallpaperCategoryWrappernull119 override fun getWallpaperCategoryWrapper(): WallpaperCategoryWrapper { 120 return fakeWallpaperCategoryWrapper 121 } 122 } 123