Improving location manager log of last use time
Bug: 121241880
Test: adb shell dumpsys location on Pixel 2
Change-Id: I00b2105f1b864850c8bcf80c1717d88a8f4de7ec
diff --git a/services/core/java/com/android/server/location/LocationRequestStatistics.java b/services/core/java/com/android/server/location/LocationRequestStatistics.java
index b7934d9..b7ccb26 100644
--- a/services/core/java/com/android/server/location/LocationRequestStatistics.java
+++ b/services/core/java/com/android/server/location/LocationRequestStatistics.java
@@ -123,6 +123,9 @@
// in foreground.
private long mForegroundDurationMs;
+ // Time when package last went dormant (stopped requesting location)
+ private long mLastStopElapsedTimeMs;
+
private PackageStatistics() {
mInitialElapsedTimeMs = SystemClock.elapsedRealtime();
mNumActiveRequests = 0;
@@ -131,6 +134,7 @@
mSlowestIntervalMs = 0;
mForegroundDurationMs = 0;
mLastForegroundElapsedTimeMs = 0;
+ mLastStopElapsedTimeMs = 0;
}
private void startRequesting(long intervalMs) {
@@ -167,8 +171,8 @@
mNumActiveRequests--;
if (mNumActiveRequests == 0) {
- long lastDurationMs
- = SystemClock.elapsedRealtime() - mLastActivitationElapsedTimeMs;
+ mLastStopElapsedTimeMs = SystemClock.elapsedRealtime();
+ long lastDurationMs = mLastStopElapsedTimeMs - mLastActivitationElapsedTimeMs;
mTotalDurationMs += lastDurationMs;
updateForeground(false);
}
@@ -206,6 +210,13 @@
}
/**
+ * Returns the time since the last request stopped in ms.
+ */
+ public long getTimeSinceLastRequestStoppedMs() {
+ return SystemClock.elapsedRealtime() - mLastStopElapsedTimeMs;
+ }
+
+ /**
* Returns the fastest interval that has been tracked.
*/
public long getFastestIntervalMs() {
@@ -244,6 +255,10 @@
.append(" minutes");
if (isActive()) {
s.append(": Currently active");
+ } else {
+ s.append(": Last active ")
+ .append((getTimeSinceLastRequestStoppedMs() / 1000) / 60)
+ .append(" minutes ago");
}
return s.toString();
}