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

Commit 0e64487b authored by Lorenzo Lucena Maguire's avatar Lorenzo Lucena Maguire
Browse files

Support Double Tap Power to open camera via config resource

"Quickly open camera" screen was previously replaced by the "Double
Tap Power Button" screen and accessible only if the
feature flag
android.service.quickaccesswallet.launch_wallet_option_on_power_double_tap
was disabled.

This CL introduces the possibility to set, via a config resource, "Quickly open camera" as the double tap power
gesture screen.

Test: atest DoubleTapPowerSettingsTest
Test: atest DoubleTapPowerPreferenceControllerTest
Test: atest DoubleTapPowerSettingsUtilsTest
Test: manually modified config and verified screen and gesture behavior
change
Flag: android.service.quickaccesswallet.launch_wallet_option_on_power_double_tap
Bug: 384794943
Change-Id: I5ab4422da09fa90848c66a41829327494080b5a2

Change-Id: I8e04cac3999a7ed99a611ef084c54bc07a5505dc
parent 5979b88c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -65,7 +65,8 @@ public class DoubleTapPowerForCameraPreferenceController extends BasePreferenceC

    @Override
    public int getAvailabilityStatus() {
        if (!DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureAvailable(mContext)) {
        if (!DoubleTapPowerSettingsUtils
                .isMultiTargetDoubleTapPowerButtonGestureAvailable(mContext)) {
            return UNSUPPORTED_ON_DEVICE;
        }
        return DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureEnabled(mContext)
+2 −1
Original line number Diff line number Diff line
@@ -65,7 +65,8 @@ public class DoubleTapPowerForWalletPreferenceController extends BasePreferenceC

    @Override
    public int getAvailabilityStatus() {
        if (!DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureAvailable(mContext)) {
        if (!DoubleTapPowerSettingsUtils
                .isMultiTargetDoubleTapPowerButtonGestureAvailable(mContext)) {
            return UNSUPPORTED_ON_DEVICE;
        }
        return DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureEnabled(mContext)
+2 −1
Original line number Diff line number Diff line
@@ -57,7 +57,8 @@ public class DoubleTapPowerMainSwitchPreferenceController

    @Override
    public int getAvailabilityStatus() {
        return DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureAvailable(mContext)
        return DoubleTapPowerSettingsUtils
                .isMultiTargetDoubleTapPowerButtonGestureAvailable(mContext)
                ? AVAILABLE
                : UNSUPPORTED_ON_DEVICE;
    }
+18 −8
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.settings.gestures;

import static android.provider.Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED;

import static com.android.settings.gestures.DoubleTapPowerSettingsUtils.DOUBLE_TAP_POWER_DISABLED_MODE;

import android.content.Context;
import android.content.SharedPreferences;
import android.provider.Settings;
@@ -37,7 +39,8 @@ public class DoubleTapPowerPreferenceController extends BasePreferenceController

    public static boolean isSuggestionComplete(Context context, SharedPreferences prefs) {
        return !isGestureAvailable(context)
                || prefs.getBoolean(DoubleTapPowerSettings.PREF_KEY_SUGGESTION_COMPLETE, false);
                || prefs.getBoolean(DoubleTapPowerSettings.PREF_KEY_SUGGESTION_COMPLETE,
                false);
    }

    private static boolean isGestureAvailable(@NonNull Context context) {
@@ -46,7 +49,10 @@ public class DoubleTapPowerPreferenceController extends BasePreferenceController
                    .getBoolean(
                            com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled);
        }
        return DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureAvailable(context);
        return context.getResources()
                .getInteger(
                        com.android.internal.R.integer.config_doubleTapPowerGestureMode)
                != DOUBLE_TAP_POWER_DISABLED_MODE;
    }

    @Override
@@ -56,7 +62,9 @@ public class DoubleTapPowerPreferenceController extends BasePreferenceController

    @Override
    public void displayPreference(@NonNull PreferenceScreen screen) {
        if (!android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap()) {
        if (!android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap()
                || !DoubleTapPowerSettingsUtils
                .isMultiTargetDoubleTapPowerButtonGestureAvailable(mContext)) {
            final Preference preference = screen.findPreference(getPreferenceKey());
            if (preference != null) {
                preference.setTitle(R.string.double_tap_power_for_camera_title);
@@ -68,7 +76,9 @@ public class DoubleTapPowerPreferenceController extends BasePreferenceController
    @Override
    @NonNull
    public CharSequence getSummary() {
        if (!android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap()) {
        if (!android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap()
                || !DoubleTapPowerSettingsUtils
                .isMultiTargetDoubleTapPowerButtonGestureAvailable(mContext)) {
            final boolean isCameraDoubleTapPowerGestureEnabled =
                    Settings.Secure.getInt(
                            mContext.getContentResolver(),
+12 −6
Original line number Diff line number Diff line
@@ -39,9 +39,11 @@ public class DoubleTapPowerSettings extends DashboardFragment {

    public static final String PREF_KEY_SUGGESTION_COMPLETE =
            "pref_double_tap_power_suggestion_complete";
    private Context mContext;

    @Override
    public void onAttach(Context context) {
        mContext = context;
        super.onAttach(context);
        SuggestionFeatureProvider suggestionFeatureProvider =
                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
@@ -61,7 +63,15 @@ public class DoubleTapPowerSettings extends DashboardFragment {

    @Override
    protected int getPreferenceScreenResId() {
        return android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap()
        return getDoubleTapPowerSettingsResId(mContext);
    }

    private static int getDoubleTapPowerSettingsResId(Context context) {
        if (!android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap()) {
            return R.xml.double_tap_power_to_open_camera_settings;
        }
        return DoubleTapPowerSettingsUtils
                .isMultiTargetDoubleTapPowerButtonGestureAvailable(context)
                ? R.xml.double_tap_power_settings
                : R.xml.double_tap_power_to_open_camera_settings;
    }
@@ -73,11 +83,7 @@ public class DoubleTapPowerSettings extends DashboardFragment {
                public List<SearchIndexableResource> getXmlResourcesToIndex(
                        @NonNull Context context, boolean enabled) {
                    final SearchIndexableResource sir = new SearchIndexableResource(context);
                    sir.xmlResId =
                            android.service.quickaccesswallet.Flags
                                            .launchWalletOptionOnPowerDoubleTap()
                                    ? R.xml.double_tap_power_settings
                                    : R.xml.double_tap_power_to_open_camera_settings;
                    sir.xmlResId = getDoubleTapPowerSettingsResId(context);
                    return List.of(sir);
                }
            };
Loading