Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c332f87 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Tabbed navigation in Wallpaper Picker (2/3)." into tm-qpr-dev

parents db18b423 0eb2cc29
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import android.os.Bundle;
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.grid.GridSectionController;
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 @@ import java.util.List;
/** {@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,
+3 −1
Original line number Diff line number Diff line
@@ -70,7 +70,9 @@ public class ThemePickerInjector extends WallpaperPicker2Injector
    @Override
    public CustomizationSections getCustomizationSections(Activity activity) {
        if (mCustomizationSections == null) {
            mCustomizationSections = new DefaultCustomizationSections();
            mCustomizationSections = new DefaultCustomizationSections(
                    mKeyguardQuickAffordancePickerInteractor,
                    mKeyguardQuickAffordancePickerViewModelFactory);
        }
        return mCustomizationSections;
    }
+2 −2
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ class KeyguardQuickAffordancePickerRepositoryTest {
                com.android.systemui.shared.quickaffordance.data.content
                    .KeyguardQuickAffordanceProviderContract
                    .FlagsTable
                    .FLAG_NAME_FEATURE_ENABLED,
                    .FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED,
                true,
            )
            val values = mutableListOf<Boolean>()
@@ -90,7 +90,7 @@ class KeyguardQuickAffordancePickerRepositoryTest {
                com.android.systemui.shared.quickaffordance.data.content
                    .KeyguardQuickAffordanceProviderContract
                    .FlagsTable
                    .FLAG_NAME_FEATURE_ENABLED,
                    .FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED,
                false,
            )
            val values = mutableListOf<Boolean>()