diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-06-12 12:06:18 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-06-12 12:06:18 +0000 |
commit | c44abebfe45d55d7c2635aa7bd469d8bc3e42f07 (patch) | |
tree | 5f3f7a6211ed3ed024995617d6b003610cc781d8 /src | |
parent | d9ee34df78673c879a7f7c2724ea9180738afc01 (diff) | |
parent | 1473ab0f3b736daa492427452ec1cab98f59933d (diff) | |
download | ThemePicker-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.java | 9 | ||||
-rw-r--r-- | src/com/android/customization/module/DefaultCustomizationSections.java | 60 |
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; + } +} |