Protect call to suspend fun

This commit is contained in:
Benoit Marty 2021-04-16 13:15:35 +02:00
parent 18cef243a1
commit c08868bc3c
3 changed files with 15 additions and 20 deletions

View file

@ -1,4 +1,10 @@
Changes in Element 1.1.5 (2021-XX-XX)
Changes in Element 1.1.6 (2021-04-16)
===================================================
Bugfix 🐛:
- Fix crash on the timeline
Changes in Element 1.1.5 (2021-04-15)
===================================================
Bugfix 🐛:

View file

@ -178,10 +178,7 @@ class RoomDetailViewModel @AssistedInject constructor(
updateShowDialerOptionState()
room.getRoomSummaryLive()
viewModelScope.launch {
try {
room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT)
} catch (_: Exception) {
}
tryOrNull { room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT) }
}
// Inform the SDK that the room is displayed
session.onRoomDisplayed(initialState.roomId)
@ -546,10 +543,7 @@ class RoomDetailViewModel @AssistedInject constructor(
if (trackUnreadMessages.getAndSet(false)) {
mostRecentDisplayedEvent?.root?.eventId?.also {
viewModelScope.launch {
try {
room.setReadMarker(it)
} catch (_: Exception) {
}
tryOrNull { room.setReadMarker(it) }
}
}
mostRecentDisplayedEvent = null
@ -1254,7 +1248,7 @@ class RoomDetailViewModel @AssistedInject constructor(
}
bufferedMostRecentDisplayedEvent.root.eventId?.let { eventId ->
viewModelScope.launch {
room.setReadReceipt(eventId)
tryOrNull { room.setReadReceipt(eventId) }
}
}
})
@ -1263,10 +1257,7 @@ class RoomDetailViewModel @AssistedInject constructor(
private fun handleMarkAllAsRead() {
viewModelScope.launch {
try {
room.markAsRead(ReadService.MarkAsReadParams.BOTH)
} catch (_: Exception) {
}
tryOrNull { room.markAsRead(ReadService.MarkAsReadParams.BOTH) }
}
}

View file

@ -25,6 +25,7 @@ import im.vector.app.core.di.ActiveSessionHolder
import im.vector.app.core.extensions.vectorComponent
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.matrix.android.sdk.api.extensions.tryOrNull
import org.matrix.android.sdk.api.session.Session
import org.matrix.android.sdk.api.session.room.Room
import org.matrix.android.sdk.api.session.room.read.ReadService
@ -78,7 +79,7 @@ class NotificationBroadcastReceiver : BroadcastReceiver() {
val room = session.getRoom(roomId)
if (room != null) {
GlobalScope.launch {
room.join()
tryOrNull { room.join() }
}
}
}
@ -89,7 +90,7 @@ class NotificationBroadcastReceiver : BroadcastReceiver() {
val room = session.getRoom(roomId)
if (room != null) {
GlobalScope.launch {
room.leave()
tryOrNull { room.leave() }
}
}
}
@ -100,10 +101,7 @@ class NotificationBroadcastReceiver : BroadcastReceiver() {
val room = session.getRoom(roomId)
if (room != null) {
GlobalScope.launch {
try {
room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT)
} catch (_: Exception) {
}
tryOrNull { room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT) }
}
}
}