|
|
@@ -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)
|