diff options
| author | Jeff Sharkey <jsharkey@android.com> | 2012-10-11 11:00:21 -0700 |
|---|---|---|
| committer | Jeff Sharkey <jsharkey@android.com> | 2012-10-11 11:00:28 -0700 |
| commit | 8f55d112983aa922687de7e3581f73913c06e37a (patch) | |
| tree | 74ad2ab5b47811aaddecd6676d22aba5dda6a0c2 /core/java/android/content/SyncManager.java | |
| parent | e1f4ebf559f7ddbfe19ea9a1823a62f3d8b80d71 (diff) | |
| download | frameworks_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.java | 17 |
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(); } |
