diff --git a/res/layout/notification_ls_minimalism_selector.xml b/res/layout/notification_ls_minimalism_selector.xml
index cf34561082d..cf6766afd06 100644
--- a/res/layout/notification_ls_minimalism_selector.xml
+++ b/res/layout/notification_ls_minimalism_selector.xml
@@ -19,22 +19,10 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:orientation="vertical"
+ android:paddingTop="@dimen/settingslib_illustration_padding"
android:layout_width="match_parent"
android:layout_height="wrap_content">
-
-
@@ -101,12 +88,11 @@
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0ddab5bba51..9ecad191fa1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8892,14 +8892,8 @@
Full list
-
- The current default placement is a full shelf and notification stack.
-
-
- Compact
-
-
- New notifications are collapsed into a shelf on your lockscreen.
+
+ Compact View
Notifications on lock screen
@@ -8963,17 +8957,20 @@
When your device is locked, how do you want profile notifications to show?
-
- Hide seen notifications
+
+ What to show on lock screen
-
- Seen notifications are removed from the lock screen.
+
+ Show seen notifications
- Hide silent notifications
+ Show silent notifications
-
- Silent notifications and conversations are removed from the lock screen.
+
+ Show sensitive 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 b5fb12869e0..e870143823d 100644
--- a/res/xml/lock_screen_notifications_settings.xml
+++ b/res/xml/lock_screen_notifications_settings.xml
@@ -44,26 +44,30 @@
android:layout="@layout/notification_ls_minimalism_selector"
settings:controller="com.android.settings.notification.lockscreen.MinimalismPreferenceController" />
-
+
-
+
-
+
-
+
+
+
+
+
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/src/com/android/settings/notification/lockscreen/MinimalismPreferenceController.java b/src/com/android/settings/notification/lockscreen/MinimalismPreferenceController.java
index 78be16a1d71..90ede591eef 100644
--- a/src/com/android/settings/notification/lockscreen/MinimalismPreferenceController.java
+++ b/src/com/android/settings/notification/lockscreen/MinimalismPreferenceController.java
@@ -27,7 +27,6 @@ import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
import android.widget.LinearLayout;
-import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -62,13 +61,8 @@ public class MinimalismPreferenceController
Settings.Secure.getUriFor(LOCK_SCREEN_SHOW_NOTIFICATIONS);
@Nullable private LayoutPreference mPreference;
- @Nullable private TextView mDescView;
private Map mButtons = new HashMap<>();
private Map mIllustrations = new HashMap<>();
- private final Map mDescriptionTexts = Map.ofEntries(
- Map.entry(LS_MINIMALISM_OFF, R.string.lock_screen_notifs_full_list_desc),
- Map.entry(LS_MINIMALISM_ON, R.string.lock_screen_notifs_compact_desc)
- );
private final ContentResolver mContentResolver;
@@ -130,7 +124,6 @@ public class MinimalismPreferenceController
public void displayPreference(@NonNull PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = screen.findPreference(KEY_MINIMALISM_PREFERENCE);
- mDescView = mPreference.findViewById(R.id.notif_ls_style_desc);
mButtons = Map.ofEntries(
Map.entry(LS_MINIMALISM_OFF,
@@ -165,14 +158,6 @@ public class MinimalismPreferenceController
-> preference.setVisible(currentValue == value));
}
- private void highlightDescription(int value) {
- if (mDescView == null) return;
- Integer descStringId = mDescriptionTexts.get(value);
- if (descStringId != null) {
- mDescView.setText(descStringId);
- }
- }
-
private int getCurrentMinimalismValue() {
return Settings.Secure.getInt(mContext.getContentResolver(),
LOCK_SCREEN_NOTIFICATION_MINIMALISM, LS_MINIMALISM_ON);
@@ -190,7 +175,6 @@ public class MinimalismPreferenceController
int currentValue = getCurrentMinimalismValue();
highlightButton(currentValue);
highlightIllustration(currentValue);
- highlightDescription(currentValue);
}
}
}
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);
}
}