Merge "Persist Standby Buckets after System defaults set"
diff --git a/services/usage/java/com/android/server/usage/AppIdleHistory.java b/services/usage/java/com/android/server/usage/AppIdleHistory.java
index bc54a5d..1e4861a 100644
--- a/services/usage/java/com/android/server/usage/AppIdleHistory.java
+++ b/services/usage/java/com/android/server/usage/AppIdleHistory.java
@@ -508,6 +508,16 @@
Integer.toString(userId)), APP_IDLE_FILENAME);
}
+
+ /**
+ * Check if App Idle File exists on disk
+ * @param userId
+ * @return true if file exists
+ */
+ public boolean userFileExists(int userId) {
+ return getUserFile(userId).exists();
+ }
+
private void readAppIdleTimes(int userId, ArrayMap<String, AppUsageHistory> userHistory) {
FileInputStream fis = null;
try {
diff --git a/services/usage/java/com/android/server/usage/AppStandbyController.java b/services/usage/java/com/android/server/usage/AppStandbyController.java
index ffafb6d..4b33e16 100644
--- a/services/usage/java/com/android/server/usage/AppStandbyController.java
+++ b/services/usage/java/com/android/server/usage/AppStandbyController.java
@@ -377,7 +377,12 @@
mSystemServicesReady = true;
- if (mPendingInitializeDefaults) {
+ boolean userFileExists;
+ synchronized (mAppIdleLock) {
+ userFileExists = mAppIdleHistory.userFileExists(UserHandle.USER_SYSTEM);
+ }
+
+ if (mPendingInitializeDefaults || !userFileExists) {
initializeDefaultsForSystemApps(UserHandle.USER_SYSTEM);
}
@@ -1435,6 +1440,8 @@
elapsedRealtime + mSystemUpdateUsageTimeoutMillis);
}
}
+ // Immediately persist defaults to disk
+ mAppIdleHistory.writeAppIdleTimes(userId);
}
}