diff options
| -rw-r--r-- | core/java/android/view/Window.java | 5 | ||||
| -rw-r--r-- | core/java/android/view/WindowManager.java | 8 | ||||
| -rw-r--r-- | services/core/java/com/android/server/policy/PhoneWindowManager.java | 3 |
3 files changed, 13 insertions, 3 deletions
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index 5811ef9..65577f0 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -869,7 +869,10 @@ public abstract class Window { } private void setPrivateFlags(int flags, int mask) { - if ((flags & mask & WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_SYSTEM_KEYS) != 0){ + int preventFlags = WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_POWER_KEY | + WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_SYSTEM_KEYS; + + if ((flags & mask & preventFlags) != 0) { mContext.enforceCallingOrSelfPermission("android.permission.PREVENT_SYSTEM_KEYS", "No permission to prevent system key"); } diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index c7a9650..36f593e 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -1157,7 +1157,13 @@ public interface WindowManager extends ViewManager { * Window flag: Overrides default system key behavior. * {@hide} */ - public static final int PRIVATE_FLAG_PREVENT_SYSTEM_KEYS = 0x20000000; + public static final int PRIVATE_FLAG_PREVENT_SYSTEM_KEYS = 0x10000000; + + /** + * Window flag: Overrides default system key behavior. + * {@hide} + */ + public static final int PRIVATE_FLAG_PREVENT_POWER_KEY = 0x20000000; /** * Window flag: adding additional blur layer and set this as masking layer diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 1f9db49..98104b7 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3265,7 +3265,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mTopFullscreenOpaqueWindowState != null && (mTopFullscreenOpaqueWindowState.getAttrs().privateFlags - & WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_SYSTEM_KEYS) != 0 + & (WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_SYSTEM_KEYS | + WindowManager.LayoutParams.PRIVATE_FLAG_PREVENT_POWER_KEY)) != 0 && mScreenOnFully) { return 0; } |
