summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java19
-rw-r--r--services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java1
2 files changed, 20 insertions, 0 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index 6aea92fbe730..b2b55765f178 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -77,6 +77,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageItemInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
+import android.content.pm.UserInfo;
import android.net.MacAddress;
import android.net.NetworkPolicyManager;
import android.os.Binder;
@@ -1359,6 +1360,17 @@ public class CompanionDeviceManagerService extends SystemService
}
/**
+ * This method must only be called from {@link CompanionDeviceShellCommand} for testing
+ * purposes only!
+ */
+ void persistState() {
+ mUserPersistenceHandler.clearMessages();
+ for (UserInfo user : mUserManager.getAliveUsers()) {
+ persistStateForUser(user.id);
+ }
+ }
+
+ /**
* This class is dedicated to handling requests to persist user state.
*/
@SuppressLint("HandlerLeak")
@@ -1376,6 +1388,13 @@ public class CompanionDeviceManagerService extends SystemService
}
}
+ /**
+ * Clears *ALL* outstanding persist requests for *ALL* users.
+ */
+ synchronized void clearMessages() {
+ removeCallbacksAndMessages(null);
+ }
+
@Override
public void handleMessage(@NonNull Message msg) {
final int userId = msg.what;
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java b/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java
index 5f46d5c4c4bf..9b2bd82fcfed 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java
@@ -83,6 +83,7 @@ class CompanionDeviceShellCommand extends android.os.ShellCommand {
}
break;
case "clear-association-memory-cache": {
+ mService.persistState();
mService.loadAssociationsFromDisk();
}
break;