Merge "Update SyncManager min period to match JobScheduler" into nyc-dev
diff --git a/services/core/java/com/android/server/content/ContentService.java b/services/core/java/com/android/server/content/ContentService.java
index 1b2ccd7..9220aa3 100644
--- a/services/core/java/com/android/server/content/ContentService.java
+++ b/services/core/java/com/android/server/content/ContentService.java
@@ -22,6 +22,7 @@
import android.app.ActivityManager;
import android.app.ActivityManagerNative;
import android.app.AppOpsManager;
+import android.app.job.JobInfo;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentProvider;
@@ -512,6 +513,16 @@
syncAsUser(request, UserHandle.getCallingUserId());
}
+ private long clampPeriod(long period) {
+ long minPeriod = JobInfo.getMinPeriodMillis() / 1000;
+ if (period < minPeriod) {
+ Slog.w(TAG, "Requested poll frequency of " + period
+ + " seconds being rounded up to " + minPeriod + "s.");
+ period = minPeriod;
+ }
+ return period;
+ }
+
/**
* If the user id supplied is different to the calling user, the caller must hold the
* INTERACT_ACROSS_USERS_FULL permission.
@@ -539,11 +550,8 @@
SyncStorageEngine.EndPoint info;
info = new SyncStorageEngine.EndPoint(
request.getAccount(), request.getProvider(), userId);
- if (runAtTime < 3600) {
- Slog.w(TAG, "Requested poll frequency of " + runAtTime
- + " seconds being rounded up to 1 hour.");
- runAtTime = 3600;
- }
+
+ runAtTime = clampPeriod(runAtTime);
// Schedule periodic sync.
getSyncManager().updateOrAddPeriodicSync(info, runAtTime,
flextime, extras);
@@ -761,11 +769,8 @@
"no permission to write the sync settings");
int userId = UserHandle.getCallingUserId();
- if (pollFrequency < 3600) {
- Slog.w(TAG, "Requested poll frequency of " + pollFrequency
- + " seconds being rounded up to 1 hour.");
- pollFrequency = 3600;
- }
+
+ pollFrequency = clampPeriod(pollFrequency);
long defaultFlex = SyncStorageEngine.calculateDefaultFlexTime(pollFrequency);
long identityToken = clearCallingIdentity();