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

Commit 5e827ee8 authored by Lorenzo Lucena Maguire's avatar Lorenzo Lucena Maguire Committed by Android (Google) Code Review
Browse files

Merge "Avoid Resurfacing double tap power lockscreen shortcut tip if dismissed" into main

parents df06b6e5 54c6851a
Loading
Loading
Loading
Loading
+28 −2
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.util.Log;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

@@ -39,6 +40,8 @@ import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.widget.CardPreference;

import kotlin.Unit;

public class DoubleTapPowerLockscreenTipPreferenceController extends BasePreferenceController
        implements LifecycleObserver, OnStart, OnStop {

@@ -58,6 +61,7 @@ public class DoubleTapPowerLockscreenTipPreferenceController extends BasePrefere
    static final String WALLET_KEYGUARD_QUICK_AFFORDANCE_NAME = "Wallet";

    @Nullable private CardPreference mPreference;
    private boolean mHasBeenDismissed = false;

    private final Handler mHandler = new Handler(Looper.getMainLooper());
    private final ContentObserver mSettingsObserver =
@@ -116,7 +120,17 @@ public class DoubleTapPowerLockscreenTipPreferenceController extends BasePrefere
        super.displayPreference(screen);
        mPreference = screen.findPreference(getPreferenceKey());
        if (mPreference != null) {
            mPreference.useDismissAction();
            mPreference.setAdditionalAction(
                    com.android.settingslib.widget
                            .theme.R.drawable.settingslib_expressive_icon_close,
                    mContext.getString(
                            com.android.settingslib.widget
                                    .theme.R.string.settingslib_dismiss_button_content_description),
                    preference -> {
                        onDismiss(preference);
                        return Unit.INSTANCE;
                    }
            );
            mPreference.setOnPreferenceClickListener(preference -> {
                final Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
                intent.putExtra("destination", "quick_affordances");
@@ -140,7 +154,8 @@ public class DoubleTapPowerLockscreenTipPreferenceController extends BasePrefere
    public void updateState(@NonNull Preference preference) {
        super.updateState(preference);

        if (!DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureEnabled(mContext)) {
        if (!DoubleTapPowerSettingsUtils.isDoubleTapPowerButtonGestureEnabled(mContext)
                || mHasBeenDismissed) {
            preference.setVisible(false);
            return;
        }
@@ -160,6 +175,17 @@ public class DoubleTapPowerLockscreenTipPreferenceController extends BasePrefere
        }
    }

    /**
     * Dismisses the Preference
     *
     * @param preference Preference
     */
    @VisibleForTesting
    public void onDismiss(@NonNull Preference preference) {
        preference.setVisible(false);
        mHasBeenDismissed = true;
    }

    @Nullable
    private static String getTargetActionIfLockScreenShortcut(@NonNull Context context) {
        String currentTargetActionName =
+11 −0
Original line number Diff line number Diff line
@@ -112,6 +112,17 @@ public class DoubleTapPowerLockscreenTipPreferenceControllerTest {
        assertThat(mPreference.isVisible()).isFalse();
    }

    @Test
    public void updateState_onDismissed_preferenceNotVisible() {
        DoubleTapPowerSettingsUtils.setDoubleTapPowerButtonGestureEnabled(mContext, true);
        setSelectedLockScreenShortcuts(CAMERA_KEYGUARD_QUICK_AFFORDANCE_NAME);
        mController.onDismiss(mPreference);

        mController.updateState(mPreference);

        assertThat(mPreference.isVisible()).isFalse();
    }

    @Test
    public void updateState_targetActionInLockscreenShortcut_preferenceVisible() {
        DoubleTapPowerSettingsUtils.setDoubleTapPowerButtonGestureEnabled(mContext, true);