Fix crash when playing video (#3179)
This commit is contained in:
parent
59637c4a6b
commit
e4375522ff
@ -3,6 +3,7 @@ Changes in Element 1.1.5 (2021-XX-XX)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix crash during Realm migration
|
||||
- Fix crash when playing video (#3179)
|
||||
|
||||
Changes in Element 1.1.4 (2021-04-09)
|
||||
===================================================
|
||||
|
@ -28,8 +28,10 @@ import com.bumptech.glide.signature.ObjectKey
|
||||
import im.vector.app.core.extensions.vectorComponent
|
||||
import im.vector.app.core.files.LocalFilesHelper
|
||||
import im.vector.app.features.media.ImageContentRenderer
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import okhttp3.OkHttpClient
|
||||
import timber.log.Timber
|
||||
import java.io.IOException
|
||||
@ -121,11 +123,13 @@ class VectorGlideDataFetcher(context: Context,
|
||||
url = data.url,
|
||||
elementToDecrypt = data.elementToDecrypt)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
result.fold(
|
||||
{ callback.onDataReady(it.inputStream()) },
|
||||
{ callback.onLoadFailed(it as? Exception ?: IOException(it.localizedMessage)) }
|
||||
)
|
||||
}
|
||||
}
|
||||
// val url = contentUrlResolver.resolveFullSize(data.url)
|
||||
// ?: return
|
||||
//
|
||||
|
@ -31,8 +31,10 @@ import im.vector.lib.attachmentviewer.AttachmentInfo
|
||||
import im.vector.lib.attachmentviewer.AttachmentSourceProvider
|
||||
import im.vector.lib.attachmentviewer.ImageLoaderTarget
|
||||
import im.vector.lib.attachmentviewer.VideoLoaderTarget
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.matrix.android.sdk.api.session.events.model.isVideoMessage
|
||||
import org.matrix.android.sdk.api.session.file.FileService
|
||||
import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
|
||||
@ -162,6 +164,7 @@ abstract class BaseAttachmentProvider<Type>(
|
||||
elementToDecrypt = data.elementToDecrypt
|
||||
)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
result.fold(
|
||||
{ target.onVideoFileReady(info.uid, it) },
|
||||
{ target.onVideoFileLoadFailed(info.uid) }
|
||||
@ -169,6 +172,7 @@ abstract class BaseAttachmentProvider<Type>(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun clear(id: String) {
|
||||
// TODO("Not yet implemented")
|
||||
|
@ -19,8 +19,10 @@ package im.vector.app.features.media
|
||||
import im.vector.app.core.date.VectorDateFormatter
|
||||
import im.vector.app.core.resources.StringProvider
|
||||
import im.vector.lib.attachmentviewer.AttachmentInfo
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.matrix.android.sdk.api.session.file.FileService
|
||||
import org.matrix.android.sdk.api.session.room.Room
|
||||
import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
|
||||
@ -87,7 +89,9 @@ class DataAttachmentRoomProvider(
|
||||
elementToDecrypt = item.elementToDecrypt
|
||||
)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
callback(result.getOrNull())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,8 +19,10 @@ package im.vector.app.features.media
|
||||
import im.vector.app.core.date.VectorDateFormatter
|
||||
import im.vector.app.core.resources.StringProvider
|
||||
import im.vector.lib.attachmentviewer.AttachmentInfo
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||
import org.matrix.android.sdk.api.session.file.FileService
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageContent
|
||||
@ -134,8 +136,10 @@ class RoomEventsAttachmentProvider(
|
||||
url = messageContent.getFileUrl(),
|
||||
elementToDecrypt = messageContent.encryptedFileInfo?.toElementToDecrypt())
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
callback(result.getOrNull())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,10 @@ import im.vector.app.R
|
||||
import im.vector.app.core.di.ActiveSessionHolder
|
||||
import im.vector.app.core.error.ErrorFormatter
|
||||
import im.vector.app.core.files.LocalFilesHelper
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import org.matrix.android.sdk.internal.crypto.attachments.ElementToDecrypt
|
||||
import timber.log.Timber
|
||||
@ -83,6 +85,7 @@ class VideoContentRenderer @Inject constructor(private val localFilesHelper: Loc
|
||||
url = data.url,
|
||||
elementToDecrypt = data.elementToDecrypt)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
result.fold(
|
||||
{ data ->
|
||||
thumbnailView.isVisible = false
|
||||
@ -100,6 +103,7 @@ class VideoContentRenderer @Inject constructor(private val localFilesHelper: Loc
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
val resolvedUrl = contentUrlResolver.resolveFullSize(data.url)
|
||||
?: data.url?.takeIf { localFilesHelper.isLocalFile(data.url) && data.allowNonMxcUrls }
|
||||
@ -124,6 +128,7 @@ class VideoContentRenderer @Inject constructor(private val localFilesHelper: Loc
|
||||
url = data.url,
|
||||
elementToDecrypt = null)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
result.fold(
|
||||
{ data ->
|
||||
thumbnailView.isVisible = false
|
||||
@ -144,3 +149,4 @@ class VideoContentRenderer @Inject constructor(private val localFilesHelper: Loc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user