From a31610f23ae0848b03ecaa1f0bd0b5595492fa65 Mon Sep 17 00:00:00 2001 From: Varun Shah Date: Wed, 14 Dec 2022 14:42:41 -0800 Subject: [PATCH] Don't update the standby bucket for apps that were just restored. This prevents an app's bucket from being lowered due to a timeout if the app hasn't been used since it was restored. Bug: 214580000 Test: atest UsageStatsDatabaseTest Test: manually verify buckets are restored Change-Id: I1df310afabf2abde7bf91daab0142114bf244ec8 (cherry picked from commit d1fb46c68d67f06102bbac9024b3cbf4ed2241ea) --- .../server/usage/AppStandbyController.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 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 5d9f3357125af..25874628eb1fb 100644 --- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java @@ -968,13 +968,17 @@ public class AppStandbyController + standbyBucketToString(newBucket)); } } else { - newBucket = getBucketForLocked(packageName, userId, - elapsedRealtime); - if (DEBUG) { - Slog.d(TAG, "Evaluated AOSP newBucket = " - + standbyBucketToString(newBucket)); + // Don't update the standby state for apps that were restored + if (!(oldMainReason == REASON_MAIN_DEFAULT + && (app.bucketingReason & REASON_SUB_MASK) + == REASON_SUB_DEFAULT_APP_RESTORED)) { + newBucket = getBucketForLocked(packageName, userId, elapsedRealtime); + if (DEBUG) { + Slog.d(TAG, "Evaluated AOSP newBucket = " + + standbyBucketToString(newBucket)); + } + reason = REASON_MAIN_TIMEOUT; } - reason = REASON_MAIN_TIMEOUT; } }