summaryrefslogtreecommitdiff
path: root/apex/jobscheduler
diff options
context:
space:
mode:
authorMichael Wachenschwanz <mwachens@google.com>2020-09-15 11:12:13 -0700
committerMichael Wachenschwanz <mwachens@google.com>2020-09-22 23:38:00 +0000
commit0eb48db94c033eeea20fd8f0dac3150ee316f756 (patch)
tree4385ecea2c3cb64161056c466138bcd902315269 /apex/jobscheduler
parent0c04c701789b7b13a76dbc31c442a8651dc881cf (diff)
Prevent default wellbeing app from falling below WORKING_SET bucket
Bug: 166301584 Test: atest AppStandbyControllerTests Change-Id: I5ef67308cabbe43801103e888165d488f4888ab9 (cherry picked from commit 9df9e30727b510fb37790085554e70423834a42b)
Diffstat (limited to 'apex/jobscheduler')
-rw-r--r--apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
index aeed1885dae5..36ccaf9c6fb8 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
+++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
@@ -1120,6 +1120,10 @@ public class AppStandbyController implements AppStandbyInternal {
if (isDeviceProvisioningPackage(packageName)) {
return STANDBY_BUCKET_EXEMPTED;
}
+
+ if (mInjector.isWellbeingPackage(packageName)) {
+ return STANDBY_BUCKET_WORKING_SET;
+ }
}
// Check this last, as it can be the most expensive check
@@ -1929,6 +1933,7 @@ public class AppStandbyController implements AppStandbyInternal {
*/
@GuardedBy("mPowerWhitelistedApps")
private final ArraySet<String> mPowerWhitelistedApps = new ArraySet<>();
+ private String mWellbeingApp = null;
Injector(Context context, Looper looper) {
mContext = context;
@@ -1962,6 +1967,9 @@ public class AppStandbyController implements AppStandbyInternal {
if (activityManager.isLowRamDevice() || ActivityManager.isSmallBatteryDevice()) {
mAutoRestrictedBucketDelayMs = 12 * ONE_HOUR;
}
+
+ final PackageManager packageManager = mContext.getPackageManager();
+ mWellbeingApp = packageManager.getWellbeingPackageName();
}
mBootPhase = phase;
}
@@ -2006,6 +2014,14 @@ public class AppStandbyController implements AppStandbyInternal {
}
}
+ /**
+ * Returns {@code true} if the supplied package is the wellbeing app. Otherwise,
+ * returns {@code false}.
+ */
+ boolean isWellbeingPackage(String packageName) {
+ return mWellbeingApp != null && mWellbeingApp.equals(packageName);
+ }
+
void updatePowerWhitelistCache() {
try {
// Don't call out to DeviceIdleController with the lock held.