Settings>Security>Show notifications (on the lockscreen).
Allows the user to toggle Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, which if set shows the complete private contents of that user's notifications atop a securely locked screen. When unset, only the "public" versions of notifications are shown (which may include explicit redactions made by the app). See f/b change I32bb7939 for details. This checkbox is hidden for insecure keyguards ("off" and "none"). It is also unavailable if Settings.Global.LOCK_SCREEN_SHOW_NOTIFICATIONS is not set (see f/b change I9c517949.) Change-Id: Ie1b4c6b949b597b97e536d8ea7e35c9de9b6995f
This commit is contained in:
@@ -4993,4 +4993,16 @@
|
|||||||
<string name="dashboard_title">Overview</string>
|
<string name="dashboard_title">Overview</string>
|
||||||
<string name="dashboard_wip" translatable="false">Overview - work in progress\n\nUse the Drawer on the left to see the settings list</string>
|
<string name="dashboard_wip" translatable="false">Overview - work in progress\n\nUse the Drawer on the left to see the settings list</string>
|
||||||
|
|
||||||
|
<!-- Notifications on lockscreen -->
|
||||||
|
<!-- Label for checkbox controlling the contents of notifications shown on
|
||||||
|
the secure lockscreen [CHAR LIMIT=16] -->
|
||||||
|
<string name="lock_screen_notifications">Show notifications</string>
|
||||||
|
<!-- Summary for lock_screen_notifications: sensitive information will be
|
||||||
|
hidden or redacted from notifications shown on a secure lock screen
|
||||||
|
[CHAR LIMIT=50] -->
|
||||||
|
<string name="lock_screen_notifications_summary_off">Sensitive notification contents will be hidden when locked</string>
|
||||||
|
<!-- Summary for lock_screen_notifications: all information will be
|
||||||
|
shown in notifications shown on a secure lock screen
|
||||||
|
[CHAR LIMIT=50] -->
|
||||||
|
<string name="lock_screen_notifications_summary_on">All notification contents will be shown when locked</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -66,6 +66,13 @@
|
|||||||
android:title="@string/nfc_unlock_title"
|
android:title="@string/nfc_unlock_title"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="toggle_lock_screen_notifications"
|
||||||
|
android:title="@string/lock_screen_notifications"
|
||||||
|
android:summaryOff="@string/lock_screen_notifications_summary_off"
|
||||||
|
android:summaryOn="@string/lock_screen_notifications_summary_on"
|
||||||
|
android:persistent="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -53,6 +53,13 @@
|
|||||||
android:title="@string/nfc_unlock_title"
|
android:title="@string/nfc_unlock_title"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="toggle_lock_screen_notifications"
|
||||||
|
android:title="@string/lock_screen_notifications"
|
||||||
|
android:summaryOff="@string/lock_screen_notifications_summary_off"
|
||||||
|
android:summaryOn="@string/lock_screen_notifications_summary_on"
|
||||||
|
android:persistent="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -57,6 +57,13 @@
|
|||||||
android:title="@string/nfc_unlock_title"
|
android:title="@string/nfc_unlock_title"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="toggle_lock_screen_notifications"
|
||||||
|
android:title="@string/lock_screen_notifications"
|
||||||
|
android:summaryOff="@string/lock_screen_notifications_summary_off"
|
||||||
|
android:summaryOn="@string/lock_screen_notifications_summary_on"
|
||||||
|
android:persistent="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -53,6 +53,13 @@
|
|||||||
android:title="@string/nfc_unlock_title"
|
android:title="@string/nfc_unlock_title"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="toggle_lock_screen_notifications"
|
||||||
|
android:title="@string/lock_screen_notifications"
|
||||||
|
android:summaryOff="@string/lock_screen_notifications_summary_off"
|
||||||
|
android:summaryOn="@string/lock_screen_notifications_summary_on"
|
||||||
|
android:persistent="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -31,7 +31,6 @@ import android.content.pm.ResolveInfo;
|
|||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.nfc.NfcUnlock;
|
import android.nfc.NfcUnlock;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.SystemProperties;
|
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.preference.CheckBoxPreference;
|
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_POWER_INSTANTLY_LOCKS = "power_button_instantly_locks";
|
||||||
private static final String KEY_CREDENTIALS_MANAGER = "credentials_management";
|
private static final String KEY_CREDENTIALS_MANAGER = "credentials_management";
|
||||||
private static final String KEY_NOTIFICATION_ACCESS = "manage_notification_access";
|
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 static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";
|
||||||
|
|
||||||
private PackageManager mPM;
|
private PackageManager mPM;
|
||||||
@@ -110,6 +110,7 @@ public class SecuritySettings extends RestrictedSettingsFragment
|
|||||||
private CheckBoxPreference mEnableKeyguardWidgets;
|
private CheckBoxPreference mEnableKeyguardWidgets;
|
||||||
|
|
||||||
private Preference mNotificationAccess;
|
private Preference mNotificationAccess;
|
||||||
|
private CheckBoxPreference mLockscreenNotifications;
|
||||||
|
|
||||||
private boolean mIsPrimary;
|
private boolean mIsPrimary;
|
||||||
|
|
||||||
@@ -355,9 +356,34 @@ public class SecuritySettings extends RestrictedSettingsFragment
|
|||||||
protectByRestrictions(mResetCredentials);
|
protectByRestrictions(mResetCredentials);
|
||||||
protectByRestrictions(root.findPreference(KEY_CREDENTIALS_INSTALL));
|
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;
|
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() {
|
private int getNumEnabledNotificationListeners() {
|
||||||
final String flat = Settings.Secure.getString(getContentResolver(),
|
final String flat = Settings.Secure.getString(getContentResolver(),
|
||||||
Settings.Secure.ENABLED_NOTIFICATION_LISTENERS);
|
Settings.Secure.ENABLED_NOTIFICATION_LISTENERS);
|
||||||
@@ -591,6 +617,10 @@ public class SecuritySettings extends RestrictedSettingsFragment
|
|||||||
} else if (KEY_TOGGLE_VERIFY_APPLICATIONS.equals(key)) {
|
} else if (KEY_TOGGLE_VERIFY_APPLICATIONS.equals(key)) {
|
||||||
Settings.Global.putInt(getContentResolver(), Settings.Global.PACKAGE_VERIFIER_ENABLE,
|
Settings.Global.putInt(getContentResolver(), Settings.Global.PACKAGE_VERIFIER_ENABLE,
|
||||||
mToggleVerifyApps.isChecked() ? 1 : 0);
|
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 {
|
} else {
|
||||||
// If we didn't handle it, let preferences handle it.
|
// If we didn't handle it, let preferences handle it.
|
||||||
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
||||||
|
Reference in New Issue
Block a user