Loading apex/jobscheduler/framework/java/android/os/DeviceIdleManager.java +0 −13 Original line number Diff line number Diff line Loading @@ -70,17 +70,4 @@ public class DeviceIdleManager { return new String[0]; } } /** * Return whether a given package is in the power-save whitelist or not. * @hide */ public boolean isApplicationWhitelisted(@NonNull String packageName) { try { return mService.isPowerSaveWhitelistApp(packageName); } catch (RemoteException e) { e.rethrowFromSystemServer(); return false; } } } apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,26 @@ public class PowerWhitelistManager { } } /** * Returns true if the app is whitelisted from power save restrictions. This does not include * temporarily whitelisted apps. * * @param includingIdle Set to true if the app should be whitelisted from device * idle as well as other power save restrictions * @hide */ public boolean isWhitelisted(@NonNull String packageName, boolean includingIdle) { try { if (includingIdle) { return mService.isPowerSaveWhitelistApp(packageName); } else { return mService.isPowerSaveWhitelistExceptIdleApp(packageName); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Add an app to the temporary whitelist for a short amount of time. * Loading apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +6 −7 Original line number Diff line number Diff line Loading @@ -79,10 +79,10 @@ import android.os.BatteryStats; import android.os.Build; import android.os.Environment; import android.os.Handler; import android.os.IDeviceIdleController; import android.os.Looper; import android.os.Message; import android.os.PowerManager; import android.os.PowerWhitelistManager; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; Loading Loading @@ -1009,7 +1009,7 @@ public class AppStandbyController implements AppStandbyInternal { // We allow all whitelisted apps, including those that don't want to be whitelisted // for idle mode, because app idle (aka app standby) is really not as big an issue // for controlling who participates vs. doze mode. if (mInjector.isPowerSaveWhitelistExceptIdleApp(packageName)) { if (mInjector.isNonIdleWhitelisted(packageName)) { return true; } } catch (RemoteException re) { Loading Loading @@ -1636,12 +1636,12 @@ public class AppStandbyController implements AppStandbyInternal { private final Context mContext; private final Looper mLooper; private IDeviceIdleController mDeviceIdleController; private IBatteryStats mBatteryStats; private BatteryManager mBatteryManager; private PackageManagerInternal mPackageManagerInternal; private DisplayManager mDisplayManager; private PowerManager mPowerManager; private PowerWhitelistManager mPowerWhitelistManager; private CrossProfileAppsInternal mCrossProfileAppsInternal; int mBootPhase; /** Loading @@ -1665,8 +1665,7 @@ public class AppStandbyController implements AppStandbyInternal { void onBootPhase(int phase) { if (phase == PHASE_SYSTEM_SERVICES_READY) { mDeviceIdleController = IDeviceIdleController.Stub.asInterface( ServiceManager.getService(Context.DEVICE_IDLE_CONTROLLER)); mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class); mBatteryStats = IBatteryStats.Stub.asInterface( ServiceManager.getService(BatteryStats.SERVICE_NAME)); mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class); Loading Loading @@ -1717,8 +1716,8 @@ public class AppStandbyController implements AppStandbyInternal { return mBatteryManager.isCharging(); } boolean isPowerSaveWhitelistExceptIdleApp(String packageName) throws RemoteException { return mDeviceIdleController.isPowerSaveWhitelistExceptIdleApp(packageName); boolean isNonIdleWhitelisted(String packageName) throws RemoteException { return mPowerWhitelistManager.isWhitelisted(packageName, false); } File getDataSystemDirectory() { Loading core/java/android/os/PowerManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -922,7 +922,7 @@ public final class PowerManager { final IThermalService mThermalService; /** We lazily initialize it.*/ private DeviceIdleManager mDeviceIdleManager; private PowerWhitelistManager mPowerWhitelistManager; private final ArrayMap<OnThermalStatusChangedListener, IThermalStatusListener> mListenerMap = new ArrayMap<>(); Loading @@ -938,12 +938,12 @@ public final class PowerManager { mHandler = handler; } private DeviceIdleManager getDeviceIdleManager() { if (mDeviceIdleManager == null) { private PowerWhitelistManager getPowerWhitelistManager() { if (mPowerWhitelistManager == null) { // No need for synchronization; getSystemService() will return the same object anyway. mDeviceIdleManager = mContext.getSystemService(DeviceIdleManager.class); mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class); } return mDeviceIdleManager; return mPowerWhitelistManager; } /** Loading Loading @@ -1786,7 +1786,7 @@ public final class PowerManager { * {@link android.provider.Settings#ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS}. */ public boolean isIgnoringBatteryOptimizations(String packageName) { return getDeviceIdleManager().isApplicationWhitelisted(packageName); return getPowerWhitelistManager().isWhitelisted(packageName, true); } /** Loading services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java +3 −3 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ public class AppStandbyControllerTests { long mElapsedRealtime; boolean mIsAppIdleEnabled = true; boolean mIsCharging; List<String> mPowerSaveWhitelistExceptIdle = new ArrayList<>(); List<String> mNonIdleWhitelistApps = new ArrayList<>(); boolean mDisplayOn; DisplayManager.DisplayListener mDisplayListener; String mBoundWidgetPackage = PACKAGE_EXEMPTED_1; Loading Loading @@ -203,8 +203,8 @@ public class AppStandbyControllerTests { } @Override boolean isPowerSaveWhitelistExceptIdleApp(String packageName) throws RemoteException { return mPowerSaveWhitelistExceptIdle.contains(packageName); boolean isNonIdleWhitelisted(String packageName) throws RemoteException { return mNonIdleWhitelistApps.contains(packageName); } @Override Loading Loading
apex/jobscheduler/framework/java/android/os/DeviceIdleManager.java +0 −13 Original line number Diff line number Diff line Loading @@ -70,17 +70,4 @@ public class DeviceIdleManager { return new String[0]; } } /** * Return whether a given package is in the power-save whitelist or not. * @hide */ public boolean isApplicationWhitelisted(@NonNull String packageName) { try { return mService.isPowerSaveWhitelistApp(packageName); } catch (RemoteException e) { e.rethrowFromSystemServer(); return false; } } }
apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,26 @@ public class PowerWhitelistManager { } } /** * Returns true if the app is whitelisted from power save restrictions. This does not include * temporarily whitelisted apps. * * @param includingIdle Set to true if the app should be whitelisted from device * idle as well as other power save restrictions * @hide */ public boolean isWhitelisted(@NonNull String packageName, boolean includingIdle) { try { if (includingIdle) { return mService.isPowerSaveWhitelistApp(packageName); } else { return mService.isPowerSaveWhitelistExceptIdleApp(packageName); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Add an app to the temporary whitelist for a short amount of time. * Loading
apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +6 −7 Original line number Diff line number Diff line Loading @@ -79,10 +79,10 @@ import android.os.BatteryStats; import android.os.Build; import android.os.Environment; import android.os.Handler; import android.os.IDeviceIdleController; import android.os.Looper; import android.os.Message; import android.os.PowerManager; import android.os.PowerWhitelistManager; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; Loading Loading @@ -1009,7 +1009,7 @@ public class AppStandbyController implements AppStandbyInternal { // We allow all whitelisted apps, including those that don't want to be whitelisted // for idle mode, because app idle (aka app standby) is really not as big an issue // for controlling who participates vs. doze mode. if (mInjector.isPowerSaveWhitelistExceptIdleApp(packageName)) { if (mInjector.isNonIdleWhitelisted(packageName)) { return true; } } catch (RemoteException re) { Loading Loading @@ -1636,12 +1636,12 @@ public class AppStandbyController implements AppStandbyInternal { private final Context mContext; private final Looper mLooper; private IDeviceIdleController mDeviceIdleController; private IBatteryStats mBatteryStats; private BatteryManager mBatteryManager; private PackageManagerInternal mPackageManagerInternal; private DisplayManager mDisplayManager; private PowerManager mPowerManager; private PowerWhitelistManager mPowerWhitelistManager; private CrossProfileAppsInternal mCrossProfileAppsInternal; int mBootPhase; /** Loading @@ -1665,8 +1665,7 @@ public class AppStandbyController implements AppStandbyInternal { void onBootPhase(int phase) { if (phase == PHASE_SYSTEM_SERVICES_READY) { mDeviceIdleController = IDeviceIdleController.Stub.asInterface( ServiceManager.getService(Context.DEVICE_IDLE_CONTROLLER)); mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class); mBatteryStats = IBatteryStats.Stub.asInterface( ServiceManager.getService(BatteryStats.SERVICE_NAME)); mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class); Loading Loading @@ -1717,8 +1716,8 @@ public class AppStandbyController implements AppStandbyInternal { return mBatteryManager.isCharging(); } boolean isPowerSaveWhitelistExceptIdleApp(String packageName) throws RemoteException { return mDeviceIdleController.isPowerSaveWhitelistExceptIdleApp(packageName); boolean isNonIdleWhitelisted(String packageName) throws RemoteException { return mPowerWhitelistManager.isWhitelisted(packageName, false); } File getDataSystemDirectory() { Loading
core/java/android/os/PowerManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -922,7 +922,7 @@ public final class PowerManager { final IThermalService mThermalService; /** We lazily initialize it.*/ private DeviceIdleManager mDeviceIdleManager; private PowerWhitelistManager mPowerWhitelistManager; private final ArrayMap<OnThermalStatusChangedListener, IThermalStatusListener> mListenerMap = new ArrayMap<>(); Loading @@ -938,12 +938,12 @@ public final class PowerManager { mHandler = handler; } private DeviceIdleManager getDeviceIdleManager() { if (mDeviceIdleManager == null) { private PowerWhitelistManager getPowerWhitelistManager() { if (mPowerWhitelistManager == null) { // No need for synchronization; getSystemService() will return the same object anyway. mDeviceIdleManager = mContext.getSystemService(DeviceIdleManager.class); mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class); } return mDeviceIdleManager; return mPowerWhitelistManager; } /** Loading Loading @@ -1786,7 +1786,7 @@ public final class PowerManager { * {@link android.provider.Settings#ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS}. */ public boolean isIgnoringBatteryOptimizations(String packageName) { return getDeviceIdleManager().isApplicationWhitelisted(packageName); return getPowerWhitelistManager().isWhitelisted(packageName, true); } /** Loading
services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java +3 −3 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ public class AppStandbyControllerTests { long mElapsedRealtime; boolean mIsAppIdleEnabled = true; boolean mIsCharging; List<String> mPowerSaveWhitelistExceptIdle = new ArrayList<>(); List<String> mNonIdleWhitelistApps = new ArrayList<>(); boolean mDisplayOn; DisplayManager.DisplayListener mDisplayListener; String mBoundWidgetPackage = PACKAGE_EXEMPTED_1; Loading Loading @@ -203,8 +203,8 @@ public class AppStandbyControllerTests { } @Override boolean isPowerSaveWhitelistExceptIdleApp(String packageName) throws RemoteException { return mPowerSaveWhitelistExceptIdle.contains(packageName); boolean isNonIdleWhitelisted(String packageName) throws RemoteException { return mNonIdleWhitelistApps.contains(packageName); } @Override Loading