Make dataChangeCount part of BackupManagerServiceState.

PiperOrigin-RevId: 361537872
diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowBackupManagerTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowBackupManagerTest.java
index 473c043..b7c8cfa 100644
--- a/robolectric/src/test/java/org/robolectric/shadows/ShadowBackupManagerTest.java
+++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowBackupManagerTest.java
@@ -61,6 +61,10 @@
       assertThat(shadowOf(backupManager).isDataChanged()).isTrue();
       assertThat(shadowOf(backupManager).getDataChangedCount()).isEqualTo(i);
     }
+
+    ShadowBackupManager.reset();
+    assertThat(shadowOf(backupManager).isDataChanged()).isFalse();
+    assertThat(shadowOf(backupManager).getDataChangedCount()).isEqualTo(0);
   }
 
   @Test
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBackupManager.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBackupManager.java
index 45567fa..42195f5 100644
--- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBackupManager.java
+++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBackupManager.java
@@ -42,7 +42,6 @@
   private static BackupManagerServiceState serviceState = new BackupManagerServiceState();
 
   @RealObject private BackupManager realBackupManager;
-  private int dataChangedCount;
   private Context context;
 
   @Resetter
@@ -59,17 +58,17 @@
 
   @Implementation
   protected void dataChanged() {
-    dataChangedCount++;
+    serviceState.dataChangedCount.merge(context.getPackageName(), 1, Integer::sum);
   }
 
   /** Returns whether {@link #dataChanged()} was called. */
   public boolean isDataChanged() {
-    return dataChangedCount > 0;
+    return serviceState.dataChangedCount.containsKey(context.getPackageName());
   }
 
   /** Returns number of times {@link #dataChanged()} was called. */
   public int getDataChangedCount() {
-    return dataChangedCount;
+    return serviceState.dataChangedCount.getOrDefault(context.getPackageName(), 0);
   }
 
   @Implementation(minSdk = LOLLIPOP)
@@ -161,12 +160,12 @@
     }
 
     // Override method for SDK <= 28
-    public int restoreSome(long token, IRestoreObserver observer, IBackupManagerMonitor monitor,
-        String[] packages) throws RemoteException {
+    public int restoreSome(
+        long token, IRestoreObserver observer, IBackupManagerMonitor monitor, String[] packages)
+        throws RemoteException {
       return restorePackages(token, observer, packages, monitor);
     }
 
-
     public int restorePackages(
         long token, IRestoreObserver observer, String[] packages, IBackupManagerMonitor monitor)
         throws RemoteException {
@@ -235,6 +234,7 @@
   private static class BackupManagerServiceState {
     boolean backupEnabled = true;
     long lastRestoreToken = 0L;
+    final Map<String, Integer> dataChangedCount = new HashMap<>();
     final Map<Long, List<String>> restoreData = new HashMap<>();
     final Map<String, Long> restoredPackages = new HashMap<>();
   }