b/17193866. Update policies when we reconcile.
In the situation where we have deleted an Account from our provider reconciliation will delete the associated amAccount. Unfortunately, there isn't any sort of side effect code path that considers that policies may need to be updated when this Account is deleted. This CL injects that logic. Change-Id: I27c7a35efbdca4be274a9d3d8f7ce698f9204092
This commit is contained in:
parent
8c65e50bfe
commit
ce1faa889d
@ -31,6 +31,7 @@ import android.text.TextUtils;
|
||||
|
||||
import com.android.email.NotificationController;
|
||||
import com.android.email.R;
|
||||
import com.android.email.SecurityPolicy;
|
||||
import com.android.email.service.EmailServiceUtils;
|
||||
import com.android.email.service.EmailServiceUtils.EmailServiceInfo;
|
||||
import com.android.emailcommon.Logging;
|
||||
@ -40,7 +41,6 @@ import com.android.mail.utils.LogUtils;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
@ -212,6 +212,7 @@ public class AccountReconciler {
|
||||
}
|
||||
// Now, look through AccountManager accounts to make sure we have a corresponding cached EAS
|
||||
// account from EmailProvider
|
||||
boolean needsPolicyUpdate = false;
|
||||
for (final android.accounts.Account accountManagerAccount : accountManagerAccounts) {
|
||||
final String accountManagerAccountName = accountManagerAccount.name;
|
||||
if (!hasEpAccount(emailProviderAccounts, accountManagerAccountName)) {
|
||||
@ -236,6 +237,9 @@ public class AccountReconciler {
|
||||
} catch (IOException e) {
|
||||
LogUtils.w(Logging.LOG_TAG, e.toString());
|
||||
}
|
||||
// Just set a flag that our policies need to be updated with device
|
||||
// So we can do the update, one time, at a later point in time.
|
||||
needsPolicyUpdate = true;
|
||||
}
|
||||
} else {
|
||||
// Fix up the Calendar and Contacts syncing. It used to be possible for IMAP and
|
||||
@ -256,6 +260,12 @@ public class AccountReconciler {
|
||||
}
|
||||
}
|
||||
|
||||
if (needsPolicyUpdate) {
|
||||
// We have removed accounts from the AccountManager, let's make sure that
|
||||
// our policies are up to date.
|
||||
SecurityPolicy.getInstance(context).policiesUpdated();
|
||||
}
|
||||
|
||||
final String composeActivityName =
|
||||
context.getString(R.string.reconciliation_compose_activity_name);
|
||||
if (!TextUtils.isEmpty(composeActivityName)) {
|
||||
|
Loading…
Reference in New Issue
Block a user