This mapping has 1 multi-map group: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…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)

After

…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 = periodicRequestBuilder(ContentObserverWork::class, JOB_CONTENT_OBSERVER)
282 .setConstraints(constrains)
283 .build()
284
285 workManager.enqueueUniquePeriodicWork(JOB_CONTENT_OBSERVER, ExistingPeriodicWorkPolicy.KEEP, 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–472 unchanged (181 lines)
473 workManager.enqueueUniqueWork(
474 JOB_OFFLINE_OPERATIONS,
475 ExistingWorkPolicy.KEEP,
476 request
477 )
478 }
479
480 override fun startAutoUpload(
481 syncedFolder: SyncedFolder,
482 overridePowerSaving: Boolean,
483 contentUris: Array<String?>
484 ) {
485 val syncedFolderID = syncedFolder.id
486
487 val arguments = Data.Builder()
488 .putBoolean(AutoUploadWorker.OVERRIDE_POWER_SAVING, overridePowerSaving)
489 .putStringArray(AutoUploadWorker.CONTENT_URIS, contentUris)
490 .putLong(AutoUploadWorker.SYNCED_FOLDER_ID, syncedFolderID)
…lines 491–496 unchanged (6 lines)
497
498 val request = oneTimeRequestBuilder(
499 jobClass = AutoUploadWorker::class,
500 jobName = JOB_IMMEDIATE_FILES_SYNC + "_" + syncedFolderID
501 )
502 .setInputData(arguments)
503 .setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
504 .setConstraints(constraints)
505 .setBackoffCriteria(
506 BackoffPolicy.LINEAR,
507 DEFAULT_BACKOFF_CRITERIA_DELAY_SEC,
508 TimeUnit.SECONDS
509 )
510 .build()
…lines 511–823 unchanged (313 lines)

Before

source_file
block_comment "/*\n * Nextcloud - Android Client\n *\n * SPDX-FileCopyrightTex"...
package_header
package "package"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "provider"
. "."
identifier "MediaStore"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "lifecycle"
. "."
identifier "LiveData"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "lifecycle"
. "."
identifier "map"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "BackoffPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "Constraints"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "Data"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "ExistingPeriodicWorkPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "ExistingWorkPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "ListenableWorker"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "NetworkType"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "OneTimeWorkRequest"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "Operation"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "OutOfQuotaPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "PeriodicWorkRequest"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "WorkInfo"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "WorkManager"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "workDataOf"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "account"
. "."
identifier "User"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "core"
. "."
identifier "Clock"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "di"
. "."
identifier "Injectable"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "documentscan"
. "."
identifier "GeneratePdfFromImagesWork"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "autoUpload"
. "."
identifier "AutoUploadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "download"
. "."
identifier "FileDownloadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "folderDownload"
. "."
identifier "FolderDownloadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "metadata"
. "."
identifier "MetadataWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "offlineOperations"
. "."
identifier "OfflineOperationsWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "upload"
. "."
identifier "FileUploadHelper"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "upload"
. "."
identifier "FileUploadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "preferences"
. "."
identifier "AppPreferences"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "utils"
. "."
identifier "extensions"
. "."
identifier "isWorkRunning"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "utils"
. "."
identifier "extensions"
. "."
identifier "isWorkScheduled"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "datamodel"
. "."
identifier "OCFile"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "datamodel"
. "."
identifier "SyncedFolder"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "operations"
. "."
identifier "DownloadType"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "CoroutineScope"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "Dispatchers"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "launch"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Date"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "UUID"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "concurrent"
. "."
identifier "TimeUnit"
import
import "import"
qualified_identifier
identifier "kotlin"
. "."
identifier "reflect"
. "."
identifier "KClass"
block_comment "/**\n * Note to maintainers\n *\n * Since [androidx.work.WorkMa"...
class_declaration
modifiers
annotation
@ "@"
constructor_invocation
user_type
identifier "Suppress"
value_arguments
( "("
value_argument
string_literal
" "\""
string_content "TooManyFunctions"
" "\""
) ")"
line_comment "// we expect this implementation to have rich API"
visibility_modifier
internal "internal"
class "class"
identifier "BackgroundJobManagerImpl"
primary_constructor (+33 nodes collapsed)
: ":"
delegation_specifiers
delegation_specifier
user_type
identifier "BackgroundJobManager"
, ","
delegation_specifier
user_type
identifier "Injectable"
class_body
{ "{"
companion_object (+1172 nodes collapsed)
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "defaultDispatcherScope"
= "="
call_expression
identifier "CoroutineScope"
value_arguments
( "("
value_argument
navigation_expression
identifier "Dispatchers"
. "."
identifier "Default"
) ")"
function_declaration (+129 nodes collapsed)
function_declaration (+151 nodes collapsed)
block_comment "/**\n * Create [OneTimeWorkRequest.Builder] pre-set with "...
function_declaration (+184 nodes collapsed)
block_comment "/**\n * Create [PeriodicWorkRequest] pre-set with common "...
function_declaration (+218 nodes collapsed)
function_declaration (+62 nodes collapsed)
block_comment "/**\n * Cancel work using name tag with optional user sco"...
function_declaration (+58 nodes collapsed)
property_declaration (+105 nodes collapsed)
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "scheduleContentObserverJob"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
property_declaration (+119 nodes collapsed)
property_declaration
val "val"
variable_declaration
identifier "request"
= "="
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
identifier "oneTimeRequestBuilder"
value_arguments
( "("
value_argument
navigation_expression
identifier "ContentObserverWork"
:: "::"
identifier "class"
, ","
value_argument
identifier "JOB_CONTENT_OBSERVER"
) ")"
. "."
identifier "setConstraints"
value_arguments
( "("
value_argument
identifier "constrains"
) ")"
. "."
identifier "build"
value_arguments
( "("
) ")"
call_expression
navigation_expression
identifier "workManager"
. "."
identifier "enqueueUniqueWork"
value_arguments
( "("
value_argument
identifier "JOB_CONTENT_OBSERVER"
, ","
value_argument
navigation_expression
identifier "ExistingWorkPolicy"
. "."
identifier "REPLACE"
, ","
value_argument
identifier "request"
) ")"
} "}"
function_declaration (+179 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+237 nodes collapsed)
function_declaration (+174 nodes collapsed)
function_declaration (+163 nodes collapsed)
function_declaration (+153 nodes collapsed)
function_declaration (+153 nodes collapsed)
function_declaration (+138 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+59 nodes collapsed)
function_declaration (+110 nodes collapsed)
function_declaration (+174 nodes collapsed)
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "schedulePeriodicFilesSyncJob"
function_value_parameters
( "("
parameter
identifier "syncedFolder"
: ":"
user_type
identifier "SyncedFolder"
) ")"
function_body
block
{ "{"
property_declaration
val "val"
variable_declaration
identifier "syncedFolderID"
= "="
navigation_expression
identifier "syncedFolder"
. "."
identifier "id"
property_declaration
val "val"
variable_declaration
identifier "arguments"
= "="
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
identifier "Data"
. "."
identifier "Builder"
value_arguments
( "("
) ")"
. "."
identifier "putLong"
value_arguments
( "("
value_argument
navigation_expression
identifier "AutoUploadWorker"
. "."
identifier "SYNCED_FOLDER_ID"
, ","
value_argument
identifier "syncedFolderID"
) ")"
. "."
identifier "build"
value_arguments
( "("
) ")"
property_declaration
val "val"
variable_declaration
identifier "constraints"
= "="
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
identifier "Constraints"
. "."
identifier "Builder"
value_arguments
( "("
) ")"
. "."
identifier "setRequiredNetworkType"
value_arguments
( "("
value_argument
navigation_expression
identifier "NetworkType"
. "."
identifier "CONNECTED"
) ")"
. "."
identifier "setRequiresCharging"
value_arguments
( "("
value_argument
navigation_expression
identifier "syncedFolder"
. "."
identifier "isChargingOnly"
) ")"
. "."
identifier "build"
value_arguments
( "("
) ")"
property_declaration
val "val"
variable_declaration
identifier "request"
= "="
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
identifier "periodicRequestBuilder"
value_arguments
( "("
value_argument
identifier "jobClass"
= "="
navigation_expression
identifier "AutoUploadWorker"
:: "::"
identifier "class"
, ","
value_argument
identifier "jobName"
= "="
binary_expression
binary_expression
identifier "JOB_PERIODIC_FILES_SYNC"
+ "+"
string_literal
" "\""
string_content "_"
" "\""
+ "+"
identifier "syncedFolderID"
, ","
value_argument
identifier "intervalMins"
= "="
identifier "DEFAULT_PERIODIC_JOB_INTERVAL_MINUTES"
, ","
value_argument
identifier "constraints"
= "="
identifier "constraints"
) ")"
. "."
identifier "setBackoffCriteria"
value_arguments
( "("
value_argument
navigation_expression
identifier "BackoffPolicy"
. "."
identifier "LINEAR"
, ","
value_argument
identifier "DEFAULT_BACKOFF_CRITERIA_DELAY_SEC"
, ","
value_argument
navigation_expression
identifier "TimeUnit"
. "."
identifier "SECONDS"
) ")"
. "."
identifier "setInputData"
value_arguments
( "("
value_argument
identifier "arguments"
) ")"
. "."
identifier "build"
value_arguments
( "("
) ")"
call_expression
navigation_expression
identifier "workManager"
. "."
identifier "enqueueUniquePeriodicWork"
value_arguments
( "("
value_argument
binary_expression
binary_expression
identifier "JOB_PERIODIC_FILES_SYNC"
+ "+"
string_literal
" "\""
string_content "_"
" "\""
+ "+"
identifier "syncedFolderID"
, ","
value_argument
navigation_expression
identifier "ExistingPeriodicWorkPolicy"
. "."
identifier "KEEP"
, ","
value_argument
identifier "request"
) ")"
} "}"
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "startAutoUploadImmediately"
function_value_parameters (+28 nodes collapsed)
function_body
block
{ "{"
property_declaration
val "val"
variable_declaration
identifier "syncedFolderID"
= "="
navigation_expression
identifier "syncedFolder"
. "."
identifier "id"
property_declaration (+65 nodes collapsed)
property_declaration (+44 nodes collapsed)
property_declaration
val "val"
variable_declaration
identifier "request"
= "="
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
identifier "oneTimeRequestBuilder"
value_arguments (+24 nodes collapsed)
. "."
identifier "setInputData"
value_arguments
( "("
value_argument
identifier "arguments"
) ")"
. "." any 1:2
identifier "setConstraints"
value_arguments
( "("
value_argument
identifier "constraints"
) ")"
. "."
identifier "setBackoffCriteria"
value_arguments
( "("
value_argument
navigation_expression
identifier "BackoffPolicy"
. "."
identifier "LINEAR"
, ","
value_argument
identifier "DEFAULT_BACKOFF_CRITERIA_DELAY_SEC"
, ","
value_argument
navigation_expression
identifier "TimeUnit"
. "."
identifier "SECONDS"
) ")"
. "."
identifier "build"
value_arguments
( "("
) ")"
call_expression (+28 nodes collapsed)
} "}"
function_declaration (+23 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+156 nodes collapsed)
function_declaration (+98 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+118 nodes collapsed)
function_declaration (+118 nodes collapsed)
function_declaration (+23 nodes collapsed)
function_declaration (+35 nodes collapsed)
block_comment "/**\n * This method supports initiating uploads for vario"...
function_declaration (+399 nodes collapsed)
function_declaration (+35 nodes collapsed)
function_declaration (+240 nodes collapsed)
function_declaration (+95 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+43 nodes collapsed)
function_declaration (+141 nodes collapsed)
function_declaration (+72 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+29 nodes collapsed)
function_declaration (+21 nodes collapsed)
function_declaration (+23 nodes collapsed)
function_declaration (+66 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+86 nodes collapsed)
function_declaration (+201 nodes collapsed)
function_declaration (+23 nodes collapsed)
} "}"

After

source_file
block_comment "/*\n * Nextcloud - Android Client\n *\n * SPDX-FileCopyrightTex"...
package_header
package "package"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "provider"
. "."
identifier "MediaStore"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "lifecycle"
. "."
identifier "LiveData"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "lifecycle"
. "."
identifier "map"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "BackoffPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "Constraints"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "Data"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "ExistingPeriodicWorkPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "ExistingWorkPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "ListenableWorker"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "NetworkType"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "OneTimeWorkRequest"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "Operation"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "OutOfQuotaPolicy"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "PeriodicWorkRequest"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "WorkInfo"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "WorkManager"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "work"
. "."
identifier "workDataOf"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "account"
. "."
identifier "User"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "core"
. "."
identifier "Clock"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "di"
. "."
identifier "Injectable"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "documentscan"
. "."
identifier "GeneratePdfFromImagesWork"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "autoUpload"
. "."
identifier "AutoUploadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "download"
. "."
identifier "FileDownloadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "folderDownload"
. "."
identifier "FolderDownloadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "metadata"
. "."
identifier "MetadataWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "offlineOperations"
. "."
identifier "OfflineOperationsWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "upload"
. "."
identifier "FileUploadHelper"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "jobs"
. "."
identifier "upload"
. "."
identifier "FileUploadWorker"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
. "."
identifier "preferences"
. "."
identifier "AppPreferences"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "utils"
. "."
identifier "extensions"
. "."
identifier "isWorkRunning"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "utils"
. "."
identifier "extensions"
. "."
identifier "isWorkScheduled"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "datamodel"
. "."
identifier "OCFile"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "datamodel"
. "."
identifier "SyncedFolder"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "operations"
. "."
identifier "DownloadType"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "CoroutineScope"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "Dispatchers"
import
import "import"
qualified_identifier
identifier "kotlinx"
. "."
identifier "coroutines"
. "."
identifier "launch"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Date"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "UUID"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "concurrent"
. "."
identifier "TimeUnit"
import
import "import"
qualified_identifier
identifier "kotlin"
. "."
identifier "reflect"
. "."
identifier "KClass"
block_comment "/**\n * Note to maintainers\n *\n * Since [androidx.work.WorkMa"...
class_declaration
modifiers
annotation
@ "@"
constructor_invocation
user_type
identifier "Suppress"
value_arguments
( "("
value_argument
string_literal
" "\""
string_content "TooManyFunctions"
" "\""
) ")"
line_comment "// we expect this implementation to have rich API"
visibility_modifier
internal "internal"
class "class"
identifier "BackgroundJobManagerImpl"
primary_constructor (+33 nodes collapsed)
: ":"
delegation_specifiers
delegation_specifier
user_type
identifier "BackgroundJobManager"
, ","
delegation_specifier
user_type
identifier "Injectable"
class_body
{ "{"
companion_object (+1172 nodes collapsed)
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "defaultDispatcherScope"
= "="
call_expression
identifier "CoroutineScope"
value_arguments
( "("
value_argument
navigation_expression
identifier "Dispatchers"
. "."
identifier "Default"
) ")"
function_declaration (+129 nodes collapsed)
function_declaration (+151 nodes collapsed)
block_comment "/**\n * Create [OneTimeWorkRequest.Builder] pre-set with "...
function_declaration (+184 nodes collapsed)
block_comment "/**\n * Create [PeriodicWorkRequest] pre-set with common "...
function_declaration (+218 nodes collapsed)
function_declaration (+62 nodes collapsed)
block_comment "/**\n * Cancel work using name tag with optional user sco"...
function_declaration (+58 nodes collapsed)
property_declaration (+105 nodes collapsed)
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "scheduleContentObserverJob"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
property_declaration (+119 nodes collapsed)
property_declaration
val "val"
variable_declaration
identifier "request"
= "="
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
identifier "periodicRequestBuilder"
value_arguments
( "("
value_argument
navigation_expression
identifier "ContentObserverWork"
:: "::"
identifier "class"
, ","
value_argument
identifier "JOB_CONTENT_OBSERVER"
) ")"
. "."
identifier "setConstraints"
value_arguments
( "("
value_argument
identifier "constrains"
) ")"
. "."
identifier "build"
value_arguments
( "("
) ")"
call_expression
navigation_expression
identifier "workManager"
. "."
identifier "enqueueUniquePeriodicWork"
value_arguments
( "("
value_argument
identifier "JOB_CONTENT_OBSERVER"
, ","
value_argument
navigation_expression
identifier "ExistingPeriodicWorkPolicy"
. "."
identifier "KEEP"
, ","
value_argument
identifier "request"
) ")"
} "}"
function_declaration (+179 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+237 nodes collapsed)
function_declaration (+174 nodes collapsed)
function_declaration (+163 nodes collapsed)
function_declaration (+153 nodes collapsed)
function_declaration (+153 nodes collapsed)
function_declaration (+138 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+59 nodes collapsed)
function_declaration (+110 nodes collapsed)
function_declaration (+174 nodes collapsed)
function_declaration
modifiers
member_modifier
override "override"
fun "fun"
identifier "startAutoUpload"
function_value_parameters (+28 nodes collapsed)
function_body
block
{ "{"
property_declaration
val "val"
variable_declaration
identifier "syncedFolderID"
= "="
navigation_expression
identifier "syncedFolder"
. "."
identifier "id"
property_declaration (+65 nodes collapsed)
property_declaration (+44 nodes collapsed)
property_declaration
val "val"
variable_declaration
identifier "request"
= "="
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
navigation_expression
call_expression
identifier "oneTimeRequestBuilder"
value_arguments (+24 nodes collapsed)
. "."
identifier "setInputData"
value_arguments
( "("
value_argument
identifier "arguments"
) ")"
. "." any 1:2
identifier "setExpedited"
value_arguments
( "("
value_argument
navigation_expression
identifier "OutOfQuotaPolicy"
. "."
identifier "RUN_AS_NON_EXPEDITED_WORK_REQUEST"
) ")"
. "." any 1:2
identifier "setConstraints"
value_arguments
( "("
value_argument
identifier "constraints"
) ")"
. "."
identifier "setBackoffCriteria"
value_arguments
( "("
value_argument
navigation_expression
identifier "BackoffPolicy"
. "."
identifier "LINEAR"
, ","
value_argument
identifier "DEFAULT_BACKOFF_CRITERIA_DELAY_SEC"
, ","
value_argument
navigation_expression
identifier "TimeUnit"
. "."
identifier "SECONDS"
) ")"
. "."
identifier "build"
value_arguments
( "("
) ")"
call_expression (+28 nodes collapsed)
} "}"
function_declaration (+23 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+156 nodes collapsed)
function_declaration (+98 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+118 nodes collapsed)
function_declaration (+118 nodes collapsed)
function_declaration (+23 nodes collapsed)
function_declaration (+35 nodes collapsed)
block_comment "/**\n * This method supports initiating uploads for vario"...
function_declaration (+399 nodes collapsed)
function_declaration (+35 nodes collapsed)
function_declaration (+240 nodes collapsed)
function_declaration (+95 nodes collapsed)
function_declaration (+31 nodes collapsed)
function_declaration (+43 nodes collapsed)
function_declaration (+141 nodes collapsed)
function_declaration (+72 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+29 nodes collapsed)
function_declaration (+21 nodes collapsed)
function_declaration (+23 nodes collapsed)
function_declaration (+66 nodes collapsed)
function_declaration (+57 nodes collapsed)
function_declaration (+86 nodes collapsed)
function_declaration (+201 nodes collapsed)
function_declaration (+23 nodes collapsed)
} "}"