From 5ce1cb240b13db98fbdc21e1ef069b5f9cec8d72 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Thu, 6 Nov 2014 19:05:33 -0800 Subject: [PATCH] Move device admin max screen off timeout to internal interface. The setting was previously exposed in IPowerManager but it doesn't need to be there. Bug: 17656076 Change-Id: If3ed0cbe89f67c60aa00376be0c54b1bd9656144 --- core/java/android/os/IPowerManager.aidl | 1 - .../java/android/os/PowerManagerInternal.java | 7 +++++ .../server/power/PowerManagerService.java | 20 ++++--------- .../DevicePolicyManagerService.java | 28 ++++++------------- .../bridge/android/BridgePowerManager.java | 5 ---- 5 files changed, 21 insertions(+), 40 deletions(-) diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl index ec3068431ea18..16dac7d5ff274 100644 --- a/core/java/android/os/IPowerManager.aidl +++ b/core/java/android/os/IPowerManager.aidl @@ -49,7 +49,6 @@ interface IPowerManager void crash(String message); void setStayOnSetting(int val); - void setMaximumScreenOffTimeoutFromDeviceAdmin(int timeMs); void boostScreenBrightness(long time); // temporarily overrides the screen brightness settings to allow the user to diff --git a/core/java/android/os/PowerManagerInternal.java b/core/java/android/os/PowerManagerInternal.java index 14f4a83e29ec3..9d783609a7cc1 100644 --- a/core/java/android/os/PowerManagerInternal.java +++ b/core/java/android/os/PowerManagerInternal.java @@ -55,6 +55,13 @@ public abstract class PowerManagerInternal { */ public abstract void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis); + /** + * Used by device administration to set the maximum screen off timeout. + * + * This method must only be called by the device administration policy manager. + */ + public abstract void setMaximumScreenOffTimeoutFromDeviceAdmin(int timeMs); + /** * Used by the dream manager to override certain properties while dozing. * diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 8682f5cfe5361..c054e6c467664 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -3140,21 +3140,6 @@ public final class PowerManagerService extends SystemService } } - /** - * Used by device administration to set the maximum screen off timeout. - * - * This method must only be called by the device administration policy manager. - */ - @Override // Binder call - public void setMaximumScreenOffTimeoutFromDeviceAdmin(int timeMs) { - final long ident = Binder.clearCallingIdentity(); - try { - setMaximumScreenOffTimeoutFromDeviceAdminInternal(timeMs); - } finally { - Binder.restoreCallingIdentity(ident); - } - } - /** * Used by the settings application and brightness control widgets to * temporarily override the current screen brightness setting so that the @@ -3299,6 +3284,11 @@ public final class PowerManagerService extends SystemService setUserActivityTimeoutOverrideFromWindowManagerInternal(timeoutMillis); } + @Override + public void setMaximumScreenOffTimeoutFromDeviceAdmin(int timeMs) { + setMaximumScreenOffTimeoutFromDeviceAdminInternal(timeMs); + } + @Override public boolean getLowPowerModeEnabled() { synchronized (mLock) { diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 2c6a2229ca84b..b3c2155d7f463 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -59,9 +59,9 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.IBinder; -import android.os.IPowerManager; import android.os.PersistableBundle; import android.os.PowerManager; +import android.os.PowerManagerInternal; import android.os.Process; import android.os.RecoverySystem; import android.os.RemoteCallback; @@ -204,7 +204,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final LocalService mLocalService; - IPowerManager mIPowerManager; + final PowerManager mPowerManager; + final PowerManagerInternal mPowerManagerInternal; + IWindowManager mIWindowManager; NotificationManager mNotificationManager; @@ -925,8 +927,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { mUserManager = UserManager.get(mContext); mHasFeature = context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_DEVICE_ADMIN); - mWakeLock = ((PowerManager)context.getSystemService(Context.POWER_SERVICE)) - .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "DPM"); + mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE); + mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class); + mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "DPM"); mLocalService = new LocalService(); if (!mHasFeature) { // Skip the rest of the initialization @@ -1038,14 +1041,6 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } } - private IPowerManager getIPowerManager() { - if (mIPowerManager == null) { - IBinder b = ServiceManager.getService(Context.POWER_SERVICE); - mIPowerManager = IPowerManager.Stub.asInterface(b); - } - return mIPowerManager; - } - private IWindowManager getWindowManager() { if (mIWindowManager == null) { IBinder b = ServiceManager.getService(Context.WINDOW_SERVICE); @@ -2729,12 +2724,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } policy.mLastMaximumTimeToLock = timeMs; - - try { - getIPowerManager().setMaximumScreenOffTimeoutFromDeviceAdmin((int)timeMs); - } catch (RemoteException e) { - Slog.w(LOG_TAG, "Failure talking with power manager", e); - } + mPowerManagerInternal.setMaximumScreenOffTimeoutFromDeviceAdmin((int)timeMs); } finally { Binder.restoreCallingIdentity(ident); } @@ -2789,7 +2779,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { long ident = Binder.clearCallingIdentity(); try { // Power off the display - getIPowerManager().goToSleep(SystemClock.uptimeMillis(), + mPowerManager.goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN, 0); // Ensure the device is locked new LockPatternUtils(mContext).requireCredentialEntry(UserHandle.USER_ALL); diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java index 05a6fd63f77eb..39ebdfce2cf26 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java @@ -115,11 +115,6 @@ public class BridgePowerManager implements IPowerManager { // pass for now. } - @Override - public void setMaximumScreenOffTimeoutFromDeviceAdmin(int arg0) throws RemoteException { - // pass for now. - } - @Override public void setStayOnSetting(int arg0) throws RemoteException { // pass for now.