@@ -27,7 +27,6 @@ import android.app.PendingIntent
27
27
import android.content.Context
28
28
import android.content.Intent
29
29
import android.os.Build
30
- import android.text.TextUtils
31
30
import androidx.core.app.NotificationCompat
32
31
import androidx.localbroadcastmanager.content.LocalBroadcastManager
33
32
import androidx.work.Worker
@@ -74,14 +73,29 @@ class FilesUploadWorker(
74
73
75
74
override fun doWork (): Result {
76
75
val accountName = inputData.getString(ACCOUNT )
77
- if (TextUtils .isEmpty(accountName)) {
76
+ if (accountName.isNullOrEmpty()) {
77
+ Log_OC .w(TAG , " User was null for file upload worker" )
78
78
return Result .failure() // user account is needed
79
79
}
80
80
81
+ // get all pending uploads
82
+ var currentAndPendingUploadsForAccount =
83
+ uploadsStorageManager.getCurrentAndPendingUploadsForAccount(accountName)
84
+ while (currentAndPendingUploadsForAccount.isNotEmpty()) {
85
+ Log_OC .d(TAG , " Handling ${currentAndPendingUploadsForAccount.size} uploads for account $accountName " )
86
+ handlePendingUploads(currentAndPendingUploadsForAccount, accountName)
87
+ currentAndPendingUploadsForAccount =
88
+ uploadsStorageManager.getCurrentAndPendingUploadsForAccount(accountName)
89
+ }
90
+
91
+ Log_OC .d(TAG , " No more pending uploads for account $accountName , stopping work" )
92
+ return Result .success()
93
+ }
94
+
95
+ private fun handlePendingUploads (uploads : Array <OCUpload >, accountName : String ) {
81
96
val user = userAccountManager.getUser(accountName)
82
97
83
- // get all pending uploads
84
- for (upload in uploadsStorageManager.getCurrentAndPendingUploadsForAccount(accountName!! )) {
98
+ for (upload in uploads) {
85
99
// create upload file operation
86
100
if (user.isPresent) {
87
101
val uploadFileOperation = createUploadFileOperation(upload, user.get())
@@ -100,8 +114,6 @@ class FilesUploadWorker(
100
114
uploadsStorageManager.removeUpload(upload.uploadId)
101
115
}
102
116
}
103
-
104
- return Result .success()
105
117
}
106
118
107
119
/* *
0 commit comments