Implemented backup and restore for account sync settings.
Bug: 18506992
Parent Bug: 17967106
Change-Id: Iecf5ce3a24ac5f12192e65aa61f1560bc76d75a8
diff --git a/services/core/java/com/android/server/content/SyncStorageEngine.java b/services/core/java/com/android/server/content/SyncStorageEngine.java
index 0d5f240..f154c73 100644
--- a/services/core/java/com/android/server/content/SyncStorageEngine.java
+++ b/services/core/java/com/android/server/content/SyncStorageEngine.java
@@ -18,6 +18,7 @@
import android.accounts.Account;
import android.accounts.AccountAndUser;
+import android.app.backup.BackupManager;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -670,6 +671,7 @@
new Bundle());
}
reportChange(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS);
+ queueBackup();
}
public int getIsSyncable(Account account, int userId, String providerName) {
@@ -1035,6 +1037,7 @@
}
reportChange(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS);
mContext.sendBroadcast(ContentResolver.ACTION_SYNC_CONN_STATUS_CHANGED);
+ queueBackup();
}
public boolean getMasterSyncAutomatically(int userId) {
@@ -2810,4 +2813,12 @@
.append(")\n");
}
}
+
+ /**
+ * Let the BackupManager know that account sync settings have changed. This will trigger
+ * {@link com.android.server.backup.SystemBackupAgent} to run.
+ */
+ public void queueBackup() {
+ BackupManager.dataChanged("android");
+ }
}