Support sync status
Change-Id: I104ece356d664204340eb635bd51313f49c3ffe1
diff --git a/src/com/android/exchange/ExchangeService.java b/src/com/android/exchange/ExchangeService.java
index a1d4139..8bfb191 100644
--- a/src/com/android/exchange/ExchangeService.java
+++ b/src/com/android/exchange/ExchangeService.java
@@ -1670,9 +1670,11 @@
}
private void requestSync(Mailbox m, int reason, Request req) {
+ int syncStatus = EmailContent.SYNC_STATUS_BACKGROUND;
// Don't sync if there's no connectivity
if (sConnectivityHold || (m == null) || sStop) {
if (reason >= SYNC_CALLBACK_START) {
+ syncStatus = EmailContent.SYNC_STATUS_USER;
try {
sCallbackProxy.syncMailboxStatus(m.mId, EmailServiceStatus.CONNECTION_ERROR, 0);
} catch (RemoteException e) {
@@ -1694,11 +1696,18 @@
service.addRequest(req);
}
startServiceThread(service);
+ setMailboxSyncStatus(m.mId, syncStatus);
}
}
}
}
+ private void setMailboxSyncStatus(long id, int status) {
+ ContentValues values = new ContentValues();
+ values.put(Mailbox.UI_SYNC_STATUS, status);
+ mResolver.update(ContentUris.withAppendedId(Mailbox.CONTENT_URI, id), values, null, null);
+ }
+
private void stopServiceThreads() {
synchronized (sSyncLock) {
ArrayList<Long> toStop = new ArrayList<Long>();
@@ -2540,6 +2549,7 @@
return;
}
exchangeService.releaseMailbox(mailboxId);
+ exchangeService.setMailboxSyncStatus(mailboxId, EmailContent.SYNC_STATUS_NONE);
ConcurrentHashMap<Long, SyncError> errorMap = exchangeService.mSyncErrorMap;
SyncError syncError = errorMap.get(mailboxId);