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.Logging;
|
||||||
import com.android.emailcommon.provider.Account;
|
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 com.google.common.annotations.VisibleForTesting;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -108,10 +110,21 @@ public class AccountReconciler {
|
|||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
if ((providerAccount.mFlags & Account.FLAGS_INCOMPLETE) != 0) {
|
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,
|
Log.w(Logging.LOG_TAG,
|
||||||
"Account reconciler noticed incomplete account; ignoring");
|
"Account reconciler noticed incomplete account; ignoring");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
needsReconciling = true;
|
needsReconciling = true;
|
||||||
if (performReconciliation) {
|
if (performReconciliation) {
|
||||||
|
Loading…
Reference in New Issue
Block a user