Add another test for "incomplete" accounts
* We have been erroneously marking some accounts "incomplete" and this can cause reconciliation to fail after deleting the accounts in Settings. * Still need to investigate why the flag isn't cleared at times... Bug: 7148506 Bug: 7166598 Change-Id: I0059580a6e4b6a5c54c09b8409c4358ff707ff77
This commit is contained in:
parent
733a11467c
commit
78b8c04898
@ -26,6 +26,8 @@ import android.util.Log;
|
||||
|
||||
import com.android.emailcommon.Logging;
|
||||
import com.android.emailcommon.provider.Account;
|
||||
import com.android.emailcommon.provider.EmailContent;
|
||||
import com.android.emailcommon.provider.Mailbox;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -108,10 +110,21 @@ public class AccountReconciler {
|
||||
}
|
||||
if (!found) {
|
||||
if ((providerAccount.mFlags & Account.FLAGS_INCOMPLETE) != 0) {
|
||||
// Do another test before giving up; an incomplete account shouldn't have
|
||||
// any mailboxes (the incomplete flag is used to prevent reconciliation
|
||||
// between the time the EP account is created and when the AM account is
|
||||
// asynchronously created)
|
||||
if (EmailContent.count(providerContext, Mailbox.CONTENT_URI,
|
||||
Mailbox.ACCOUNT_KEY + "=?",
|
||||
new String[] { Long.toString(providerAccount.mId) } ) > 0) {
|
||||
Log.w(Logging.LOG_TAG,
|
||||
"Account reconciler found wrongly incomplete account");
|
||||
} else {
|
||||
Log.w(Logging.LOG_TAG,
|
||||
"Account reconciler noticed incomplete account; ignoring");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
needsReconciling = true;
|
||||
if (performReconciliation) {
|
||||
|
Loading…
Reference in New Issue
Block a user