summaryrefslogtreecommitdiff
path: root/apex/jobscheduler
diff options
context:
space:
mode:
authorMichael Wachenschwanz <mwachens@google.com>2020-09-24 21:26:05 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-09-24 21:26:05 +0000
commit70bfab0dd212b74fc32e4264482eae1bc1547cf2 (patch)
treeab2d7b5459d34e4455c995e29fc83ffb25eb6da6 /apex/jobscheduler
parentf69c09e9d95d9340d2ccac96782f469df2f67b45 (diff)
parent711cdc2220efb31eb41f5e66ab453b2f5e885279 (diff)
Merge "Prevent default wellbeing app from falling below WORKING_SET bucket" into rvc-qpr-dev am: 711cdc2220
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12663452 Change-Id: I5c85d31b5c42f4bbb7c33671d36120a6bcff5d80
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.