浏览代码

fix NumberFormatException

fix NumberFormatException for files >2,14 GB (=limit that can be represented by Int)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 3 年之前
父节点
当前提交
d539161768

+ 1 - 1
app/src/main/java/com/nextcloud/talk/adapters/SharedItemsListAdapter.kt

@@ -46,7 +46,7 @@ class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewH
         holder.binding.fileName.text = currentItem.name
         holder.binding.fileSize.text = Formatter.formatShortFileSize(
             holder.binding.fileSize.context,
-            currentItem.fileSize.toLong()
+            currentItem.fileSize
         )
         holder.binding.fileDate.text = DateUtils.getLocalDateTimeStringFromTimestamp(
             currentItem.date * ONE_SECOND_IN_MILLIS

+ 2 - 2
app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt

@@ -939,7 +939,7 @@ class ChatController(args: Bundle) :
         if (size == null) {
             size = "-1"
         }
-        val fileSize = Integer.valueOf(size)
+        val fileSize = size.toLong()
         val fileId = message.getSelectedIndividualHashMap()["id"]
         val path = message.getSelectedIndividualHashMap()["path"]
 
@@ -966,7 +966,7 @@ class ChatController(args: Bundle) :
             .putString(DownloadFileToCacheWorker.KEY_ATTACHMENT_FOLDER, attachmentFolder)
             .putString(DownloadFileToCacheWorker.KEY_FILE_NAME, fileName)
             .putString(DownloadFileToCacheWorker.KEY_FILE_PATH, path)
-            .putInt(DownloadFileToCacheWorker.KEY_FILE_SIZE, fileSize)
+            .putLong(DownloadFileToCacheWorker.KEY_FILE_SIZE, fileSize)
             .build()
 
         val downloadWorker: OneTimeWorkRequest = OneTimeWorkRequest.Builder(DownloadFileToCacheWorker::class.java)

+ 2 - 2
app/src/main/java/com/nextcloud/talk/jobs/DownloadFileToCacheWorker.kt

@@ -44,7 +44,7 @@ import javax.inject.Inject
 class DownloadFileToCacheWorker(val context: Context, workerParameters: WorkerParameters) :
     Worker(context, workerParameters) {
 
-    private var totalFileSize: Int = -1
+    private var totalFileSize: Long = -1
 
     @Inject
     lateinit var ncApi: NcApi
@@ -69,7 +69,7 @@ class DownloadFileToCacheWorker(val context: Context, workerParameters: WorkerPa
             val attachmentFolder = inputData.getString(KEY_ATTACHMENT_FOLDER)
             val fileName = inputData.getString(KEY_FILE_NAME)
             val remotePath = inputData.getString(KEY_FILE_PATH)
-            totalFileSize = (inputData.getInt(KEY_FILE_SIZE, -1))
+            totalFileSize = (inputData.getLong(KEY_FILE_SIZE, -1))
 
             checkNotNull(currentUser)
             checkNotNull(baseUrl)

+ 1 - 1
app/src/main/java/com/nextcloud/talk/repositories/SharedItem.kt

@@ -5,7 +5,7 @@ import com.nextcloud.talk.models.database.UserEntity
 data class SharedItem(
     val id: String,
     val name: String,
-    val fileSize: Int,
+    val fileSize: Long,
     val date: Long,
     val path: String,
     val link: String,

+ 3 - 3
app/src/main/java/com/nextcloud/talk/utils/FileViewerUtils.kt

@@ -68,7 +68,7 @@ class FileViewerUtils(private val context: Context, private val userEntity: User
         if (size == null) {
             size = "-1"
         }
-        val fileSize = Integer.valueOf(size)
+        val fileSize = size.toLong()
 
         openFile(
             FileInfo(fileId, fileName, fileSize),
@@ -282,7 +282,7 @@ class FileViewerUtils(private val context: Context, private val userEntity: User
             )
             .putString(DownloadFileToCacheWorker.KEY_FILE_NAME, fileInfo.fileName)
             .putString(DownloadFileToCacheWorker.KEY_FILE_PATH, path)
-            .putInt(DownloadFileToCacheWorker.KEY_FILE_SIZE, fileInfo.fileSize)
+            .putLong(DownloadFileToCacheWorker.KEY_FILE_SIZE, fileInfo.fileSize)
             .build()
         downloadWorker = OneTimeWorkRequest.Builder(DownloadFileToCacheWorker::class.java)
             .setInputData(data)
@@ -383,7 +383,7 @@ class FileViewerUtils(private val context: Context, private val userEntity: User
     data class FileInfo(
         val fileId: String,
         val fileName: String,
-        val fileSize: Int
+        var fileSize: Long
     )
 
     companion object {

+ 1 - 1
app/src/main/java/com/nextcloud/talk/viewmodels/SharedItemsViewModel.kt

@@ -81,7 +81,7 @@ class SharedItemsViewModel(private val repository: SharedItemsRepository, privat
                             items[it.value.id] = SharedItem(
                                 fileParameters["id"]!!,
                                 fileParameters["name"]!!,
-                                fileParameters["size"]!!.toInt(),
+                                fileParameters["size"]!!.toLong(),
                                 it.value.timestamp,
                                 fileParameters["path"]!!,
                                 fileParameters["link"]!!,