1 package com.android.customization.module;
2 
3 import android.app.Activity;
4 import android.os.Bundle;
5 
6 import androidx.annotation.Nullable;
7 import androidx.lifecycle.LifecycleOwner;
8 
9 import com.android.customization.model.grid.GridOptionsManager;
10 import com.android.customization.model.grid.GridSectionController;
11 import com.android.customization.model.mode.DarkModeSectionController;
12 import com.android.customization.model.themedicon.ThemedIconSectionController;
13 import com.android.customization.model.themedicon.ThemedIconSwitchProvider;
14 import com.android.wallpaper.model.CustomizationSectionController;
15 import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController;
16 import com.android.wallpaper.model.PermissionRequester;
17 import com.android.wallpaper.model.WallpaperColorsViewModel;
18 import com.android.wallpaper.model.WallpaperPreviewNavigator;
19 import com.android.wallpaper.model.WallpaperSectionController;
20 import com.android.wallpaper.model.WorkspaceViewModel;
21 import com.android.wallpaper.module.CustomizationSections;
22 
23 import java.util.ArrayList;
24 import java.util.List;
25 
26 /** {@link CustomizationSections} for the customization picker. */
27 public final class DefaultCustomizationSections implements CustomizationSections {
28 
29     @Override
getAllSectionControllers(Activity activity, LifecycleOwner lifecycleOwner, WallpaperColorsViewModel wallpaperColorsViewModel, WorkspaceViewModel workspaceViewModel, PermissionRequester permissionRequester, WallpaperPreviewNavigator wallpaperPreviewNavigator, CustomizationSectionNavigationController sectionNavigationController, @Nullable Bundle savedInstanceState)30     public List<CustomizationSectionController<?>> getAllSectionControllers(Activity activity,
31             LifecycleOwner lifecycleOwner, WallpaperColorsViewModel wallpaperColorsViewModel,
32             WorkspaceViewModel workspaceViewModel, PermissionRequester permissionRequester,
33             WallpaperPreviewNavigator wallpaperPreviewNavigator,
34             CustomizationSectionNavigationController sectionNavigationController,
35             @Nullable Bundle savedInstanceState) {
36         List<CustomizationSectionController<?>> sectionControllers = new ArrayList<>();
37 
38         // Wallpaper section.
39         sectionControllers.add(new WallpaperSectionController(
40                 activity, lifecycleOwner, permissionRequester, wallpaperColorsViewModel,
41                 workspaceViewModel, sectionNavigationController, wallpaperPreviewNavigator,
42                 savedInstanceState));
43 
44         // Dark/Light theme section.
45         sectionControllers.add(new DarkModeSectionController(activity,
46                 lifecycleOwner.getLifecycle()));
47 
48         // Themed app icon section.
49         sectionControllers.add(new ThemedIconSectionController(
50                 ThemedIconSwitchProvider.getInstance(activity), workspaceViewModel,
51                 savedInstanceState));
52 
53         // App grid section.
54         sectionControllers.add(new GridSectionController(
55                 GridOptionsManager.getInstance(activity), sectionNavigationController));
56 
57         return sectionControllers;
58     }
59 }
60