@@ -17,12 +17,10 @@ final class TUSBackground {
1717 private static let identifier = " io.tus.uploading "
1818
1919 private var currentTask : ScheduledTask ?
20- private let scheduler : BGTaskScheduler
2120 private let api : TUSAPI
2221 private let files : Files
2322
24- init ( scheduler: BGTaskScheduler , api: TUSAPI , files: Files ) {
25- self . scheduler = scheduler
23+ init ( api: TUSAPI , files: Files ) {
2624 self . api = api
2725 self . files = files
2826
@@ -33,13 +31,14 @@ final class TUSBackground {
3331#if targetEnvironment(simulator)
3432 return
3533#else
36- scheduler . register ( forTaskWithIdentifier: type ( of: self ) . identifier, using: nil ) { [ weak self] bgTask in
34+ BGTaskScheduler . shared . register ( forTaskWithIdentifier: type ( of: self ) . identifier, using: nil ) { [ weak self] bgTask in
3735 guard let self = self else { return }
3836 guard let backgroundTask = bgTask as? BGProcessingTask else {
3937 return
4038 }
4139
4240 guard let tusTask = self . firstTask ( ) else {
41+ backgroundTask. setTaskCompleted ( success: true )
4342 return
4443 }
4544
@@ -50,17 +49,16 @@ final class TUSBackground {
5049 tusTask. cancel ( )
5150 }
5251
53- tusTask. run { [ weak self ] result in
52+ tusTask. run { result in
5453 switch result {
5554 case . success:
5655 backgroundTask. setTaskCompleted ( success: true )
5756 case . failure:
5857 backgroundTask. setTaskCompleted ( success: false )
5958 }
60-
61- guard let self = self else { return }
62- self . scheduleSingleTask ( ) // Try and schedule another task.
6359 }
60+
61+ self . scheduleSingleTask ( ) // Try and schedule another task.
6462 }
6563#endif
6664 }
@@ -81,7 +79,12 @@ final class TUSBackground {
8179
8280 let request = BGProcessingTaskRequest ( identifier: type ( of: self ) . identifier)
8381 request. requiresNetworkConnectivity = true
84- try ? scheduler. submit ( request)
82+ do {
83+ try BGTaskScheduler . shared. submit ( request)
84+ } catch {
85+ print ( " Could not schedule background task \( error) " )
86+ }
87+
8588 }
8689
8790 /// Return first available task
0 commit comments