Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e210c998 authored by Akshay Thakker's avatar Akshay Thakker Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Fix for syncs being dropped when appIdle is on" into mnc-dr-dev

parents d201f486 a42a8926
Loading
Loading
Loading
Loading
+22 −19
Original line number Diff line number Diff line
@@ -2604,24 +2604,6 @@ public class SyncManager {
                        }
                        continue;
                    }
                    if (!isOperationValidLocked(op)) {
                        operationIterator.remove();
                        mSyncStorageEngine.deleteFromPending(op.pendingOperation);
                        continue;
                    }
                    // If the next run time is in the future, even given the flexible scheduling,
                    // return the time.
                    if (op.effectiveRunTime - op.flexTime > now) {
                        if (nextReadyToRunTime > op.effectiveRunTime) {
                            nextReadyToRunTime = op.effectiveRunTime;
                        }
                        if (isLoggable) {
                            Log.v(TAG, "    Not running sync operation: Sync too far in future."
                                    + "effective: " + op.effectiveRunTime + " flex: " + op.flexTime
                                    + " now: " + now);
                        }
                        continue;
                    }
                    String packageName = getPackageName(op.target);
                    ApplicationInfo ai = null;
                    if (packageName != null) {
@@ -2630,6 +2612,9 @@ public class SyncManager {
                                    PackageManager.GET_UNINSTALLED_PACKAGES
                                            | PackageManager.GET_DISABLED_COMPONENTS);
                        } catch (NameNotFoundException e) {
                            operationIterator.remove();
                            mSyncStorageEngine.deleteFromPending(op.pendingOperation);
                            continue;
                        }
                    }
                    // If app is considered idle, then skip for now and backoff
@@ -2644,6 +2629,24 @@ public class SyncManager {
                    } else {
                        op.appIdle = false;
                    }
                    if (!isOperationValidLocked(op)) {
                        operationIterator.remove();
                        mSyncStorageEngine.deleteFromPending(op.pendingOperation);
                        continue;
                    }
                    // If the next run time is in the future, even given the flexible scheduling,
                    // return the time.
                    if (op.effectiveRunTime - op.flexTime > now) {
                        if (nextReadyToRunTime > op.effectiveRunTime) {
                            nextReadyToRunTime = op.effectiveRunTime;
                        }
                        if (isLoggable) {
                            Log.v(TAG, "    Not running sync operation: Sync too far in future."
                                    + "effective: " + op.effectiveRunTime + " flex: " + op.flexTime
                                    + " now: " + now);
                        }
                        continue;
                    }
                    // Add this sync to be run.
                    operations.add(op);
                }