diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index 3ec0bee85f679..ef086daa23bc3 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -2604,6 +2604,31 @@ public class SyncManager { } continue; } + String packageName = getPackageName(op.target); + ApplicationInfo ai = null; + if (packageName != null) { + try { + ai = mContext.getPackageManager().getApplicationInfo(packageName, + 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 + if (ai != null + && mAppIdleMonitor.isAppIdle(packageName, ai.uid, op.target.userId)) { + increaseBackoffSetting(op); + op.appIdle = true; + if (isLoggable) { + Log.v(TAG, "Sync backing off idle app " + packageName); + } + continue; + } else { + op.appIdle = false; + } if (!isOperationValidLocked(op)) { operationIterator.remove(); mSyncStorageEngine.deleteFromPending(op.pendingOperation); @@ -2622,28 +2647,6 @@ public class SyncManager { } continue; } - String packageName = getPackageName(op.target); - ApplicationInfo ai = null; - if (packageName != null) { - try { - ai = mContext.getPackageManager().getApplicationInfo(packageName, - PackageManager.GET_UNINSTALLED_PACKAGES - | PackageManager.GET_DISABLED_COMPONENTS); - } catch (NameNotFoundException e) { - } - } - // If app is considered idle, then skip for now and backoff - if (ai != null - && mAppIdleMonitor.isAppIdle(packageName, ai.uid, op.target.userId)) { - increaseBackoffSetting(op); - op.appIdle = true; - if (isLoggable) { - Log.v(TAG, "Sync backing off idle app " + packageName); - } - continue; - } else { - op.appIdle = false; - } // Add this sync to be run. operations.add(op); }