From b64f0c99f7c465e262123052c4c26c09129b0bfe Mon Sep 17 00:00:00 2001 From: Tommy DI LUNA Date: Thu, 23 May 2024 11:16:56 +0200 Subject: [PATCH] Fix wrong snackbar being displayed when importing files on low memory --- .../drive/ui/addFiles/ImportFilesDialog.kt | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/infomaniak/drive/ui/addFiles/ImportFilesDialog.kt b/app/src/main/java/com/infomaniak/drive/ui/addFiles/ImportFilesDialog.kt index 585a48ece8..4725b47811 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/addFiles/ImportFilesDialog.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/addFiles/ImportFilesDialog.kt @@ -74,8 +74,12 @@ class ImportFilesDialog : DialogFragment() { val errorCount = importCount - successCount if (errorCount > 0) { - val errorMessage = resources.getQuantityString(R.plurals.snackBarUploadError, errorCount, errorCount) - showSnackbar(errorMessage, showAboveFab = true) + if (isLowMemory()) { + showSnackbar(R.string.uploadOutOfMemoryError, showAboveFab = true) + } else { + val errorMessage = resources.getQuantityString(R.plurals.snackBarUploadError, errorCount, errorCount) + showSnackbar(errorMessage, showAboveFab = true) + } } if (successCount > 0) mainViewModel.refreshActivities.value = true @@ -113,32 +117,27 @@ class ImportFilesDialog : DialogFragment() { private suspend fun initUpload(uri: Uri) = withContext(Dispatchers.IO) { requireContext().contentResolver.query(uri, null, null, null, null)?.use { cursor -> + if (isLowMemory()) return@withContext + if (cursor.moveToFirst()) { val fileName = cursor.getFileName(uri) val (fileCreatedAt, fileModifiedAt) = getFileDates(cursor) - when { - isLowMemory() -> withContext(Dispatchers.Main) { - showSnackbar(R.string.uploadOutOfMemoryError, showAboveFab = true) - } - else -> { - val outputFile = getOutputFile(uri, fileModifiedAt) - ensureActive() - UploadFile( - uri = outputFile.toUri().toString(), - driveId = navArgs.driveId, - fileCreatedAt = fileCreatedAt, - fileModifiedAt = fileModifiedAt, - fileName = fileName, - fileSize = outputFile.length(), - remoteFolder = navArgs.folderId, - type = UploadFile.Type.UPLOAD.name, - userId = AccountUtils.currentUserId, - ).store() - successCount++ - currentImportFile = null - } - } + val outputFile = getOutputFile(uri, fileModifiedAt) + ensureActive() + UploadFile( + uri = outputFile.toUri().toString(), + driveId = navArgs.driveId, + fileCreatedAt = fileCreatedAt, + fileModifiedAt = fileModifiedAt, + fileName = fileName, + fileSize = outputFile.length(), + remoteFolder = navArgs.folderId, + type = UploadFile.Type.UPLOAD.name, + userId = AccountUtils.currentUserId, + ).store() + successCount++ + currentImportFile = null } } }