diff --git a/services/core/java/com/android/server/apphibernation/AppHibernationService.java b/services/core/java/com/android/server/apphibernation/AppHibernationService.java index 5a99e0e77a6ce..e8b3a24b751d8 100644 --- a/services/core/java/com/android/server/apphibernation/AppHibernationService.java +++ b/services/core/java/com/android/server/apphibernation/AppHibernationService.java @@ -362,6 +362,7 @@ public final class AppHibernationService extends SystemService { UserLevelState pkgState) { Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "unhibernatePackage"); pkgState.hibernated = false; + pkgState.lastUnhibernatedMs = System.currentTimeMillis(); Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } @@ -383,6 +384,7 @@ public final class AppHibernationService extends SystemService { private void unhibernatePackageGlobally(@NonNull String packageName, GlobalLevelState state) { Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "unhibernatePackageGlobally"); state.hibernated = false; + state.lastUnhibernatedMs = System.currentTimeMillis(); Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } diff --git a/services/core/java/com/android/server/apphibernation/GlobalLevelState.java b/services/core/java/com/android/server/apphibernation/GlobalLevelState.java index baa84b7070ff3..f4433a7fa5f63 100644 --- a/services/core/java/com/android/server/apphibernation/GlobalLevelState.java +++ b/services/core/java/com/android/server/apphibernation/GlobalLevelState.java @@ -16,18 +16,28 @@ package com.android.server.apphibernation; +import android.annotation.CurrentTimeMillisLong; + +import java.text.SimpleDateFormat; + /** * Data class that contains global hibernation state for a package. */ final class GlobalLevelState { + // Only show day for privacy purposes. + private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); + public String packageName; public boolean hibernated; + @CurrentTimeMillisLong + public long lastUnhibernatedMs; @Override public String toString() { return "GlobalLevelState{" + "packageName='" + packageName + '\'' - + ", hibernated=" + hibernated + + ", hibernated=" + hibernated + '\'' + + ", lastUnhibernated=" + DATE_FORMAT.format(lastUnhibernatedMs) + '}'; } } diff --git a/services/core/java/com/android/server/apphibernation/UserLevelState.java b/services/core/java/com/android/server/apphibernation/UserLevelState.java index 272d3d1122a14..b75b19d8df744 100644 --- a/services/core/java/com/android/server/apphibernation/UserLevelState.java +++ b/services/core/java/com/android/server/apphibernation/UserLevelState.java @@ -16,18 +16,27 @@ package com.android.server.apphibernation; +import android.annotation.CurrentTimeMillisLong; + +import java.text.SimpleDateFormat; + /** * Data class that contains hibernation state info of a package for a user. */ final class UserLevelState { + private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public String packageName; public boolean hibernated; + @CurrentTimeMillisLong + public long lastUnhibernatedMs; @Override public String toString() { return "UserLevelState{" + "packageName='" + packageName + '\'' - + ", hibernated=" + hibernated + + ", hibernated=" + hibernated + '\'' + + ", lastUnhibernated=" + DATE_FORMAT.format(lastUnhibernatedMs) + '}'; } }