summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-03-27 19:41:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-03-27 19:41:11 +0000
commit005984015c54064daf3db0018fbbafcc04d5e9ff (patch)
tree334684f98c8151b59ca5b53d9e0aadecbf02109b
parent5da81d68c8db956c9ca0e83ef97d759c41cdd7e0 (diff)
parentbfbe71e1044fa3d49834bf25a34c3d8b3b4bf7b8 (diff)
Merge "Minor fixes to IntervalStats"
-rw-r--r--core/java/android/app/usage/EventList.java14
-rw-r--r--services/usage/java/com/android/server/usage/IntervalStats.java16
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsDatabase.java3
-rw-r--r--services/usage/java/com/android/server/usage/UserUsageStatsService.java2
4 files changed, 28 insertions, 7 deletions
diff --git a/core/java/android/app/usage/EventList.java b/core/java/android/app/usage/EventList.java
index aaae57e526a0..8c0340585573 100644
--- a/core/java/android/app/usage/EventList.java
+++ b/core/java/android/app/usage/EventList.java
@@ -103,4 +103,18 @@ public class EventList {
}
return result;
}
+
+ /**
+ * Merge the {@link UsageEvents.Event events} in the given {@link EventList list} into this
+ * list while keeping the list sorted based on the event {@link
+ * UsageEvents.Event#mTimeStamp timestamps}.
+ *
+ * @param events The event list to merge
+ */
+ public void merge(EventList events) {
+ final int size = events.size();
+ for (int i = 0; i < size; i++) {
+ insert(events.get(i));
+ }
+ }
}
diff --git a/services/usage/java/com/android/server/usage/IntervalStats.java b/services/usage/java/com/android/server/usage/IntervalStats.java
index 8feed7fdb785..a783a4007da1 100644
--- a/services/usage/java/com/android/server/usage/IntervalStats.java
+++ b/services/usage/java/com/android/server/usage/IntervalStats.java
@@ -66,7 +66,7 @@ public class IntervalStats {
public final ArrayMap<String, UsageStats> packageStats = new ArrayMap<>();
public final ArrayMap<Configuration, ConfigurationStats> configurations = new ArrayMap<>();
public Configuration activeConfiguration;
- public EventList events = new EventList();
+ public final EventList events = new EventList();
// A string cache. This is important as when we're parsing XML files, we don't want to
// keep hundreds of strings that have the same contents. We will read the string
@@ -82,7 +82,7 @@ public class IntervalStats {
public void commitTime(long timeStamp) {
if (curStartTime != 0) {
- duration += timeStamp - duration;
+ duration += timeStamp - curStartTime;
curStartTime = 0;
}
}
@@ -305,7 +305,9 @@ public class IntervalStats {
UsageStats usageStats = getOrCreateUsageStats(packageName);
usageStats.update(className, timeStamp, eventType, instanceId);
}
- endTime = timeStamp;
+ if (timeStamp > endTime) {
+ endTime = timeStamp;
+ }
}
/**
@@ -328,6 +330,9 @@ public class IntervalStats {
event.mNotificationChannelId = getCachedStringRef(event.mNotificationChannelId);
}
events.insert(event);
+ if (event.mTimeStamp > endTime) {
+ endTime = event.mTimeStamp;
+ }
}
void updateChooserCounts(String packageName, String category, String action) {
@@ -360,8 +365,9 @@ public class IntervalStats {
configStats.mActivationCount += 1;
activeConfiguration = configStats.mConfiguration;
}
-
- endTime = timeStamp;
+ if (timeStamp > endTime) {
+ endTime = timeStamp;
+ }
}
void incrementAppLaunchCount(String packageName) {
diff --git a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
index 485a79d63862..c55bb3cf0ffe 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
@@ -1166,7 +1166,8 @@ public class UsageStatsDatabase {
if (beingRestored == null) return null;
beingRestored.activeConfiguration = onDevice.activeConfiguration;
beingRestored.configurations.putAll(onDevice.configurations);
- beingRestored.events = onDevice.events;
+ beingRestored.events.clear();
+ beingRestored.events.merge(onDevice.events);
return beingRestored;
}
diff --git a/services/usage/java/com/android/server/usage/UserUsageStatsService.java b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
index 9498e161ff61..26bfcc944400 100644
--- a/services/usage/java/com/android/server/usage/UserUsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
@@ -334,7 +334,7 @@ class UserUsageStatsService {
final IntervalStats diskStats = mDatabase.getLatestUsageStats(
INTERVAL_DAILY);
StringBuilder sb = new StringBuilder(256);
- sb.append("Last 24 hours of UsageStats missing! timeRange : ");
+ sb.append("Recent UsageStats missing! timeRange : ");
sb.append(beginTime);
sb.append(", ");
sb.append(endTime);