Loading src/com/android/settings/gestures/DoubleTapPowerLockscreenTipPreferenceController.java +28 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading @@ -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 = Loading Loading @@ -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"); Loading @@ -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; } Loading @@ -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 = Loading tests/robotests/src/com/android/settings/gestures/DoubleTapPowerLockscreenTipPreferenceControllerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
src/com/android/settings/gestures/DoubleTapPowerLockscreenTipPreferenceController.java +28 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading @@ -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 = Loading Loading @@ -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"); Loading @@ -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; } Loading @@ -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 = Loading
tests/robotests/src/com/android/settings/gestures/DoubleTapPowerLockscreenTipPreferenceControllerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -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); Loading