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

Commit d3fe9abf authored by Jim Miller's avatar Jim Miller Committed by Android Git Automerger
Browse files

am ab9601cd: am 230a7092: Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1

* commit 'ab9601cd':
  Fix 5863053: Add method to lock screen immediately.
parents 865534a0 ab9601cd
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -229,4 +229,9 @@ interface IWindowManager
     * Device has a software navigation bar (separate from the status bar).
     * Device has a software navigation bar (separate from the status bar).
     */
     */
    boolean hasNavigationBar();
    boolean hasNavigationBar();

    /**
     * Lock the device immediately.
     */
    void lockNow();
}
}
+5 −0
Original line number Original line Diff line number Diff line
@@ -1028,6 +1028,11 @@ public interface WindowManagerPolicy {
     */
     */
    public boolean hasNavigationBar();
    public boolean hasNavigationBar();


    /**
     * Lock the device now.
     */
    public void lockNow();

    /**
    /**
     * Print the WindowManagerPolicy's state into the given stream.
     * Print the WindowManagerPolicy's state into the given stream.
     *
     *
+6 −0
Original line number Original line Diff line number Diff line
@@ -3647,6 +3647,12 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        }
        }
    };
    };


    public void lockNow() {
        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
        mHandler.removeCallbacks(mScreenLockTimeout);
        mHandler.post(mScreenLockTimeout);
    }

    private void updateLockScreenTimeout() {
    private void updateLockScreenTimeout() {
        synchronized (mScreenLockTimeout) {
        synchronized (mScreenLockTimeout) {
            boolean enable = (mAllowLockscreenWhenOn && mScreenOnEarly && mKeyguardMediator.isSecure());
            boolean enable = (mAllowLockscreenWhenOn && mScreenOnEarly && mKeyguardMediator.isSecure());
+13 −0
Original line number Original line Diff line number Diff line
@@ -60,6 +60,7 @@ import android.util.PrintWriterPrinter;
import android.util.Printer;
import android.util.Printer;
import android.util.Slog;
import android.util.Slog;
import android.util.Xml;
import android.util.Xml;
import android.view.IWindowManager;
import android.view.WindowManagerPolicy;
import android.view.WindowManagerPolicy;


import java.io.File;
import java.io.File;
@@ -96,6 +97,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
    final PowerManager.WakeLock mWakeLock;
    final PowerManager.WakeLock mWakeLock;


    IPowerManager mIPowerManager;
    IPowerManager mIPowerManager;
    IWindowManager mIWindowManager;


    int mActivePasswordQuality = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
    int mActivePasswordQuality = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
    int mActivePasswordLength = 0;
    int mActivePasswordLength = 0;
@@ -506,6 +508,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        return mIPowerManager;
        return mIPowerManager;
    }
    }


    private IWindowManager getWindowManager() {
        if (mIWindowManager == null) {
            IBinder b = ServiceManager.getService(Context.WINDOW_SERVICE);
            mIWindowManager = IWindowManager.Stub.asInterface(b);
        }
        return mIWindowManager;
    }

    ActiveAdmin getActiveAdminUncheckedLocked(ComponentName who) {
    ActiveAdmin getActiveAdminUncheckedLocked(ComponentName who) {
        ActiveAdmin admin = mAdminMap.get(who);
        ActiveAdmin admin = mAdminMap.get(who);
        if (admin != null
        if (admin != null
@@ -1649,8 +1659,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                    DeviceAdminInfo.USES_POLICY_FORCE_LOCK);
                    DeviceAdminInfo.USES_POLICY_FORCE_LOCK);
            long ident = Binder.clearCallingIdentity();
            long ident = Binder.clearCallingIdentity();
            try {
            try {
                // Power off the display
                mIPowerManager.goToSleepWithReason(SystemClock.uptimeMillis(),
                mIPowerManager.goToSleepWithReason(SystemClock.uptimeMillis(),
                        WindowManagerPolicy.OFF_BECAUSE_OF_ADMIN);
                        WindowManagerPolicy.OFF_BECAUSE_OF_ADMIN);
                // Ensure the device is locked
                getWindowManager().lockNow();
            } catch (RemoteException e) {
            } catch (RemoteException e) {
            } finally {
            } finally {
                Binder.restoreCallingIdentity(ident);
                Binder.restoreCallingIdentity(ident);
+4 −0
Original line number Original line Diff line number Diff line
@@ -9422,6 +9422,10 @@ public class WindowManagerService extends IWindowManager.Stub
        return mPolicy.hasNavigationBar();
        return mPolicy.hasNavigationBar();
    }
    }


    public void lockNow() {
        mPolicy.lockNow();
    }

    void dumpInput(FileDescriptor fd, PrintWriter pw, boolean dumpAll) {
    void dumpInput(FileDescriptor fd, PrintWriter pw, boolean dumpAll) {
        pw.println("WINDOW MANAGER INPUT (dumpsys window input)");
        pw.println("WINDOW MANAGER INPUT (dumpsys window input)");
        mInputManager.dump(pw);
        mInputManager.dump(pw);
Loading