diff options
| -rw-r--r-- | apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java | 2 | ||||
| -rw-r--r-- | services/core/java/com/android/server/AppStateTracker.java | 8 |
2 files changed, 10 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 94e5d0b2591b..40328b300cee 100644 --- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java @@ -1322,6 +1322,8 @@ public class AppStandbyController implements AppStandbyInternal { private void setAppStandbyBucket(String packageName, int userId, @StandbyBuckets int newBucket, int reason, long elapsedRealtime, boolean resetTimeout) { + if (!mAppIdleEnabled) return; + synchronized (mAppIdleLock) { // If the package is not installed, don't allow the bucket to be set. if (!mInjector.isPackageInstalled(packageName, 0, userId)) { diff --git a/services/core/java/com/android/server/AppStateTracker.java b/services/core/java/com/android/server/AppStateTracker.java index 72e170ff9532..b765d81d42b7 100644 --- a/services/core/java/com/android/server/AppStateTracker.java +++ b/services/core/java/com/android/server/AppStateTracker.java @@ -448,6 +448,7 @@ public class AppStateTracker { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_USER_REMOVED); filter.addAction(Intent.ACTION_BATTERY_CHANGED); + filter.addAction(Intent.ACTION_PACKAGE_REMOVED); mContext.registerReceiver(new MyReceiver(), filter); refreshForcedAppStandbyUidPackagesLocked(); @@ -688,6 +689,13 @@ public class AppStateTracker { mIsPluggedIn = (intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0); } updateForceAllAppStandbyState(); + } else if (Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction()) + && !intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) { + final int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1); + final String pkgName = intent.getData().getSchemeSpecificPart(); + if (mExemptedPackages.remove(userId, pkgName)) { + mHandler.notifyExemptChanged(); + } } } } |