diff options
| -rw-r--r-- | api/current.xml | 15 | ||||
| -rw-r--r-- | core/java/android/view/WindowManager.java | 6 | ||||
| -rw-r--r-- | core/java/android/view/WindowManagerPolicy.java | 6 | ||||
| -rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 4 | ||||
| -rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 3 |
5 files changed, 31 insertions, 3 deletions
diff --git a/api/current.xml b/api/current.xml index fe373183f082..d6c305e990d0 100644 --- a/api/current.xml +++ b/api/current.xml @@ -72273,7 +72273,7 @@ type="float" transient="false" volatile="false" - value="0.001f" + value="0.0010f" static="true" final="true" deprecated="not deprecated" @@ -178552,6 +178552,17 @@ visibility="public" > </field> +<field name="FLAG_ALLOW_LOCK_WHILE_SCREEN_ON" + type="int" + transient="false" + volatile="false" + value="1" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> <field name="FLAG_ALT_FOCUSABLE_IM" type="int" transient="false" @@ -209795,7 +209806,7 @@ deprecated="not deprecated" visibility="public" > -<parameter name="t" type="T"> +<parameter name="arg0" type="T"> </parameter> </method> </interface> diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 8e15f89e6325..5ffc09ad19e7 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -369,6 +369,12 @@ public interface WindowManager extends ViewManager { */ public int flags; + /** Window flag: as long as this window is visible to the user, allow + * the lock screen to activate while the screen is on. + * This can be used independently, or in combination with + * {@link #FLAG_KEEP_SCREEN_ON} and/or {@link FLAG_SHOW_WHEN_LOCKED} */ + public static final int FLAG_ALLOW_LOCK_WHILE_SCREEN_ON = 0x00000001; + /** Window flag: everything behind this window will be dimmed. * Use {@link #dimAmount} to control the amount of dim. */ public static final int FLAG_DIM_BEHIND = 0x00000002; diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java index 21577bf920ae..7bc5cced2115 100644 --- a/core/java/android/view/WindowManagerPolicy.java +++ b/core/java/android/view/WindowManagerPolicy.java @@ -827,6 +827,12 @@ public interface WindowManagerPolicy { public void systemReady(); /** + * Called when userActivity is signalled in the power manager. + * This is safe to call from any thread, with any window manager locks held or not. + */ + public void userActivity(); + + /** * Called when we have finished booting and can now display the home * screen to the user. This wilWl happen after systemReady(), and at * this point the display is active. diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index cefd3124f80d..e14a9734c8c9 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -2011,6 +2011,10 @@ class PowerManagerService extends IPowerManager.Stub } } } + + if (mPolicy != null) { + mPolicy.userActivity(); + } } private int getAutoBrightnessValue(int sensorValue, int[] values) { diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 1d14e5e65684..88aadbd665ce 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -2385,7 +2385,8 @@ public class WindowManagerService extends IWindowManager.Stub // to provide the correct semantics while starting. final int mask = WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED - | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD; + | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON; WindowManager.LayoutParams sa = win.mAppToken.startingWindow.mAttrs; sa.flags = (sa.flags&~mask) | (win.mAttrs.flags&mask); } |