Merge "Add defaultPeriodic to every authority" into nyc-dev
am: e4f490cc69
* commit 'e4f490cc6910cbffdedd4977e68ae57a6437bb13':
Add defaultPeriodic to every authority
This commit is contained in:
@@ -453,10 +453,48 @@ public class SyncManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ensureDefaultPeriodicSyncsH();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ensureDefaultPeriodicSyncsH() {
|
||||||
|
|
||||||
|
long defaultPeriod = SyncStorageEngine.DEFAULT_POLL_FREQUENCY_SECONDS;
|
||||||
|
long defaultFlex = SyncStorageEngine.calculateDefaultFlexTime(defaultPeriod);
|
||||||
|
|
||||||
|
List<AuthorityInfo> authorities = mSyncStorageEngine.getAllAuthorities();
|
||||||
|
List<SyncOperation> syncs = getAllPendingSyncsFromCache();
|
||||||
|
for (AuthorityInfo authority: authorities) {
|
||||||
|
boolean foundPeriodicSync = false;
|
||||||
|
for (SyncOperation op: syncs) {
|
||||||
|
if (op.isPeriodic && authority.target.matchesSpec(op.target)) {
|
||||||
|
foundPeriodicSync = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!foundPeriodicSync) {
|
||||||
|
EndPoint target = authority.target;
|
||||||
|
final RegisteredServicesCache.ServiceInfo<SyncAdapterType>
|
||||||
|
syncAdapterInfo = mSyncAdapters.getServiceInfo(
|
||||||
|
SyncAdapterType.newKey(
|
||||||
|
target.provider, target.account.type),
|
||||||
|
target.userId);
|
||||||
|
if (syncAdapterInfo == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
scheduleSyncOperationH(
|
||||||
|
new SyncOperation(target, syncAdapterInfo.uid,
|
||||||
|
syncAdapterInfo.componentName.getPackageName(),
|
||||||
|
SyncOperation.REASON_PERIODIC, SyncStorageEngine.SOURCE_PERIODIC,
|
||||||
|
new Bundle(), syncAdapterInfo.type.allowParallelSyncs(),
|
||||||
|
true /* periodic */, SyncOperation.NO_JOB_ID, defaultPeriod * 1000L,
|
||||||
|
defaultFlex * 1000L)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private synchronized void verifyJobScheduler() {
|
private synchronized void verifyJobScheduler() {
|
||||||
if (mJobScheduler != null) {
|
if (mJobScheduler != null) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class SyncStorageEngine extends Handler {
|
|||||||
private static final String XML_TAG_LISTEN_FOR_TICKLES = "listenForTickles";
|
private static final String XML_TAG_LISTEN_FOR_TICKLES = "listenForTickles";
|
||||||
|
|
||||||
/** Default time for a periodic sync. */
|
/** Default time for a periodic sync. */
|
||||||
private static final long DEFAULT_POLL_FREQUENCY_SECONDS = 60 * 60 * 24; // One day
|
static final long DEFAULT_POLL_FREQUENCY_SECONDS = 60 * 60 * 24; // One day
|
||||||
|
|
||||||
/** Percentage of period that is flex by default, if no flexMillis is set. */
|
/** Percentage of period that is flex by default, if no flexMillis is set. */
|
||||||
private static final double DEFAULT_FLEX_PERCENT_SYNC = 0.04;
|
private static final double DEFAULT_FLEX_PERCENT_SYNC = 0.04;
|
||||||
@@ -857,6 +857,16 @@ public class SyncStorageEngine extends Handler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<AuthorityInfo> getAllAuthorities() {
|
||||||
|
List<AuthorityInfo> authorities = new ArrayList<AuthorityInfo>();
|
||||||
|
synchronized (mAuthorities) {
|
||||||
|
for (int i = 0; i < mAuthorities.size(); i++) {
|
||||||
|
authorities.add(mAuthorities.valueAt(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return authorities;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if there is currently a sync operation being actively processed for the given
|
* Returns true if there is currently a sync operation being actively processed for the given
|
||||||
* target.
|
* target.
|
||||||
|
|||||||
Reference in New Issue
Block a user