summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-06-12 12:06:18 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-06-12 12:06:18 +0000
commitc44abebfe45d55d7c2635aa7bd469d8bc3e42f07 (patch)
tree5f3f7a6211ed3ed024995617d6b003610cc781d8 /src
parentd9ee34df78673c879a7f7c2724ea9180738afc01 (diff)
parent1473ab0f3b736daa492427452ec1cab98f59933d (diff)
downloadThemePicker-c44abebfe45d55d7c2635aa7bd469d8bc3e42f07.tar.gz
Merge "[3/n] Move new picker logic to AOSP" into sc-dev
Diffstat (limited to 'src')
-rw-r--r--src/com/android/customization/module/DefaultCustomizationInjector.java9
-rw-r--r--src/com/android/customization/module/DefaultCustomizationSections.java60
2 files changed, 69 insertions, 0 deletions
diff --git a/src/com/android/customization/module/DefaultCustomizationInjector.java b/src/com/android/customization/module/DefaultCustomizationInjector.java
index 3b23617b..969f22fb 100644
--- a/src/com/android/customization/module/DefaultCustomizationInjector.java
+++ b/src/com/android/customization/module/DefaultCustomizationInjector.java
@@ -33,6 +33,7 @@ import com.android.wallpaper.model.CategoryProvider;
import com.android.wallpaper.model.WallpaperInfo;
import com.android.wallpaper.module.BaseWallpaperInjector;
import com.android.wallpaper.module.DefaultCategoryProvider;
+import com.android.wallpaper.module.HubSections;
import com.android.wallpaper.module.LoggingOptInStatusProvider;
import com.android.wallpaper.module.WallpaperPreferences;
import com.android.wallpaper.module.WallpaperRotationRefresher;
@@ -46,6 +47,7 @@ public class DefaultCustomizationInjector extends BaseWallpaperInjector
private WallpaperRotationRefresher mWallpaperRotationRefresher;
private PerformanceMonitor mPerformanceMonitor;
private WallpaperPreferences mPrefs;
+ private HubSections mHubSections;
@Override
public synchronized WallpaperPreferences getPreferences(Context context) {
@@ -139,4 +141,11 @@ public class DefaultCustomizationInjector extends BaseWallpaperInjector
return new ThemeManager(provider, activity, overlayManagerCompat, logger);
}
+ @Override
+ public HubSections getHubSections() {
+ if (mHubSections == null) {
+ mHubSections = new DefaultCustomizationSections();
+ }
+ return mHubSections;
+ }
}
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
new file mode 100644
index 00000000..d35d1982
--- /dev/null
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -0,0 +1,60 @@
+package com.android.customization.module;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.lifecycle.LifecycleOwner;
+
+import com.android.customization.model.grid.GridOptionsManager;
+import com.android.customization.model.grid.GridSectionController;
+import com.android.customization.model.mode.ModeSection;
+import com.android.customization.model.themedicon.ThemedIconSectionController;
+import com.android.customization.model.themedicon.ThemedIconSwitchProvider;
+import com.android.customization.model.themedicon.ThemedIconUtils;
+import com.android.wallpaper.R;
+import com.android.wallpaper.model.HubSectionController;
+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.HubSections;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/** {@link HubSections} for the customization picker. */
+public final class DefaultCustomizationSections implements HubSections {
+
+ @Override
+ public List<HubSectionController<?>> getAllSectionControllers(Activity activity,
+ LifecycleOwner lifecycleOwner, WallpaperColorsViewModel wallpaperColorsViewModel,
+ WorkspaceViewModel workspaceViewModel, PermissionRequester permissionRequester,
+ WallpaperPreviewNavigator wallpaperPreviewNavigator,
+ HubSectionController.HubSectionNavigationController hubSectionNavigationController,
+ @Nullable Bundle savedInstanceState) {
+ List<HubSectionController<?>> sectionControllers = new ArrayList<>();
+
+ // Wallpaper section.
+ sectionControllers.add(new WallpaperSectionController(
+ activity, lifecycleOwner, permissionRequester, wallpaperColorsViewModel,
+ workspaceViewModel, hubSectionNavigationController, wallpaperPreviewNavigator,
+ savedInstanceState));
+
+ // Dark/Light theme section.
+ sectionControllers.add(new ModeSection(activity, lifecycleOwner.getLifecycle()));
+
+ // Themed app icon section.
+ sectionControllers.add(new ThemedIconSectionController(
+ new ThemedIconSwitchProvider(activity, new ThemedIconUtils(activity,
+ activity.getString(R.string.themed_icon_metadata_key))),
+ workspaceViewModel));
+
+ // App grid section.
+ sectionControllers.add(new GridSectionController(
+ GridOptionsManager.get(activity), hubSectionNavigationController));
+
+ return sectionControllers;
+ }
+}