summaryrefslogtreecommitdiff
path: root/src/com/android/customization/module/DefaultCustomizationSections.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/customization/module/DefaultCustomizationSections.java')
-rw-r--r--src/com/android/customization/module/DefaultCustomizationSections.java157
1 files changed, 127 insertions, 30 deletions
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index c47a6e63..232e9482 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -11,21 +11,36 @@ import com.android.customization.model.color.ColorSectionController;
import com.android.customization.model.grid.GridOptionsManager;
import com.android.customization.model.grid.GridSectionController;
import com.android.customization.model.mode.DarkModeSectionController;
+import com.android.customization.model.mode.DarkModeSnapshotRestorer;
import com.android.customization.model.themedicon.ThemedIconSectionController;
import com.android.customization.model.themedicon.ThemedIconSwitchProvider;
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor;
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconSnapshotRestorer;
+import com.android.customization.picker.clock.ui.view.ClockViewFactory;
+import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel;
+import com.android.customization.picker.color.ui.section.ColorSectionController2;
+import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel;
+import com.android.customization.picker.notifications.ui.section.NotificationSectionController;
+import com.android.customization.picker.notifications.ui.viewmodel.NotificationSectionViewModel;
+import com.android.customization.picker.preview.ui.section.PreviewWithClockCarouselSectionController;
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor;
import com.android.customization.picker.quickaffordance.ui.section.KeyguardQuickAffordanceSectionController;
import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel;
+import com.android.customization.picker.settings.ui.section.MoreSettingsSectionController;
+import com.android.wallpaper.config.BaseFlags;
import com.android.wallpaper.model.CustomizationSectionController;
import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController;
import com.android.wallpaper.model.PermissionRequester;
import com.android.wallpaper.model.WallpaperColorsViewModel;
import com.android.wallpaper.model.WallpaperPreviewNavigator;
import com.android.wallpaper.model.WallpaperSectionController;
-import com.android.wallpaper.model.WorkspaceViewModel;
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.ConnectedSectionController;
import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController;
+import com.android.wallpaper.picker.customization.ui.section.WallpaperQuickSwitchSectionController;
+import com.android.wallpaper.picker.customization.ui.viewmodel.WallpaperQuickSwitchViewModel;
import com.android.wallpaper.util.DisplayUtils;
import java.util.ArrayList;
@@ -34,47 +49,100 @@ import java.util.List;
/** {@link CustomizationSections} for the customization picker. */
public final class DefaultCustomizationSections implements CustomizationSections {
+ private final ColorPickerViewModel.Factory mColorPickerViewModelFactory;
private final KeyguardQuickAffordancePickerInteractor mKeyguardQuickAffordancePickerInteractor;
private final KeyguardQuickAffordancePickerViewModel.Factory
mKeyguardQuickAffordancePickerViewModelFactory;
+ private final NotificationSectionViewModel.Factory mNotificationSectionViewModelFactory;
+ private final BaseFlags mFlags;
+ private final ClockCarouselViewModel mClockCarouselViewModel;
+ private final ClockViewFactory mClockViewFactory;
+ private final DarkModeSnapshotRestorer mDarkModeSnapshotRestorer;
+ private final ThemedIconSnapshotRestorer mThemedIconSnapshotRestorer;
+ private final ThemedIconInteractor mThemedIconInteractor;
public DefaultCustomizationSections(
+ ColorPickerViewModel.Factory colorPickerViewModelFactory,
KeyguardQuickAffordancePickerInteractor keyguardQuickAffordancePickerInteractor,
KeyguardQuickAffordancePickerViewModel.Factory
- keyguardQuickAffordancePickerViewModelFactory) {
+ keyguardQuickAffordancePickerViewModelFactory,
+ NotificationSectionViewModel.Factory notificationSectionViewModelFactory,
+ BaseFlags flags,
+ ClockCarouselViewModel clockCarouselViewModel,
+ ClockViewFactory clockViewFactory,
+ DarkModeSnapshotRestorer darkModeSnapshotRestorer,
+ ThemedIconSnapshotRestorer themedIconSnapshotRestorer,
+ ThemedIconInteractor themedIconInteractor) {
+ mColorPickerViewModelFactory = colorPickerViewModelFactory;
mKeyguardQuickAffordancePickerInteractor = keyguardQuickAffordancePickerInteractor;
mKeyguardQuickAffordancePickerViewModelFactory =
keyguardQuickAffordancePickerViewModelFactory;
+ mNotificationSectionViewModelFactory = notificationSectionViewModelFactory;
+ mFlags = flags;
+ mClockCarouselViewModel = clockCarouselViewModel;
+ mClockViewFactory = clockViewFactory;
+ mDarkModeSnapshotRestorer = darkModeSnapshotRestorer;
+ mThemedIconSnapshotRestorer = themedIconSnapshotRestorer;
+ mThemedIconInteractor = themedIconInteractor;
}
@Override
- public List<CustomizationSectionController<?>> getSectionControllersForScreen(
+ public List<CustomizationSectionController<?>> getRevampedUISectionControllersForScreen(
Screen screen,
FragmentActivity activity,
LifecycleOwner lifecycleOwner,
WallpaperColorsViewModel wallpaperColorsViewModel,
- WorkspaceViewModel workspaceViewModel,
PermissionRequester permissionRequester,
WallpaperPreviewNavigator wallpaperPreviewNavigator,
CustomizationSectionNavigationController sectionNavigationController,
@Nullable Bundle savedInstanceState,
CurrentWallpaperInfoFactory wallpaperInfoFactory,
- DisplayUtils displayUtils) {
+ DisplayUtils displayUtils,
+ WallpaperQuickSwitchViewModel wallpaperQuickSwitchViewModel,
+ WallpaperInteractor wallpaperInteractor) {
List<CustomizationSectionController<?>> sectionControllers = new ArrayList<>();
// Wallpaper section.
sectionControllers.add(
- new ScreenPreviewSectionController(
+ mFlags.isCustomClocksEnabled(activity)
+ ? new PreviewWithClockCarouselSectionController(
activity,
lifecycleOwner,
screen,
wallpaperInfoFactory,
wallpaperColorsViewModel,
- displayUtils));
+ displayUtils,
+ mClockCarouselViewModel,
+ mClockViewFactory,
+ sectionNavigationController,
+ wallpaperInteractor)
+ : new ScreenPreviewSectionController(
+ activity,
+ lifecycleOwner,
+ screen,
+ wallpaperInfoFactory,
+ wallpaperColorsViewModel,
+ displayUtils,
+ sectionNavigationController,
+ wallpaperInteractor));
- // Theme color section.
- sectionControllers.add(new ColorSectionController(
- activity, wallpaperColorsViewModel, lifecycleOwner, savedInstanceState));
+ sectionControllers.add(
+ new ConnectedSectionController(
+ // Theme color section.
+ new ColorSectionController2(
+ sectionNavigationController,
+ new ViewModelProvider(
+ activity,
+ mColorPickerViewModelFactory)
+ .get(ColorPickerViewModel.class),
+ lifecycleOwner),
+ // Wallpaper quick switch section.
+ new WallpaperQuickSwitchSectionController(
+ screen,
+ wallpaperQuickSwitchViewModel,
+ lifecycleOwner,
+ sectionNavigationController),
+ /* reverseOrderWhenHorizontal= */ true));
switch (screen) {
case LOCK_SCREEN:
@@ -88,21 +156,36 @@ public final class DefaultCustomizationSections implements CustomizationSections
mKeyguardQuickAffordancePickerViewModelFactory)
.get(KeyguardQuickAffordancePickerViewModel.class),
lifecycleOwner));
+
+ // Notifications section.
+ sectionControllers.add(
+ new NotificationSectionController(
+ new ViewModelProvider(
+ activity,
+ mNotificationSectionViewModelFactory)
+ .get(NotificationSectionViewModel.class),
+ lifecycleOwner));
+
+ // More settings section.
+ sectionControllers.add(new MoreSettingsSectionController());
break;
case HOME_SCREEN:
- // Dark/Light theme section.
- sectionControllers.add(new DarkModeSectionController(activity,
- lifecycleOwner.getLifecycle()));
-
// Themed app icon section.
- sectionControllers.add(new ThemedIconSectionController(
- ThemedIconSwitchProvider.getInstance(activity), workspaceViewModel,
- savedInstanceState));
+ sectionControllers.add(
+ new ThemedIconSectionController(
+ ThemedIconSwitchProvider.getInstance(activity),
+ mThemedIconInteractor,
+ savedInstanceState,
+ mThemedIconSnapshotRestorer));
// App grid section.
- sectionControllers.add(new GridSectionController(
- GridOptionsManager.getInstance(activity), sectionNavigationController));
+ sectionControllers.add(
+ new GridSectionController(
+ GridOptionsManager.getInstance(activity),
+ sectionNavigationController,
+ lifecycleOwner,
+ /* isRevampedUiEnabled= */ true));
break;
}
@@ -114,7 +197,6 @@ public final class DefaultCustomizationSections implements CustomizationSections
FragmentActivity activity,
LifecycleOwner lifecycleOwner,
WallpaperColorsViewModel wallpaperColorsViewModel,
- WorkspaceViewModel workspaceViewModel,
PermissionRequester permissionRequester,
WallpaperPreviewNavigator wallpaperPreviewNavigator,
CustomizationSectionNavigationController sectionNavigationController,
@@ -123,27 +205,42 @@ public final class DefaultCustomizationSections implements CustomizationSections
List<CustomizationSectionController<?>> sectionControllers = new ArrayList<>();
// Wallpaper section.
- sectionControllers.add(new WallpaperSectionController(
- activity, lifecycleOwner, permissionRequester, wallpaperColorsViewModel,
- workspaceViewModel, sectionNavigationController, wallpaperPreviewNavigator,
- savedInstanceState, displayUtils));
+ sectionControllers.add(
+ new WallpaperSectionController(
+ activity,
+ lifecycleOwner,
+ permissionRequester,
+ wallpaperColorsViewModel,
+ mThemedIconInteractor.isActivatedAsLiveData(),
+ sectionNavigationController,
+ wallpaperPreviewNavigator,
+ savedInstanceState,
+ displayUtils));
// Theme color section.
sectionControllers.add(new ColorSectionController(
activity, wallpaperColorsViewModel, lifecycleOwner, savedInstanceState));
// Dark/Light theme section.
- sectionControllers.add(new DarkModeSectionController(activity,
- lifecycleOwner.getLifecycle()));
+ sectionControllers.add(new DarkModeSectionController(
+ activity,
+ lifecycleOwner.getLifecycle(),
+ mDarkModeSnapshotRestorer));
// Themed app icon section.
sectionControllers.add(new ThemedIconSectionController(
- ThemedIconSwitchProvider.getInstance(activity), workspaceViewModel,
- savedInstanceState));
+ ThemedIconSwitchProvider.getInstance(activity),
+ mThemedIconInteractor,
+ savedInstanceState,
+ mThemedIconSnapshotRestorer));
// App grid section.
- sectionControllers.add(new GridSectionController(
- GridOptionsManager.getInstance(activity), sectionNavigationController));
+ sectionControllers.add(
+ new GridSectionController(
+ GridOptionsManager.getInstance(activity),
+ sectionNavigationController,
+ lifecycleOwner,
+ /* isRevampedUiEnabled= */ false));
return sectionControllers;
}