summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/SyncManager.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-10-11 11:00:21 -0700
committerJeff Sharkey <jsharkey@android.com>2012-10-11 11:00:28 -0700
commit8f55d112983aa922687de7e3581f73913c06e37a (patch)
tree74ad2ab5b47811aaddecd6676d22aba5dda6a0c2 /core/java/android/content/SyncManager.java
parente1f4ebf559f7ddbfe19ea9a1823a62f3d8b80d71 (diff)
downloadframeworks_base-8f55d112983aa922687de7e3581f73913c06e37a.zip
frameworks_base-8f55d112983aa922687de7e3581f73913c06e37a.tar.gz
frameworks_base-8f55d112983aa922687de7e3581f73913c06e37a.tar.bz2
Database cleanup needs to happen for all users.
Bug: 6970084 Change-Id: I9a6f1cbaf095b245ec9707a90c518256e0aa1f5f
Diffstat (limited to 'core/java/android/content/SyncManager.java')
-rw-r--r--core/java/android/content/SyncManager.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index e0e2995..1e4ad76 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -243,6 +243,10 @@ public class SyncManager {
public void updateRunningAccounts() {
mRunningAccounts = AccountManagerService.getSingleton().getRunningAccounts();
+ if (mBootCompleted) {
+ doDatabaseCleanup();
+ }
+
for (ActiveSyncContext currentSyncContext : mActiveSyncContexts) {
if (!containsAccountAndUser(mRunningAccounts,
currentSyncContext.mSyncOperation.account,
@@ -258,6 +262,13 @@ public class SyncManager {
sendCheckAlarmsMessage();
}
+ private void doDatabaseCleanup() {
+ for (UserInfo user : mUserManager.getUsers()) {
+ Account[] accountsForUser = AccountManagerService.getSingleton().getAccounts(user.id);
+ mSyncStorageEngine.doDatabaseCleanup(accountsForUser, user.id);
+ }
+ }
+
private BroadcastReceiver mConnectivityIntentReceiver =
new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
@@ -891,12 +902,10 @@ public class SyncManager {
updateRunningAccounts();
- final Account[] accounts = AccountManagerService.getSingleton().getAccounts(userId);
- mSyncStorageEngine.doDatabaseCleanup(accounts, userId);
-
mSyncQueue.addPendingOperations(userId);
// Schedule sync for any accounts under started user
+ final Account[] accounts = AccountManagerService.getSingleton().getAccounts(userId);
for (Account account : accounts) {
scheduleSync(account, userId, null, null, 0 /* no delay */,
true /* onlyThoseWithUnknownSyncableState */);
@@ -1619,6 +1628,8 @@ public class SyncManager {
public void onBootCompleted() {
mBootCompleted = true;
+ doDatabaseCleanup();
+
if (mReadyToRunLatch != null) {
mReadyToRunLatch.countDown();
}