summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/apphibernation/AppHibernationService.java14
-rw-r--r--services/core/java/com/android/server/wm/ActivityMetricsLogger.java5
-rw-r--r--services/tests/servicestests/src/com/android/server/apphibernation/AppHibernationServiceTest.java2
3 files changed, 12 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/apphibernation/AppHibernationService.java b/services/core/java/com/android/server/apphibernation/AppHibernationService.java
index 540589bd3bfd..fd829fae5759 100644
--- a/services/core/java/com/android/server/apphibernation/AppHibernationService.java
+++ b/services/core/java/com/android/server/apphibernation/AppHibernationService.java
@@ -109,7 +109,7 @@ public final class AppHibernationService extends SystemService {
private final boolean mOatArtifactDeletionEnabled;
@VisibleForTesting
- boolean mIsServiceEnabled;
+ static boolean sIsServiceEnabled;
/**
* Initializes the system service.
@@ -165,7 +165,7 @@ public final class AppHibernationService extends SystemService {
});
}
if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
- mIsServiceEnabled = isAppHibernationEnabled();
+ sIsServiceEnabled = isDeviceConfigAppHibernationEnabled();
DeviceConfig.addOnPropertiesChangedListener(
NAMESPACE_APP_HIBERNATION,
ActivityThread.currentApplication().getMainExecutor(),
@@ -536,7 +536,7 @@ public final class AppHibernationService extends SystemService {
private void onDeviceConfigChanged(Properties properties) {
for (String key : properties.getKeyset()) {
if (TextUtils.equals(KEY_APP_HIBERNATION_ENABLED, key)) {
- mIsServiceEnabled = isAppHibernationEnabled();
+ sIsServiceEnabled = isDeviceConfigAppHibernationEnabled();
break;
}
}
@@ -574,10 +574,10 @@ public final class AppHibernationService extends SystemService {
}
private boolean checkHibernationEnabled(String methodName) {
- if (!mIsServiceEnabled) {
+ if (!sIsServiceEnabled) {
Slog.w(TAG, String.format("Attempted to call %s on unsupported device.", methodName));
}
- return mIsServiceEnabled;
+ return sIsServiceEnabled;
}
private void dump(PrintWriter pw) {
@@ -725,6 +725,10 @@ public final class AppHibernationService extends SystemService {
* @return true if enabled, false otherwise
*/
public static boolean isAppHibernationEnabled() {
+ return sIsServiceEnabled;
+ }
+
+ private static boolean isDeviceConfigAppHibernationEnabled() {
return DeviceConfig.getBoolean(
NAMESPACE_APP_HIBERNATION,
KEY_APP_HIBERNATION_ENABLED,
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
index f02107287123..561f1ad75c12 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
@@ -167,7 +167,6 @@ class ActivityMetricsLogger {
@VisibleForTesting static final int LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE = 512;
private final ArrayMap<String, Boolean> mLastHibernationStates = new ArrayMap<>();
private AppHibernationManagerInternal mAppHibernationManagerInternal;
- private boolean mIsAppHibernationEnabled;
/**
* The information created when an intent is incoming but we do not yet know whether it will be
@@ -796,8 +795,8 @@ class ActivityMetricsLogger {
@Nullable
private AppHibernationManagerInternal getAppHibernationManagerInternal() {
+ if (!AppHibernationService.isAppHibernationEnabled()) return null;
if (mAppHibernationManagerInternal == null) {
- mIsAppHibernationEnabled = AppHibernationService.isAppHibernationEnabled();
mAppHibernationManagerInternal =
LocalServices.getService(AppHibernationManagerInternal.class);
}
@@ -810,7 +809,7 @@ class ActivityMetricsLogger {
*/
void notifyBeforePackageUnstopped(@NonNull String packageName) {
final AppHibernationManagerInternal ahmInternal = getAppHibernationManagerInternal();
- if (ahmInternal != null && mIsAppHibernationEnabled) {
+ if (ahmInternal != null) {
mLastHibernationStates.put(packageName, ahmInternal.isHibernatingGlobally(packageName));
}
}
diff --git a/services/tests/servicestests/src/com/android/server/apphibernation/AppHibernationServiceTest.java b/services/tests/servicestests/src/com/android/server/apphibernation/AppHibernationServiceTest.java
index 9a430e4a0f86..f280aea92851 100644
--- a/services/tests/servicestests/src/com/android/server/apphibernation/AppHibernationServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/apphibernation/AppHibernationServiceTest.java
@@ -123,7 +123,7 @@ public final class AppHibernationServiceTest {
doReturn(true).when(mUserManager).isUserUnlockingOrUnlocked(USER_ID_1);
mAppHibernationService.onUserUnlocking(new SystemService.TargetUser(userInfo));
- mAppHibernationService.mIsServiceEnabled = true;
+ mAppHibernationService.sIsServiceEnabled = true;
}
@Test