Update accounts backup when externally deleted
Fix the case in which an Email account is deleted in the Account Manager UI, and we delete the provider account, but we did not also update the backups. In some cases, the deleted account would be accidentally restored from the backups. Bug: 2414469 (internal) Bug: 2427663 (external)
This commit is contained in:
parent
75753107af
commit
26c95ddace
@ -1220,6 +1220,7 @@ public class SyncManager extends Service implements Runnable {
|
||||
android.accounts.Account[] accts =
|
||||
AccountManager.get(this).getAccountsByType(Eas.ACCOUNT_MANAGER_TYPE);
|
||||
List<Account> easAccounts = getAccountList();
|
||||
boolean accountsDeleted = false;
|
||||
for (Account easAccount: easAccounts) {
|
||||
String accountName = easAccount.mEmailAddress;
|
||||
boolean found = false;
|
||||
@ -1231,12 +1232,18 @@ public class SyncManager extends Service implements Runnable {
|
||||
}
|
||||
if (!found) {
|
||||
// This account has been deleted in the AccountManager!
|
||||
log("Account deleted in AccountManager; deleting from provider: " + accountName);
|
||||
alwaysLog("Account deleted in AccountManager; deleting from provider: " +
|
||||
accountName);
|
||||
// TODO This will orphan downloaded attachments; need to handle this
|
||||
mResolver.delete(ContentUris.withAppendedId(Account.CONTENT_URI, easAccount.mId),
|
||||
null, null);
|
||||
accountsDeleted = true;
|
||||
}
|
||||
}
|
||||
// If we changed the list of accounts, refresh the backup
|
||||
if (accountsDeleted) {
|
||||
AccountBackupRestore.backupAccounts(getContext());
|
||||
}
|
||||
}
|
||||
|
||||
private void releaseConnectivityLock(String reason) {
|
||||
|
Loading…
Reference in New Issue
Block a user