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

Commit 715c42cb authored by Ale Nijamkin's avatar Ale Nijamkin Committed by Android (Google) Code Review
Browse files

Merge "Links WPP clocks flag to SysUI's flag (1/3)." into tm-qpr-dev

parents 93ea52fe 8c86a4bd
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
@@ -13,40 +13,38 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.customization.model.clock;

import android.content.Context;
import android.view.LayoutInflater;

import androidx.annotation.Nullable;

import com.android.customization.picker.clock.ClockCustomDemoFragment;
import com.android.customization.picker.clock.ClockSectionView;
import com.android.wallpaper.R;
import com.android.wallpaper.config.Flags;
import com.android.wallpaper.model.CustomizationSectionController;

/** A {@link CustomizationSectionController} for clock customization. */
public class ClockSectionController implements CustomizationSectionController<ClockSectionView> {

    private final CustomizationSectionNavigationController mNavigationController;

    public ClockSectionController(CustomizationSectionNavigationController navigationController) {
        mNavigationController = navigationController;
    }

    @Override
    public boolean isAvailable(@Nullable Context context) {
        return Flags.enableCustomClocks;
package com.android.customization.model.clock

import android.content.Context
import android.view.LayoutInflater
import com.android.customization.picker.clock.ClockCustomDemoFragment
import com.android.customization.picker.clock.ClockSectionView
import com.android.systemui.shared.quickaffordance.data.content.KeyguardQuickAffordanceProviderClient
import com.android.systemui.shared.quickaffordance.data.content.KeyguardQuickAffordanceProviderContract as Contract
import com.android.wallpaper.R
import com.android.wallpaper.model.CustomizationSectionController
import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController
import kotlinx.coroutines.runBlocking

/** A [CustomizationSectionController] for clock customization. */
class ClockSectionController(
    private val navigationController: CustomizationSectionNavigationController,
    private val keyguardQuickAffordanceProviderClient: KeyguardQuickAffordanceProviderClient,
) : CustomizationSectionController<ClockSectionView?> {
    override fun isAvailable(context: Context?): Boolean {
        return runBlocking { keyguardQuickAffordanceProviderClient.queryFlags() }
            .firstOrNull { it.name == Contract.FlagsTable.FLAG_NAME_CUSTOM_CLOCKS_ENABLED }
            ?.value == true
    }

    @Override
    public ClockSectionView createView(Context context) {
        ClockSectionView view = (ClockSectionView) LayoutInflater.from(context).inflate(
    override fun createView(context: Context): ClockSectionView {
        val view =
            LayoutInflater.from(context)
                .inflate(
                    R.layout.clock_section_view,
                null);
        view.setOnClickListener(v ->
                mNavigationController.navigateTo(new ClockCustomDemoFragment()));
        return view;
                    null,
                ) as ClockSectionView
        view.setOnClickListener { navigationController.navigateTo(ClockCustomDemoFragment()) }
        return view
    }
}
+13 −1
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ public class ThemePickerInjector extends WallpaperPicker2Injector
    private KeyguardQuickAffordancePickerInteractor mKeyguardQuickAffordancePickerInteractor;
    private KeyguardQuickAffordancePickerViewModel.Factory
            mKeyguardQuickAffordancePickerViewModelFactory;
    private KeyguardQuickAffordanceProviderClient mKeyguardQuickAffordanceProviderClient;
    private FragmentFactory mFragmentFactory;

    @Override
@@ -141,7 +142,7 @@ public class ThemePickerInjector extends WallpaperPicker2Injector
            Context context) {
        if (mKeyguardQuickAffordancePickerInteractor == null) {
            final KeyguardQuickAffordanceProviderClient client =
                    new KeyguardQuickAffordanceProviderClientImpl(context, Dispatchers.getIO());
                    getKeyguardQuickAffordancePickerProviderClient(context);
            mKeyguardQuickAffordancePickerInteractor = new KeyguardQuickAffordancePickerInteractor(
                    new KeyguardQuickAffordancePickerRepository(client, Dispatchers.getIO()),
                    client);
@@ -170,4 +171,15 @@ public class ThemePickerInjector extends WallpaperPicker2Injector
        }
        return mFragmentFactory;
    }

    /** Returns the {@link KeyguardQuickAffordanceProviderClient}. */
    public KeyguardQuickAffordanceProviderClient getKeyguardQuickAffordancePickerProviderClient(
            Context context) {
        if (mKeyguardQuickAffordanceProviderClient == null) {
            mKeyguardQuickAffordanceProviderClient =
                    new KeyguardQuickAffordanceProviderClientImpl(context, Dispatchers.getIO());
        }

        return mKeyguardQuickAffordanceProviderClient;
    }
}
+5 −2
Original line number Diff line number Diff line
@@ -60,8 +60,11 @@ class KeyguardQuickAffordancePickerRepository(
    }

    private fun List<Client.Flag>.isFeatureEnabled(): Boolean {
        return find { flag -> flag.name == Contract.FlagsTable.FLAG_NAME_FEATURE_ENABLED }?.value ==
            true
        return find { flag ->
                flag.name ==
                    Contract.FlagsTable.FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED
            }
            ?.value == true
    }

    private fun Client.Slot.toModel(): SlotModel {
+0 −1
Original line number Diff line number Diff line
@@ -16,5 +16,4 @@
package com.android.wallpaper.config;

public class Flags extends BaseFlags {
    public static boolean enableCustomClocks = false;
}