Loading core/java/android/view/IWindowManager.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -229,4 +229,9 @@ interface IWindowManager * Device has a software navigation bar (separate from the status bar). */ boolean hasNavigationBar(); /** * Lock the device immediately. */ void lockNow(); } core/java/android/view/WindowManagerPolicy.java +5 −0 Original line number Diff line number Diff line Loading @@ -1027,6 +1027,11 @@ public interface WindowManagerPolicy { */ public boolean hasNavigationBar(); /** * Lock the device now. */ public void lockNow(); /** * Print the WindowManagerPolicy's state into the given stream. * Loading policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -3488,6 +3488,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() { synchronized (mScreenLockTimeout) { boolean enable = (mAllowLockscreenWhenOn && mScreenOnEarly && mKeyguardMediator.isSecure()); Loading services/java/com/android/server/DevicePolicyManagerService.java +13 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import android.util.PrintWriterPrinter; import android.util.Printer; import android.util.Slog; import android.util.Xml; import android.view.IWindowManager; import android.view.WindowManagerPolicy; import java.io.File; Loading Loading @@ -96,6 +97,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final PowerManager.WakeLock mWakeLock; IPowerManager mIPowerManager; IWindowManager mIWindowManager; int mActivePasswordQuality = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; int mActivePasswordLength = 0; Loading Loading @@ -506,6 +508,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { 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 admin = mAdminMap.get(who); if (admin != null Loading Loading @@ -1649,8 +1659,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { DeviceAdminInfo.USES_POLICY_FORCE_LOCK); long ident = Binder.clearCallingIdentity(); try { // Power off the display mIPowerManager.goToSleepWithReason(SystemClock.uptimeMillis(), WindowManagerPolicy.OFF_BECAUSE_OF_ADMIN); // Ensure the device is locked getWindowManager().lockNow(); } catch (RemoteException e) { } finally { Binder.restoreCallingIdentity(ident); Loading services/java/com/android/server/wm/WindowManagerService.java +4 −0 Original line number Diff line number Diff line Loading @@ -9415,6 +9415,10 @@ public class WindowManagerService extends IWindowManager.Stub return mPolicy.hasNavigationBar(); } public void lockNow() { mPolicy.lockNow(); } void dumpInput(FileDescriptor fd, PrintWriter pw, boolean dumpAll) { pw.println("WINDOW MANAGER INPUT (dumpsys window input)"); mInputManager.dump(pw); Loading Loading
core/java/android/view/IWindowManager.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -229,4 +229,9 @@ interface IWindowManager * Device has a software navigation bar (separate from the status bar). */ boolean hasNavigationBar(); /** * Lock the device immediately. */ void lockNow(); }
core/java/android/view/WindowManagerPolicy.java +5 −0 Original line number Diff line number Diff line Loading @@ -1027,6 +1027,11 @@ public interface WindowManagerPolicy { */ public boolean hasNavigationBar(); /** * Lock the device now. */ public void lockNow(); /** * Print the WindowManagerPolicy's state into the given stream. * Loading
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -3488,6 +3488,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() { synchronized (mScreenLockTimeout) { boolean enable = (mAllowLockscreenWhenOn && mScreenOnEarly && mKeyguardMediator.isSecure()); Loading
services/java/com/android/server/DevicePolicyManagerService.java +13 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import android.util.PrintWriterPrinter; import android.util.Printer; import android.util.Slog; import android.util.Xml; import android.view.IWindowManager; import android.view.WindowManagerPolicy; import java.io.File; Loading Loading @@ -96,6 +97,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final PowerManager.WakeLock mWakeLock; IPowerManager mIPowerManager; IWindowManager mIWindowManager; int mActivePasswordQuality = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; int mActivePasswordLength = 0; Loading Loading @@ -506,6 +508,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { 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 admin = mAdminMap.get(who); if (admin != null Loading Loading @@ -1649,8 +1659,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { DeviceAdminInfo.USES_POLICY_FORCE_LOCK); long ident = Binder.clearCallingIdentity(); try { // Power off the display mIPowerManager.goToSleepWithReason(SystemClock.uptimeMillis(), WindowManagerPolicy.OFF_BECAUSE_OF_ADMIN); // Ensure the device is locked getWindowManager().lockNow(); } catch (RemoteException e) { } finally { Binder.restoreCallingIdentity(ident); Loading
services/java/com/android/server/wm/WindowManagerService.java +4 −0 Original line number Diff line number Diff line Loading @@ -9415,6 +9415,10 @@ public class WindowManagerService extends IWindowManager.Stub return mPolicy.hasNavigationBar(); } public void lockNow() { mPolicy.lockNow(); } void dumpInput(FileDescriptor fd, PrintWriter pw, boolean dumpAll) { pw.println("WINDOW MANAGER INPUT (dumpsys window input)"); mInputManager.dump(pw); Loading