diff --git a/engine/src/main/java/com/google/android/fhir/sync/Config.kt b/engine/src/main/java/com/google/android/fhir/sync/Config.kt index 8eaf884162..a5151f9b96 100644 --- a/engine/src/main/java/com/google/android/fhir/sync/Config.kt +++ b/engine/src/main/java/com/google/android/fhir/sync/Config.kt @@ -20,6 +20,7 @@ import androidx.work.BackoffPolicy import androidx.work.Constraints import java.net.URLEncoder import java.util.concurrent.TimeUnit +import java.time.Duration /** * Class that holds what type of resources we need to synchronise and what are the parameters of @@ -62,6 +63,9 @@ class PeriodicSyncConfiguration( /** Configuration for synchronization retry */ val retryConfiguration: RetryConfiguration? = defaultRetryConfiguration, + + /** The initial delay before the first sync is triggered */ + val initialDelay: Duration = Duration.ZERO, ) data class RepeatInterval( diff --git a/engine/src/main/java/com/google/android/fhir/sync/Sync.kt b/engine/src/main/java/com/google/android/fhir/sync/Sync.kt index 3048f5f328..1e23164452 100644 --- a/engine/src/main/java/com/google/android/fhir/sync/Sync.kt +++ b/engine/src/main/java/com/google/android/fhir/sync/Sync.kt @@ -260,6 +260,7 @@ object Sync { periodicSyncConfiguration.repeat.timeUnit, ) .setConstraints(periodicSyncConfiguration.syncConstraints) + .setInitialDelay(periodicSyncConfiguration.initialDelay) periodicSyncConfiguration.retryConfiguration?.let { periodicWorkRequestBuilder.setBackoffCriteria(