diff --git a/api/current.txt b/api/current.txt index adbc76a2bf91f..1726565303893 100644 --- a/api/current.txt +++ b/api/current.txt @@ -6066,6 +6066,7 @@ package android.app.admin { field public static final int KEYGUARD_DISABLE_FEATURES_ALL = 2147483647; // 0x7fffffff field public static final int KEYGUARD_DISABLE_FEATURES_NONE = 0; // 0x0 field public static final int KEYGUARD_DISABLE_FINGERPRINT = 32; // 0x20 + field public static final int KEYGUARD_DISABLE_REMOTE_INPUT = 64; // 0x40 field public static final int KEYGUARD_DISABLE_SECURE_CAMERA = 2; // 0x2 field public static final int KEYGUARD_DISABLE_SECURE_NOTIFICATIONS = 4; // 0x4 field public static final int KEYGUARD_DISABLE_TRUST_AGENTS = 16; // 0x10 diff --git a/api/system-current.txt b/api/system-current.txt index a57e14b0e9cad..c58df21064a67 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6233,6 +6233,7 @@ package android.app.admin { field public static final int KEYGUARD_DISABLE_FEATURES_ALL = 2147483647; // 0x7fffffff field public static final int KEYGUARD_DISABLE_FEATURES_NONE = 0; // 0x0 field public static final int KEYGUARD_DISABLE_FINGERPRINT = 32; // 0x20 + field public static final int KEYGUARD_DISABLE_REMOTE_INPUT = 64; // 0x40 field public static final int KEYGUARD_DISABLE_SECURE_CAMERA = 2; // 0x2 field public static final int KEYGUARD_DISABLE_SECURE_NOTIFICATIONS = 4; // 0x4 field public static final int KEYGUARD_DISABLE_TRUST_AGENTS = 16; // 0x10 diff --git a/api/test-current.txt b/api/test-current.txt index 2f28265c40241..8021defcf33de 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -6071,6 +6071,7 @@ package android.app.admin { field public static final int KEYGUARD_DISABLE_FEATURES_ALL = 2147483647; // 0x7fffffff field public static final int KEYGUARD_DISABLE_FEATURES_NONE = 0; // 0x0 field public static final int KEYGUARD_DISABLE_FINGERPRINT = 32; // 0x20 + field public static final int KEYGUARD_DISABLE_REMOTE_INPUT = 64; // 0x40 field public static final int KEYGUARD_DISABLE_SECURE_CAMERA = 2; // 0x2 field public static final int KEYGUARD_DISABLE_SECURE_NOTIFICATIONS = 4; // 0x4 field public static final int KEYGUARD_DISABLE_TRUST_AGENTS = 16; // 0x10 diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 451acf31447cc..f78ed1e032b71 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -2570,6 +2570,11 @@ public class DevicePolicyManager { */ public static final int KEYGUARD_DISABLE_FINGERPRINT = 1 << 5; + /** + * Disable text entry into notifications on secure keyguard screens (e.g. PIN/Pattern/Password). + */ + public static final int KEYGUARD_DISABLE_REMOTE_INPUT = 1 << 6; + /** * Disable all current and future keyguard customizations. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index dc5957d70f783..593e170ab5a8f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -2246,9 +2246,12 @@ public abstract class BaseStatusBar extends SystemUI implements Settings.Secure.LOCK_SCREEN_ALLOW_REMOTE_INPUT, 0, mCurrentUserId) != 0; + final boolean remoteInputDpm = (dpmFlags + & DevicePolicyManager.KEYGUARD_DISABLE_REMOTE_INPUT) == 0; + setShowLockscreenNotifications(show && allowedByDpm); - setLockScreenAllowRemoteInput(remoteInput); + setLockScreenAllowRemoteInput(remoteInput && remoteInputDpm); } protected abstract void setAreThereNotifications();