@@ -24,6 +24,7 @@ import com.nextcloud.client.jobs.BackgroundJobManager
2424import com.nextcloud.client.network.Connectivity
2525import com.nextcloud.client.network.ConnectivityService
2626import com.nextcloud.client.notifications.AppWideNotificationManager
27+ import com.nextcloud.model.OCUploadLocalPathData
2728import com.nextcloud.utils.extensions.checkWCFRestrictions
2829import com.nextcloud.utils.extensions.createOwncloudClient
2930import com.nextcloud.utils.extensions.getUploadIds
@@ -253,49 +254,46 @@ class FileUploadHelper {
253254 }
254255
255256 @JvmOverloads
257+ fun uploadNewFiles (data : OCUploadLocalPathData , showSameFileAlreadyExistsNotification : Boolean = true) {
258+ val uploads = getUploadsFromLocalPaths(data)
259+ backgroundJobManager.startFilesUploadJob(
260+ data.user,
261+ uploads.getUploadIds(),
262+ showSameFileAlreadyExistsNotification
263+ )
264+ }
265+
256266 @Suppress(" LongParameterList" )
257- fun uploadNewFiles (
258- user : User ,
259- localPaths : Array <String >,
260- remotePaths : Array <String >,
261- localBehavior : Int ,
262- createRemoteFolder : Boolean ,
263- createdBy : Int ,
264- requiresWifi : Boolean ,
265- requiresCharging : Boolean ,
266- nameCollisionPolicy : NameCollisionPolicy ,
267- showSameFileAlreadyExistsNotification : Boolean = true
268- ) {
269- val uploads = localPaths.mapIndexed { index, localPath ->
270- fun createOCUpload (): OCUpload {
271- val result = OCUpload (localPath, remotePaths[index], user.accountName).apply {
272- this .nameCollisionPolicy = nameCollisionPolicy
273- isUseWifiOnly = requiresWifi
274- isWhileChargingOnly = requiresCharging
275- uploadStatus = UploadStatus .UPLOAD_IN_PROGRESS
276- this .createdBy = createdBy
277- isCreateRemoteFolder = createRemoteFolder
278- localAction = localBehavior
279- }
267+ fun uploadAndCopyNewFilesForAlbum (data : OCUploadLocalPathData , albumName : String ) {
268+ val uploads = getUploadsFromLocalPaths(data)
269+ backgroundJobManager.startAlbumFilesUploadJob(
270+ data.user,
271+ uploads.getUploadIds(),
272+ albumName
273+ )
274+ }
280275
276+ private fun getUploadsFromLocalPaths (data : OCUploadLocalPathData ): List <OCUpload > =
277+ data.localPaths.mapIndexed { index, localPath ->
278+ fun createOCUpload (): OCUpload {
279+ val result = data.toOCUpload(localPath, index)
281280 val id = uploadsStorageManager.uploadDao.insertOrReplace(result.toUploadEntity())
282281 result.uploadId = id
283282 return result
284283 }
285284
285+ val remotePath = data.remotePaths[index]
286286 val entity = getUploadByPaths(
287- accountName = user.accountName,
287+ accountName = data. user.accountName,
288288 localPath = localPath,
289- remotePath = remotePaths[index]
289+ remotePath = remotePath
290290 )
291291 if (entity != null ) {
292- reusePendingUpload(entity, user) ? : createOCUpload()
292+ reusePendingUpload(entity, data. user) ? : createOCUpload()
293293 } else {
294294 createOCUpload()
295295 }
296296 }
297- backgroundJobManager.startFilesUploadJob(user, uploads.getUploadIds(), showSameFileAlreadyExistsNotification)
298- }
299297
300298 private fun reusePendingUpload (entity : UploadEntity , user : User ): OCUpload ? {
301299 val capability = fileStorageManager.getCapability(user)
0 commit comments