diff options
author | Kweku Adams <kwekua@google.com> | 2021-06-16 15:39:20 -0700 |
---|---|---|
committer | Kweku Adams <kwekua@google.com> | 2021-06-16 15:39:20 -0700 |
commit | 183ec609e8d76ab650d3515e6750fdb1aeaaaf32 (patch) | |
tree | d19f3d9013383f67cb6d6689e814a73a800c6dbd /apex | |
parent | cf3e019bee84d6696ff4318b72ebf67cdcecebff (diff) |
Allow bucket elevation for timed-out restricted apps.
Ensure SYSTEM_INTERACTION can bring an app out of the RESTRICTED bucket
(temporarily) if the app is only in the bucket due to timeout.
Bug: 191297958
Test: atest AppStandbyControllerTests
Change-Id: Ie76d224710228a8654d4d57ee0c73bb9441ef28f
Diffstat (limited to 'apex')
-rw-r--r-- | apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java b/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java index 37b3c0431455..d532e20a0158 100644 --- a/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java +++ b/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java @@ -20,6 +20,7 @@ import static android.app.usage.UsageStatsManager.REASON_MAIN_DEFAULT; import static android.app.usage.UsageStatsManager.REASON_MAIN_FORCED_BY_USER; import static android.app.usage.UsageStatsManager.REASON_MAIN_MASK; import static android.app.usage.UsageStatsManager.REASON_MAIN_PREDICTED; +import static android.app.usage.UsageStatsManager.REASON_MAIN_TIMEOUT; import static android.app.usage.UsageStatsManager.REASON_MAIN_USAGE; import static android.app.usage.UsageStatsManager.REASON_SUB_MASK; import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_USER_INTERACTION; @@ -259,8 +260,10 @@ public class AppIdleHistory { int bucketingReason = REASON_MAIN_USAGE | usageReason; final boolean isUserUsage = isUserUsage(bucketingReason); - if (appUsageHistory.currentBucket == STANDBY_BUCKET_RESTRICTED && !isUserUsage) { - // Only user usage should bring an app out of the RESTRICTED bucket. + if (appUsageHistory.currentBucket == STANDBY_BUCKET_RESTRICTED && !isUserUsage + && (appUsageHistory.bucketingReason & REASON_MAIN_MASK) != REASON_MAIN_TIMEOUT) { + // Only user usage should bring an app out of the RESTRICTED bucket, unless the app + // just timed out into RESTRICTED. newBucket = STANDBY_BUCKET_RESTRICTED; bucketingReason = appUsageHistory.bucketingReason; } else { |