From 38537f81294a47b47b5cfb9655b78762a14a65c7 Mon Sep 17 00:00:00 2001 From: Yining Liu Date: Tue, 24 Dec 2024 00:52:07 +0000 Subject: [PATCH] Inverse toggles on the notifications on locks screen settings page Inverse the toggles on the notifications on locks screen settings page to consistently make ON = SHOW. Bug: 367455695 Flag: com.android.server.notification.notification_lock_screen_settings Test: manual, atest LockScreenNotificationShowSensitiveControllerTest Change-Id: I6e34ef9b89f4c0ad058bf740bafb3c83790201c0 --- res/values/strings.xml | 10 ++--- .../lock_screen_notifications_settings.xml | 20 +++++----- ...ScreenNotificationShowSeenController.java} | 14 +++---- ...nNotificationShowSensitiveController.java} | 18 ++++----- ...reenNotificationShowSilentController.java} | 14 +++---- ...ificationShowSensitiveControllerTest.java} | 40 +++++++++---------- 6 files changed, 58 insertions(+), 58 deletions(-) rename src/com/android/settings/notification/{LockScreenNotificationHideSeenToggleController.java => LockScreenNotificationShowSeenController.java} (91%) rename src/com/android/settings/notification/{LockScreenNotificationShowSensitiveToggleController.java => LockScreenNotificationShowSensitiveController.java} (93%) rename src/com/android/settings/notification/{LockScreenNotificationHideSilentToggleController.java => LockScreenNotificationShowSilentController.java} (91%) rename tests/robotests/src/com/android/settings/notification/{LockScreenNotificationShowSensitiveToggleControllerTest.java => LockScreenNotificationShowSensitiveControllerTest.java} (93%) diff --git a/res/values/strings.xml b/res/values/strings.xml index 25286ab2148..77874564baf 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8931,17 +8931,17 @@ What to show on lock screen - - Seen notifications are removed from the lock screen. + + Show seen notifications - Hide silent notifications + Show silent notifications - Hide sensitive content + Show sensitive content - Hide sensitive work profile content + Show sensitive work profile content Profile notifications diff --git a/res/xml/lock_screen_notifications_settings.xml b/res/xml/lock_screen_notifications_settings.xml index d7bfa064a3e..e870143823d 100644 --- a/res/xml/lock_screen_notifications_settings.xml +++ b/res/xml/lock_screen_notifications_settings.xml @@ -49,24 +49,24 @@ android:title="@string/lockscreen_notification_what_to_show_title"> + android:key="lock_screen_notification_show_seen_toggle" + android:title="@string/lock_screen_notification_show_seen_title" + settings:controller="com.android.settings.notification.LockScreenNotificationShowSeenController" /> + android:key="lock_screen_notification_show_silent_toggle" + android:title="@string/lock_screen_notification_show_silent_title" + settings:controller="com.android.settings.notification.LockScreenNotificationShowSilentController" /> + android:title="@string/lock_screen_notification_show_sensitive_content_title" + settings:controller="com.android.settings.notification.LockScreenNotificationShowSensitiveController" /> + android:title="@string/lock_screen_notification_show_sensitive_work_content_title" + settings:controller="com.android.settings.notification.LockScreenNotificationShowSensitiveController" /> diff --git a/src/com/android/settings/notification/LockScreenNotificationHideSeenToggleController.java b/src/com/android/settings/notification/LockScreenNotificationShowSeenController.java similarity index 91% rename from src/com/android/settings/notification/LockScreenNotificationHideSeenToggleController.java rename to src/com/android/settings/notification/LockScreenNotificationShowSeenController.java index 3253937de8c..2c5a71ef84a 100644 --- a/src/com/android/settings/notification/LockScreenNotificationHideSeenToggleController.java +++ b/src/com/android/settings/notification/LockScreenNotificationShowSeenController.java @@ -39,7 +39,7 @@ import com.android.settings.core.TogglePreferenceController; * Controls the toggle that determines whether to hide seen notifications from the lock screen. * Toggle for setting: Settings.Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS */ -public class LockScreenNotificationHideSeenToggleController extends TogglePreferenceController +public class LockScreenNotificationShowSeenController extends TogglePreferenceController implements LifecycleEventObserver { private static final int UNSET = 0; @@ -57,7 +57,7 @@ public class LockScreenNotificationHideSeenToggleController extends TogglePrefer } }; - public LockScreenNotificationHideSeenToggleController(@NonNull Context context, + public LockScreenNotificationShowSeenController(@NonNull Context context, @NonNull String preferenceKey) { super(context, preferenceKey); mContentResolver = context.getContentResolver(); @@ -90,7 +90,7 @@ public class LockScreenNotificationHideSeenToggleController extends TogglePrefer @Override public void updateState(@NonNull Preference preference) { super.updateState(preference); - setChecked(lockScreenShowOnlyUnseenNotifications()); + setChecked(lockScreenShowSeenNotifications()); preference.setVisible(isAvailable()); } @@ -115,18 +115,18 @@ public class LockScreenNotificationHideSeenToggleController extends TogglePrefer @Override public boolean isChecked() { - return lockScreenShowOnlyUnseenNotifications(); + return lockScreenShowSeenNotifications(); } - private boolean lockScreenShowOnlyUnseenNotifications() { + private boolean lockScreenShowSeenNotifications() { return Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS, UNSET) == ON; + Settings.Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS, UNSET) == OFF; } @Override public boolean setChecked(boolean isChecked) { return Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS, (isChecked ? ON : OFF)); + Settings.Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS, (isChecked ? OFF : ON)); } @Override diff --git a/src/com/android/settings/notification/LockScreenNotificationShowSensitiveToggleController.java b/src/com/android/settings/notification/LockScreenNotificationShowSensitiveController.java similarity index 93% rename from src/com/android/settings/notification/LockScreenNotificationShowSensitiveToggleController.java rename to src/com/android/settings/notification/LockScreenNotificationShowSensitiveController.java index 738714dc162..038ceddd4b5 100644 --- a/src/com/android/settings/notification/LockScreenNotificationShowSensitiveToggleController.java +++ b/src/com/android/settings/notification/LockScreenNotificationShowSensitiveController.java @@ -53,7 +53,7 @@ import java.util.List; * when locked. * Toggle for: Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS */ -public class LockScreenNotificationShowSensitiveToggleController +public class LockScreenNotificationShowSensitiveController extends TogglePreferenceController implements LifecycleEventObserver { private static final int ON = 1; @@ -78,7 +78,7 @@ public class LockScreenNotificationShowSensitiveToggleController } }; - public LockScreenNotificationShowSensitiveToggleController(@NonNull Context context, + public LockScreenNotificationShowSensitiveController(@NonNull Context context, @NonNull String preferenceKey) { super(context, preferenceKey); mContentResolver = context.getContentResolver(); @@ -145,7 +145,7 @@ public class LockScreenNotificationShowSensitiveToggleController @Override public void updateState(@Nullable Preference preference) { if (preference == null) return; - setChecked(showSensitiveContentOnlyWhenUnlocked()); + setChecked(showSensitiveContentWhenLocked()); preference.setVisible(isAvailable()); } @@ -187,15 +187,15 @@ public class LockScreenNotificationShowSensitiveToggleController @Override public boolean isChecked() { - return showSensitiveContentOnlyWhenUnlocked(); + return showSensitiveContentWhenLocked(); } - private boolean showSensitiveContentOnlyWhenUnlocked() { + private boolean showSensitiveContentWhenLocked() { int userId = getUserId(); - if (!isLockScreenSecure()) return false; - if (getEnforcedAdmin(userId) != null) return true; + if (!isLockScreenSecure()) return true; + if (getEnforcedAdmin(userId) != null) return false; return Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, ON, userId) == OFF; + Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, ON, userId) == ON; } @Override @@ -203,7 +203,7 @@ public class LockScreenNotificationShowSensitiveToggleController return Settings.Secure.putIntForUser( mContext.getContentResolver(), Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, - (isChecked ? OFF : ON), getUserId() + (isChecked ? ON : OFF), getUserId() ); } diff --git a/src/com/android/settings/notification/LockScreenNotificationHideSilentToggleController.java b/src/com/android/settings/notification/LockScreenNotificationShowSilentController.java similarity index 91% rename from src/com/android/settings/notification/LockScreenNotificationHideSilentToggleController.java rename to src/com/android/settings/notification/LockScreenNotificationShowSilentController.java index ad33ec35414..2d2bbb765b9 100644 --- a/src/com/android/settings/notification/LockScreenNotificationHideSilentToggleController.java +++ b/src/com/android/settings/notification/LockScreenNotificationShowSilentController.java @@ -38,7 +38,7 @@ import com.android.settings.core.TogglePreferenceController; * Controls the toggle that determines whether to show silent notifications when screen locked. * Toggle for: Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS */ -public class LockScreenNotificationHideSilentToggleController extends TogglePreferenceController +public class LockScreenNotificationShowSilentController extends TogglePreferenceController implements LifecycleEventObserver { private static final int ON = 1; @@ -56,7 +56,7 @@ public class LockScreenNotificationHideSilentToggleController extends TogglePref } }; - public LockScreenNotificationHideSilentToggleController(@NonNull Context context, + public LockScreenNotificationShowSilentController(@NonNull Context context, @NonNull String preferenceKey) { super(context, preferenceKey); mContentResolver = context.getContentResolver(); @@ -89,13 +89,13 @@ public class LockScreenNotificationHideSilentToggleController extends TogglePref @Override public void updateState(@NonNull Preference preference) { super.updateState(preference); - setChecked(hideSilentNotificationsWhenLocked()); + setChecked(showSilentNotificationsWhenLocked()); preference.setVisible(isAvailable()); } - private boolean hideSilentNotificationsWhenLocked() { + private boolean showSilentNotificationsWhenLocked() { return Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, OFF) == OFF; + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, OFF) == ON; } @Override @@ -116,13 +116,13 @@ public class LockScreenNotificationHideSilentToggleController extends TogglePref @Override public boolean isChecked() { - return hideSilentNotificationsWhenLocked(); + return showSilentNotificationsWhenLocked(); } @Override public boolean setChecked(boolean isChecked) { return Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, (isChecked ? OFF : ON)); + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, (isChecked ? ON : OFF)); } @Override diff --git a/tests/robotests/src/com/android/settings/notification/LockScreenNotificationShowSensitiveToggleControllerTest.java b/tests/robotests/src/com/android/settings/notification/LockScreenNotificationShowSensitiveControllerTest.java similarity index 93% rename from tests/robotests/src/com/android/settings/notification/LockScreenNotificationShowSensitiveToggleControllerTest.java rename to tests/robotests/src/com/android/settings/notification/LockScreenNotificationShowSensitiveControllerTest.java index ea556a592d8..9a29de2c926 100644 --- a/tests/robotests/src/com/android/settings/notification/LockScreenNotificationShowSensitiveToggleControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/LockScreenNotificationShowSensitiveControllerTest.java @@ -63,7 +63,7 @@ import java.util.Arrays; ShadowUtils.class, ShadowRestrictedLockUtilsInternal.class, }) -public class LockScreenNotificationShowSensitiveToggleControllerTest { +public class LockScreenNotificationShowSensitiveControllerTest { @Mock private DevicePolicyManager mDpm; @@ -79,8 +79,8 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { private Context mMockContext; private Context mContext; - private LockScreenNotificationShowSensitiveToggleController mController; - private LockScreenNotificationShowSensitiveToggleController mWorkController; + private LockScreenNotificationShowSensitiveController mController; + private LockScreenNotificationShowSensitiveController mWorkController; private RestrictedSwitchPreference mPreference; private RestrictedSwitchPreference mWorkPreference; @@ -98,9 +98,9 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { when(mMockContext.getSystemService(KeyguardManager.class)).thenReturn(mKm); when(mUm.getProfiles(anyInt())).thenReturn(Arrays.asList(new UserInfo(0, "", 0))); - mController = new LockScreenNotificationShowSensitiveToggleController( + mController = new LockScreenNotificationShowSensitiveController( mMockContext, - LockScreenNotificationShowSensitiveToggleController.KEY_SHOW_SENSITIVE + LockScreenNotificationShowSensitiveController.KEY_SHOW_SENSITIVE ); mPreference = new RestrictedSwitchPreference(mContext); mPreference.setKey(mController.getPreferenceKey()); @@ -110,9 +110,9 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { when(mUm.getProfiles(anyInt())).thenReturn(Arrays.asList( new UserInfo(5, "", 0), new UserInfo(10, "", UserInfo.FLAG_MANAGED_PROFILE | UserInfo.FLAG_PROFILE))); - mWorkController = new LockScreenNotificationShowSensitiveToggleController( + mWorkController = new LockScreenNotificationShowSensitiveController( mMockContext, - LockScreenNotificationShowSensitiveToggleController.KEY_SHOW_SENSITIVE_WORK_PROFILE + LockScreenNotificationShowSensitiveController.KEY_SHOW_SENSITIVE_WORK_PROFILE ); mWorkPreference = new RestrictedSwitchPreference(mContext); mWorkPreference.setKey(mWorkController.getPreferenceKey()); @@ -150,12 +150,12 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { // reset controllers with no work profile when(mUm.getProfiles(anyInt())).thenReturn(Arrays.asList( new UserInfo(UserHandle.myUserId(), "", 0))); - mWorkController = new LockScreenNotificationShowSensitiveToggleController( + mWorkController = new LockScreenNotificationShowSensitiveController( mMockContext, - LockScreenNotificationShowSensitiveToggleController.KEY_SHOW_SENSITIVE_WORK_PROFILE + LockScreenNotificationShowSensitiveController.KEY_SHOW_SENSITIVE_WORK_PROFILE ); - mController = new LockScreenNotificationShowSensitiveToggleController(mMockContext, - LockScreenNotificationShowSensitiveToggleController.KEY_SHOW_SENSITIVE); + mController = new LockScreenNotificationShowSensitiveController(mMockContext, + LockScreenNotificationShowSensitiveController.KEY_SHOW_SENSITIVE); // should otherwise show when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true); @@ -271,13 +271,13 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0, 0); - assertThat(mController.isChecked()).isTrue(); + assertThat(mController.isChecked()).isFalse(); Settings.Secure.putIntForUser(mContext.getContentResolver(), LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 1, 0); - assertThat(mController.isChecked()).isFalse(); + assertThat(mController.isChecked()).isTrue(); } @Test @@ -287,13 +287,13 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0, 10); - assertThat(mWorkController.isChecked()).isTrue(); + assertThat(mWorkController.isChecked()).isFalse(); Settings.Secure.putIntForUser(mContext.getContentResolver(), LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 1, 10); - assertThat(mWorkController.isChecked()).isFalse(); + assertThat(mWorkController.isChecked()).isTrue(); } @Test @@ -305,7 +305,7 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { ShadowRestrictedLockUtilsInternal.setKeyguardDisabledFeatures( KEYGUARD_DISABLE_SECURE_NOTIFICATIONS); - assertThat(mController.isChecked()).isFalse(); + assertThat(mController.isChecked()).isTrue(); } @Test @@ -317,7 +317,7 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { mController.setChecked(false); assertThat(Settings.Secure.getIntForUser( mContext.getContentResolver(), LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0)) - .isEqualTo(1); + .isEqualTo(0); } @Test @@ -329,7 +329,7 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { mWorkController.setChecked(true); assertThat(Settings.Secure.getIntForUser( mContext.getContentResolver(), LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 10)) - .isEqualTo(0); + .isEqualTo(1); } @Test @@ -345,10 +345,10 @@ public class LockScreenNotificationShowSensitiveToggleControllerTest { mWorkController.setChecked(true); assertThat(Settings.Secure.getIntForUser( mContext.getContentResolver(), LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 10)) - .isEqualTo(0); + .isEqualTo(1); assertThat(Settings.Secure.getIntForUser( mContext.getContentResolver(), LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0)) - .isEqualTo(0); + .isEqualTo(1); } }