diff --git a/res/values/strings.xml b/res/values/strings.xml
index a5076e4b764..8cb1510c594 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4993,4 +4993,16 @@
Overview
Overview - work in progress\n\nUse the Drawer on the left to see the settings list
+
+
+ Show notifications
+
+ Sensitive notification contents will be hidden when locked
+
+ All notification contents will be shown when locked
diff --git a/res/xml/security_settings_biometric_weak.xml b/res/xml/security_settings_biometric_weak.xml
index c2e8ab7cb8d..d9949223130 100644
--- a/res/xml/security_settings_biometric_weak.xml
+++ b/res/xml/security_settings_biometric_weak.xml
@@ -66,6 +66,13 @@
android:title="@string/nfc_unlock_title"
android:persistent="false"/>
+
+
diff --git a/res/xml/security_settings_password.xml b/res/xml/security_settings_password.xml
index a102efa9cb6..20d76442027 100644
--- a/res/xml/security_settings_password.xml
+++ b/res/xml/security_settings_password.xml
@@ -53,6 +53,13 @@
android:title="@string/nfc_unlock_title"
android:persistent="false"/>
+
+
diff --git a/res/xml/security_settings_pattern.xml b/res/xml/security_settings_pattern.xml
index 0584e4ae247..c02df7a4274 100644
--- a/res/xml/security_settings_pattern.xml
+++ b/res/xml/security_settings_pattern.xml
@@ -57,6 +57,13 @@
android:title="@string/nfc_unlock_title"
android:persistent="false"/>
+
+
diff --git a/res/xml/security_settings_pin.xml b/res/xml/security_settings_pin.xml
index 1417e217853..2636fa41e76 100644
--- a/res/xml/security_settings_pin.xml
+++ b/res/xml/security_settings_pin.xml
@@ -53,6 +53,13 @@
android:title="@string/nfc_unlock_title"
android:persistent="false"/>
+
+
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index f75480bca09..84a07f235db 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -31,7 +31,6 @@ import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.nfc.NfcUnlock;
import android.os.Bundle;
-import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.preference.CheckBoxPreference;
@@ -86,6 +85,7 @@ public class SecuritySettings extends RestrictedSettingsFragment
private static final String KEY_POWER_INSTANTLY_LOCKS = "power_button_instantly_locks";
private static final String KEY_CREDENTIALS_MANAGER = "credentials_management";
private static final String KEY_NOTIFICATION_ACCESS = "manage_notification_access";
+ private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "toggle_lock_screen_notifications";
private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";
private PackageManager mPM;
@@ -110,6 +110,7 @@ public class SecuritySettings extends RestrictedSettingsFragment
private CheckBoxPreference mEnableKeyguardWidgets;
private Preference mNotificationAccess;
+ private CheckBoxPreference mLockscreenNotifications;
private boolean mIsPrimary;
@@ -355,9 +356,34 @@ public class SecuritySettings extends RestrictedSettingsFragment
protectByRestrictions(mResetCredentials);
protectByRestrictions(root.findPreference(KEY_CREDENTIALS_INSTALL));
}
+
+ mLockscreenNotifications
+ = (CheckBoxPreference) root.findPreference(KEY_LOCK_SCREEN_NOTIFICATIONS);
+ if (mLockscreenNotifications != null) {
+ if (!getDeviceLockscreenNotificationsEnabled()) {
+ final PreferenceGroup lockscreenCategory =
+ (PreferenceGroup) root.findPreference(KEY_SECURITY_CATEGORY);
+ if (lockscreenCategory != null) {
+ lockscreenCategory.removePreference(mLockscreenNotifications);
+ }
+ } else {
+ mLockscreenNotifications.setChecked(getLockscreenAllowPrivateNotifications());
+ }
+ }
+
return root;
}
+ private boolean getDeviceLockscreenNotificationsEnabled() {
+ return 0 != Settings.Global.getInt(getContentResolver(),
+ Settings.Global.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0);
+ }
+
+ private boolean getLockscreenAllowPrivateNotifications() {
+ return 0 != Settings.Secure.getInt(getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0);
+ }
+
private int getNumEnabledNotificationListeners() {
final String flat = Settings.Secure.getString(getContentResolver(),
Settings.Secure.ENABLED_NOTIFICATION_LISTENERS);
@@ -591,6 +617,10 @@ public class SecuritySettings extends RestrictedSettingsFragment
} else if (KEY_TOGGLE_VERIFY_APPLICATIONS.equals(key)) {
Settings.Global.putInt(getContentResolver(), Settings.Global.PACKAGE_VERIFIER_ENABLE,
mToggleVerifyApps.isChecked() ? 1 : 0);
+ } else if (KEY_LOCK_SCREEN_NOTIFICATIONS.equals(key)) {
+ Settings.Secure.putInt(getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS,
+ mLockscreenNotifications.isChecked() ? 1 : 0);
} else {
// If we didn't handle it, let preferences handle it.
return super.onPreferenceTreeClick(preferenceScreen, preference);