Kaynağa Gözat

fix: 自定义聊天背景toast错误

linjiajia 8 ay önce
ebeveyn
işleme
ba898c0b8e

+ 16 - 32
module/message/src/main/java/com/adealink/weparty/message/conversation/chatbackground/ChatBackgroundViewModel.kt

@@ -137,39 +137,23 @@ class ChatBackgroundViewModel : BaseViewModel(), IChatBackgroundViewModel {
 
     override fun addCustomDynamicChatBackground(toUid: Long, videoPath: String): LiveData<Rlt<ChatBackgroundInfo>> {
         val liveData: LiveData<Rlt<ChatBackgroundInfo>> = OnceMutableLiveData()
-        viewModelScope.launch {
-            withContext(Dispatcher.WENEXT_THREAD_POOL) {
-                val fileSize = getFileSizeBytes(File(videoPath))
-                if (fileSize <= 0L || fileSize > MAX_VIDEO_SIZE_BYTE) {
-                    liveData.send(
-                        Rlt.Failed(
-                            IError(
-                                msg = getCompatString(
-                                    APP_R.string.common_video_invalid_error,
-                                    (MAX_VIDEO_SIZE_BYTE / (1024 * 1024)).toString(),
-                                    (MAX_VIDEO_SIZE_BYTE / 1000).toString(),
-                                )
-                            )
-                        )
-                    )
-                    return@withContext
-                }
-                val duration = ImageUtil.getDuration(videoPath)
-                if (duration <= 0 || duration > MAX_VIDEO_DURATION) {
-                    liveData.send(
-                        Rlt.Failed(
-                            IError(
-                                msg = getCompatString(
-                                    APP_R.string.common_video_invalid_error,
-                                    (MAX_VIDEO_SIZE_BYTE / (1024 * 1024)).toString(),
-                                    (MAX_VIDEO_SIZE_BYTE / 1000).toString(),
-                                )
-                            )
-                        )
-                    )
-                    return@withContext
-                }
+        viewModelScope.launch(Dispatcher.WENEXT_THREAD_POOL) {
+            val videoInvalidError = IError(
+                msg = getCompatString(
+                    APP_R.string.common_video_invalid_error,
+                    (MAX_VIDEO_SIZE_BYTE / (1024 * 1024)).toString(),
+                    (MAX_VIDEO_DURATION / 1000).toString(),
+                )
+            )
+            val fileSize = getFileSizeBytes(File(videoPath))
+            val duration = ImageUtil.getDuration(videoPath)
+            val isFileInvalid = fileSize <= 0L || fileSize > MAX_VIDEO_SIZE_BYTE
+            val isDurationInvalid = duration <= 0 || duration > MAX_VIDEO_DURATION
+            if (isFileInvalid || isDurationInvalid) {
+                liveData.send(Rlt.Failed(videoInvalidError))
+                return@launch
             }
+
             val videoThumbnailRlt = getVideoThumbnail(videoPath)
             if (videoThumbnailRlt is Rlt.Failed) {
                 liveData.send(videoThumbnailRlt)