…lines 1–274 unchanged (274 lines)
275 .addContentUriTrigger(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true)
276 .addContentUriTrigger(MediaStore.Video.Media.INTERNAL_CONTENT_URI, true)
277 .addContentUriTrigger(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, true)
278 .setTriggerContentMaxDelay(MAX_CONTENT_TRIGGER_DELAY_MS, TimeUnit.MILLISECONDS)
279 .build()
280
281 val request = oneTimeRequestBuilder(ContentObserverWork::class, JOB_CONTENT_OBSERVER)
282 .setConstraints(constrains)
283 .build()
284
285 workManager.enqueueUniqueWork(JOB_CONTENT_OBSERVER, ExistingWorkPolicy.REPLACE, request)
286 }
287
288 override fun schedulePeriodicContactsBackup(user: User) {
289 val data = Data.Builder()
290 .putString(ContactsBackupWork.KEY_ACCOUNT, user.accountName)
291 .putBoolean(ContactsBackupWork.KEY_FORCE, true)
…lines 292–473 unchanged (182 lines)
474 JOB_OFFLINE_OPERATIONS,
475 ExistingWorkPolicy.KEEP,
476 request
477 )
478 }
479
480 override fun schedulePeriodicFilesSyncJob(syncedFolder: SyncedFolder) {
481 val syncedFolderID = syncedFolder.id
482
483 val arguments = Data.Builder()
484 .putLong(AutoUploadWorker.SYNCED_FOLDER_ID, syncedFolderID)
485 .build()
486
487 val constraints = Constraints.Builder()
488 .setRequiredNetworkType(NetworkType.CONNECTED)
489 .setRequiresCharging(syncedFolder.isChargingOnly)
490 .build()
491
492 val request = periodicRequestBuilder(
493 jobClass = AutoUploadWorker::class,
494 jobName = JOB_PERIODIC_FILES_SYNC + "_" + syncedFolderID,
495 intervalMins = DEFAULT_PERIODIC_JOB_INTERVAL_MINUTES,
496 constraints = constraints
497 )
498 .setBackoffCriteria(
499 BackoffPolicy.LINEAR,
500 DEFAULT_BACKOFF_CRITERIA_DELAY_SEC,
501 TimeUnit.SECONDS
502 )
503 .setInputData(arguments)
504 .build()
505
506 workManager.enqueueUniquePeriodicWork(
507 JOB_PERIODIC_FILES_SYNC + "_" + syncedFolderID,
508 ExistingPeriodicWorkPolicy.KEEP,
509 request
510 )
511 }
512
513 override fun startAutoUploadImmediately(
514 syncedFolder: SyncedFolder,
515 overridePowerSaving: Boolean,
516 contentUris: Array<String?>
517 ) {
518 val syncedFolderID = syncedFolder.id
519
520 val arguments = Data.Builder()
521 .putBoolean(AutoUploadWorker.OVERRIDE_POWER_SAVING, overridePowerSaving)
522 .putStringArray(AutoUploadWorker.CONTENT_URIS, contentUris)
523 .putLong(AutoUploadWorker.SYNCED_FOLDER_ID, syncedFolderID)
…lines 524–529 unchanged (6 lines)
530
531 val request = oneTimeRequestBuilder(
532 jobClass = AutoUploadWorker::class,
533 jobName = JOB_IMMEDIATE_FILES_SYNC + "_" + syncedFolderID
534 )
535 .setInputData(arguments)
536 .setConstraints(constraints)
537 .setBackoffCriteria(
538 BackoffPolicy.LINEAR,
539 DEFAULT_BACKOFF_CRITERIA_DELAY_SEC,
540 TimeUnit.SECONDS
541 )
542 .build()
…lines 543–855 unchanged (313 lines)