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