Merge "Add target for ThemePicker instrumented tests" into tm-qpr-dev
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index 7eb8865..1540a09 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -5,6 +5,7 @@
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.LifecycleOwner;
+import androidx.lifecycle.ViewModelProvider;
import com.android.customization.model.color.ColorSectionController;
import com.android.customization.model.grid.GridOptionsManager;
@@ -12,6 +13,9 @@
import com.android.customization.model.mode.DarkModeSectionController;
import com.android.customization.model.themedicon.ThemedIconSectionController;
import com.android.customization.model.themedicon.ThemedIconSwitchProvider;
+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.wallpaper.model.CustomizationSectionController;
import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController;
import com.android.wallpaper.model.PermissionRequester;
@@ -27,6 +31,75 @@
/** {@link CustomizationSections} for the customization picker. */
public final class DefaultCustomizationSections implements CustomizationSections {
+ private final KeyguardQuickAffordancePickerInteractor mKeyguardQuickAffordancePickerInteractor;
+ private final KeyguardQuickAffordancePickerViewModel.Factory
+ mKeyguardQuickAffordancePickerViewModelFactory;
+
+ public DefaultCustomizationSections(
+ KeyguardQuickAffordancePickerInteractor keyguardQuickAffordancePickerInteractor,
+ KeyguardQuickAffordancePickerViewModel.Factory
+ keyguardQuickAffordancePickerViewModelFactory) {
+ mKeyguardQuickAffordancePickerInteractor = keyguardQuickAffordancePickerInteractor;
+ mKeyguardQuickAffordancePickerViewModelFactory =
+ keyguardQuickAffordancePickerViewModelFactory;
+ }
+
+ @Override
+ public List<CustomizationSectionController<?>> getSectionControllersForScreen(
+ Screen screen,
+ FragmentActivity activity,
+ LifecycleOwner lifecycleOwner,
+ WallpaperColorsViewModel wallpaperColorsViewModel,
+ WorkspaceViewModel workspaceViewModel,
+ PermissionRequester permissionRequester,
+ WallpaperPreviewNavigator wallpaperPreviewNavigator,
+ CustomizationSectionNavigationController sectionNavigationController,
+ @Nullable Bundle savedInstanceState) {
+ List<CustomizationSectionController<?>> sectionControllers = new ArrayList<>();
+
+ // Wallpaper section.
+ sectionControllers.add(new WallpaperSectionController(
+ activity, lifecycleOwner, permissionRequester, wallpaperColorsViewModel,
+ workspaceViewModel, sectionNavigationController, wallpaperPreviewNavigator,
+ savedInstanceState));
+
+ // Theme color section.
+ sectionControllers.add(new ColorSectionController(
+ activity, wallpaperColorsViewModel, lifecycleOwner, savedInstanceState));
+
+ switch (screen) {
+ case LOCK_SCREEN:
+ // Lock screen quick affordances section.
+ sectionControllers.add(
+ new KeyguardQuickAffordanceSectionController(
+ sectionNavigationController,
+ mKeyguardQuickAffordancePickerInteractor,
+ new ViewModelProvider(
+ activity,
+ mKeyguardQuickAffordancePickerViewModelFactory)
+ .get(KeyguardQuickAffordancePickerViewModel.class),
+ lifecycleOwner));
+ 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));
+
+ // App grid section.
+ sectionControllers.add(new GridSectionController(
+ GridOptionsManager.getInstance(activity), sectionNavigationController));
+ break;
+ }
+
+ return sectionControllers;
+ }
+
@Override
public List<CustomizationSectionController<?>> getAllSectionControllers(
FragmentActivity activity,
diff --git a/src/com/android/customization/module/ThemePickerInjector.java b/src/com/android/customization/module/ThemePickerInjector.java
index 7342d38..263b44e 100644
--- a/src/com/android/customization/module/ThemePickerInjector.java
+++ b/src/com/android/customization/module/ThemePickerInjector.java
@@ -70,7 +70,9 @@
@Override
public CustomizationSections getCustomizationSections(Activity activity) {
if (mCustomizationSections == null) {
- mCustomizationSections = new DefaultCustomizationSections();
+ mCustomizationSections = new DefaultCustomizationSections(
+ mKeyguardQuickAffordancePickerInteractor,
+ mKeyguardQuickAffordancePickerViewModelFactory);
}
return mCustomizationSections;
}