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

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

Refactor WallpaperModelFactory (3/3)

This CL makes the following changes:
This CL makes the following changes:
1. Created an interface WallpaperDataFactory, which is implemented by
   DefaultWallpaperModelFactory and GooogleWallpaperModelFactory,
   respectively, depending which project we include.
   This also avoids complex inheritence pattern, where developers need
   to go back and forth to know what's going on when converting.
2. Made DefaultWallpaperModelFactory and
   GooogleWallpaperModelFactory injectable classes.
3. Moved functions in DataFactory classes to companion extension
   functions. Developers do not need to look into many classes.
4. Since DownloadableLiveWallpaperInfo represents a wallpaper that's not
   yet downloaded, we should treat it as a static wallpaper that shows
   the static image.

Test: Manually tested that the downloadable wallpaper shows
Bug: 291761856
Flag: ACONFIG com.android.wallpaper.multi_crop_preview_ui_flag DEVELOPMENT
Change-Id: Iefc7202bcd9e963cfb3cc1c5933925f87a40d663
parent 3149f90a
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.module.logging.ThemesUserEventLoggerImpl
import com.android.wallpaper.module.logging.UserEventLogger
import com.android.wallpaper.util.converter.DefaultWallpaperModelFactory
import com.android.wallpaper.util.converter.WallpaperModelFactory
import dagger.Binds
import dagger.Module
import dagger.Provides
@@ -46,6 +47,12 @@ abstract class AppModule {
    @Singleton
    abstract fun bindThemesUserEventLogger(impl: ThemesUserEventLoggerImpl): ThemesUserEventLogger

    @Binds
    @Singleton
    abstract fun bindWallpaperModelFactory(
        impl: DefaultWallpaperModelFactory
    ): WallpaperModelFactory

    companion object {
        @Provides
        @Singleton
@@ -55,12 +62,6 @@ abstract class AppModule {
            return DefaultCustomizationPreferences(context)
        }

        @Provides
        @Singleton
        fun provideDefaultWallpaperModelFactory(): DefaultWallpaperModelFactory {
            return DefaultWallpaperModelFactory()
        }

        @Provides
        @Singleton
        fun provideColorCustomizationManager(
+7 −6
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ import com.android.wallpaper.module.logging.UserEventLogger
import com.android.wallpaper.testing.TestInjector
import com.android.wallpaper.testing.TestWallpaperPreferences
import com.android.wallpaper.util.converter.DefaultWallpaperModelFactory
import com.android.wallpaper.util.converter.WallpaperModelFactory
import dagger.Binds
import dagger.Module
import dagger.Provides
@@ -63,13 +64,13 @@ abstract class TestModule {
        impl: TestDefaultCustomizationPreferences
    ): CustomizationPreferences

    companion object {
        @Provides
    @Binds
    @Singleton
        fun provideDefaultWallpaperModelFactory(): DefaultWallpaperModelFactory {
            return DefaultWallpaperModelFactory()
        }
    abstract fun bindWallpaperModelFactory(
        impl: DefaultWallpaperModelFactory
    ): WallpaperModelFactory

    companion object {
        @Provides
        @Singleton
        fun provideColorCustomizationManager(): ColorCustomizationManager {