diff options
| author | Amith Yamasani <yamasani@google.com> | 2012-03-27 11:24:54 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-03-27 11:24:54 -0700 |
| commit | 8b5bce8d9060c1b68b5605da8f6978d8fb5ea1d3 (patch) | |
| tree | 8d55688177077766d695140c3bce18e2c38720c8 /core/java/android/content/SyncManager.java | |
| parent | 79763f3ce7495dfb3866989a05b64a5eeae50860 (diff) | |
| parent | 135936072b24b090fb63940aea41b408d855a4f3 (diff) | |
| download | frameworks_base-8b5bce8d9060c1b68b5605da8f6978d8fb5ea1d3.zip frameworks_base-8b5bce8d9060c1b68b5605da8f6978d8fb5ea1d3.tar.gz frameworks_base-8b5bce8d9060c1b68b5605da8f6978d8fb5ea1d3.tar.bz2 | |
Merge "User management and switching"
Diffstat (limited to 'core/java/android/content/SyncManager.java')
| -rw-r--r-- | core/java/android/content/SyncManager.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index b7dfe92..06dfe90 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -326,6 +326,13 @@ public class SyncManager implements OnAccountsUpdateListener { } }; + private BroadcastReceiver mUserIntentReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + onUserRemoved(intent); + } + }; + private static final String ACTION_SYNC_ALARM = "android.content.syncmanager.SYNC_ALARM"; private final SyncHandler mSyncHandler; @@ -420,6 +427,10 @@ public class SyncManager implements OnAccountsUpdateListener { intentFilter.setPriority(100); context.registerReceiver(mShutdownIntentReceiver, intentFilter); + intentFilter = new IntentFilter(); + intentFilter.addAction(Intent.ACTION_USER_REMOVED); + mContext.registerReceiver(mUserIntentReceiver, intentFilter); + if (!factoryTest) { mNotificationMgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); @@ -905,6 +916,18 @@ public class SyncManager implements OnAccountsUpdateListener { } } + private void onUserRemoved(Intent intent) { + int userId = intent.getIntExtra(Intent.EXTRA_USERID, -1); + if (userId == -1) return; + + // Clean up the storage engine database + mSyncStorageEngine.doDatabaseCleanup(new Account[0], userId); + onAccountsUpdated(null); + synchronized (mSyncQueue) { + mSyncQueue.removeUser(userId); + } + } + /** * @hide */ |
