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

Commit 54d0ceda authored by Catherine Liang's avatar Catherine Liang
Browse files

Use ViewModel to store loading animation state (2/3)

Replace usages of saved instance state with view model fields, since
large data structures like bitmaps should not be stored in saved
instance state. Decided to use CustomizationPickerViewModel to store
these fields since the ViewModel needs to be unique within the
CustomizationPickerFragment scope.

Bug: 274443705
Flag: wallpaper_picker_preview_animation
Test: Manually tested to ensure animation is unchanged, and
functionality is unchanged wherever ScreenPreviewViewModel is used

Change-Id: I0208148d3580a314d9fa0ea90d34e933b6773c02
parent 5cefe4e4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ public final class DefaultCustomizationSections implements CustomizationSections
                        mThemedIconInteractor,
                        wallpaperManager,
                        isTwoPaneAndSmallWidth,
                        savedInstanceState)
                        customizationPickerViewModel)
                        : new PreviewWithThemeSectionController(
                                activity,
                                lifecycleOwner,
@@ -136,7 +136,7 @@ public final class DefaultCustomizationSections implements CustomizationSections
                                mThemedIconInteractor,
                                wallpaperManager,
                                isTwoPaneAndSmallWidth,
                                savedInstanceState));
                                customizationPickerViewModel));

        sectionControllers.add(
                new ConnectedSectionController(
+3 −3
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ package com.android.customization.picker.preview.ui.section
import android.app.WallpaperManager
import android.content.Context
import android.graphics.Rect
import android.os.Bundle
import android.view.TouchDelegate
import android.view.View
import android.view.View.OnAttachStateChangeListener
@@ -50,6 +49,7 @@ import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInt
import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewClickView
import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController
import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewView
import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationPickerViewModel
import com.android.wallpaper.util.DisplayUtils
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
@@ -73,7 +73,7 @@ class PreviewWithClockCarouselSectionController(
    themedIconInteractor: ThemedIconInteractor,
    wallpaperManager: WallpaperManager,
    private val isTwoPaneAndSmallWidth: Boolean,
    savedInstanceState: Bundle?,
    customizationPickerViewModel: CustomizationPickerViewModel,
) :
    PreviewWithThemeSectionController(
        activity,
@@ -87,7 +87,7 @@ class PreviewWithClockCarouselSectionController(
        themedIconInteractor,
        wallpaperManager,
        isTwoPaneAndSmallWidth,
        savedInstanceState,
        customizationPickerViewModel,
    ) {

    private val viewModel =
+3 −3
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ package com.android.customization.picker.preview.ui.section
import android.app.Activity
import android.app.WallpaperManager
import android.content.Context
import android.os.Bundle
import androidx.lifecycle.LifecycleOwner
import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
import com.android.customization.picker.preview.ui.viewmodel.PreviewWithThemeViewModel
@@ -31,6 +30,7 @@ import com.android.wallpaper.module.CurrentWallpaperInfoFactory
import com.android.wallpaper.module.CustomizationSections
import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController
import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationPickerViewModel
import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
import com.android.wallpaper.util.DisplayUtils
import com.android.wallpaper.util.PreviewUtils
@@ -52,7 +52,7 @@ open class PreviewWithThemeSectionController(
    private val themedIconInteractor: ThemedIconInteractor,
    wallpaperManager: WallpaperManager,
    isTwoPaneAndSmallWidth: Boolean,
    savedInstanceState: Bundle?,
    customizationPickerViewModel: CustomizationPickerViewModel,
) :
    ScreenPreviewSectionController(
        activity,
@@ -65,7 +65,7 @@ open class PreviewWithThemeSectionController(
        wallpaperInteractor,
        wallpaperManager,
        isTwoPaneAndSmallWidth,
        savedInstanceState,
        customizationPickerViewModel,
    ) {
    override fun createScreenPreviewViewModel(context: Context): ScreenPreviewViewModel {
        return PreviewWithThemeViewModel(