Handle case of moreAvailable true with no changes (#2189704)
* An Exchange log from Moto has shown sync behavior in which moreAvailable is set to true even though there are no changes in the sync response (i.e. the SyncKey is unchanged) * This leads to long-lived looping which impacts battery life * The fix is to recognize the behavior and prevent looping by setting moreAvailable = false Change-Id: Idef455f3e1170caf4002542ca432d128b3a19e56
This commit is contained in:
parent
3afd66cda8
commit
288bb26ab8
@ -140,7 +140,10 @@ public abstract class AbstractSyncParser extends Parser {
|
|||||||
mAdapter.setSyncKey(newKey, true);
|
mAdapter.setSyncKey(newKey, true);
|
||||||
cv.put(MailboxColumns.SYNC_KEY, newKey);
|
cv.put(MailboxColumns.SYNC_KEY, newKey);
|
||||||
mailboxUpdated = true;
|
mailboxUpdated = true;
|
||||||
}
|
} else if (moreAvailable) {
|
||||||
|
userLog("!! SyncKey hasn't changed, setting moreAvailable = false");
|
||||||
|
moreAvailable = false;
|
||||||
|
}
|
||||||
// If we were pushing (i.e. auto-start), now we'll become ping-triggered
|
// If we were pushing (i.e. auto-start), now we'll become ping-triggered
|
||||||
if (mMailbox.mSyncInterval == Mailbox.CHECK_INTERVAL_PUSH) {
|
if (mMailbox.mSyncInterval == Mailbox.CHECK_INTERVAL_PUSH) {
|
||||||
mMailbox.mSyncInterval = Mailbox.CHECK_INTERVAL_PING;
|
mMailbox.mSyncInterval = Mailbox.CHECK_INTERVAL_PING;
|
||||||
|
Loading…
Reference in New Issue
Block a user