Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef731628 authored by Mike Lockwood's avatar Mike Lockwood
Browse files

Support for triggering the lockscreen while the screen is on:



Add new ALLOW_LOCK_WHILE_SCREEN_ON window manager flag, which when set
causes the window manager to put up the lockscreen after the
normal screen timeout has elapsed.

Add plumbing to pass PowerManager.userActivity() to the window manager policy.

Change-Id: I05adc52bad39c56031a08e8ec3cbcf5c2d9b9827
Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent 3b889f52
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -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>
+6 −0
Original line number Diff line number Diff line
@@ -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;
+6 −0
Original line number Diff line number Diff line
@@ -826,6 +826,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
+4 −0
Original line number Diff line number Diff line
@@ -2011,6 +2011,10 @@ class PowerManagerService extends IPowerManager.Stub
                }
            }
        }

        if (mPolicy != null) {
            mPolicy.userActivity();
        }
    }

    private int getAutoBrightnessValue(int sensorValue, int[] values) {
+2 −1
Original line number Diff line number Diff line
@@ -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);
                }