Fix #2300147 (mistakenly reporting connection error)
* When a mailbox sync is stopped intentionally (for example, if account settings change), we report a connection error by mistake * Handle this case properly, reporting "success" (i.e. no error state) * Remove obsolete comment Change-Id: I9bec1244267cd2240c369b9b7f905948381a0f91
This commit is contained in:
parent
dbd49f026f
commit
d3da948c31
@ -1138,19 +1138,23 @@ public class EasSyncService extends AbstractSyncService {
|
||||
} catch (Exception e) {
|
||||
userLog("Uncaught exception in EasSyncService", e);
|
||||
} finally {
|
||||
int status;
|
||||
|
||||
if (!mStop) {
|
||||
userLog("Sync finished");
|
||||
SyncManager.done(this);
|
||||
// If this is the account mailbox, wake up SyncManager
|
||||
// Because this box has a "push" interval, it will be restarted immediately
|
||||
// which will cause the folder list to be reloaded...
|
||||
int status;
|
||||
switch (mExitStatus) {
|
||||
case EXIT_IO_ERROR:
|
||||
status = EmailServiceStatus.CONNECTION_ERROR;
|
||||
break;
|
||||
case EXIT_DONE:
|
||||
status = EmailServiceStatus.SUCCESS;
|
||||
ContentValues cv = new ContentValues();
|
||||
cv.put(Mailbox.SYNC_TIME, System.currentTimeMillis());
|
||||
String s = "S" + mSyncReason + ':' + status + ':' + mChangeCount;
|
||||
cv.put(Mailbox.SYNC_STATUS, s);
|
||||
mContentResolver.update(ContentUris.withAppendedId(Mailbox.CONTENT_URI,
|
||||
mMailboxId), cv, null, null);
|
||||
break;
|
||||
case EXIT_LOGIN_FAILURE:
|
||||
status = EmailServiceStatus.LOGIN_FAILED;
|
||||
@ -1160,24 +1164,15 @@ public class EasSyncService extends AbstractSyncService {
|
||||
errorLog("Sync ended due to an exception.");
|
||||
break;
|
||||
}
|
||||
|
||||
try {
|
||||
SyncManager.callback().syncMailboxStatus(mMailboxId, status, 0);
|
||||
} catch (RemoteException e1) {
|
||||
// Don't care if this fails
|
||||
}
|
||||
|
||||
if (mExitStatus == EXIT_DONE) {
|
||||
// Save the sync time and status
|
||||
ContentValues cv = new ContentValues();
|
||||
cv.put(Mailbox.SYNC_TIME, System.currentTimeMillis());
|
||||
String s = "S" + mSyncReason + ':' + status + ':' + mChangeCount;
|
||||
cv.put(Mailbox.SYNC_STATUS, s);
|
||||
mContentResolver.update(ContentUris.withAppendedId(Mailbox.CONTENT_URI,
|
||||
mMailboxId), cv, null, null);
|
||||
}
|
||||
} else {
|
||||
userLog("Stopped sync finished.");
|
||||
status = EmailServiceStatus.SUCCESS;
|
||||
}
|
||||
|
||||
try {
|
||||
SyncManager.callback().syncMailboxStatus(mMailboxId, status, 0);
|
||||
} catch (RemoteException e1) {
|
||||
// Don't care if this fails
|
||||
}
|
||||
|
||||
// Make sure SyncManager knows about this
|
||||
|
Loading…
Reference in New Issue
Block a user