Make sure any JoinedRustRoom is destroyed after use (#4678)
This commit is contained in:
parent
2d189ae775
commit
1904c98c9a
5 changed files with 11 additions and 3 deletions
|
|
@ -241,7 +241,7 @@ class CallScreenPresenter @AssistedInject constructor(
|
|||
|
||||
private suspend fun MatrixClient.notifyCallStartIfNeeded(roomId: RoomId) {
|
||||
if (!notifiedCallStart) {
|
||||
getJoinedRoom(roomId)?.sendCallNotificationIfNeeded()
|
||||
getJoinedRoom(roomId)?.use { it.sendCallNotificationIfNeeded() }
|
||||
?.onSuccess { notifiedCallStart = true }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,8 +47,11 @@ class DefaultCallWidgetProvider @Inject constructor(
|
|||
theme = theme,
|
||||
).getOrThrow()
|
||||
|
||||
val driver = room.getWidgetDriver(widgetSettings).getOrThrow()
|
||||
room.destroy()
|
||||
|
||||
CallWidgetProvider.GetWidgetResult(
|
||||
driver = room.getWidgetDriver(widgetSettings).getOrThrow(),
|
||||
driver = driver,
|
||||
url = callUrl,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ class SharePresenter @AssistedInject constructor(
|
|||
).isSuccess
|
||||
}
|
||||
.all { it }
|
||||
.also { room.destroy() }
|
||||
}
|
||||
.all { it }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -639,9 +639,11 @@ class JoinedRustRoom(
|
|||
}
|
||||
}
|
||||
|
||||
override fun close() = destroy()
|
||||
|
||||
override fun destroy() {
|
||||
baseRoom.destroy()
|
||||
liveInnerTimeline.close()
|
||||
liveInnerTimeline.destroy()
|
||||
roomCoroutineScope.cancel()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -94,6 +94,8 @@ class RustBaseRoom(
|
|||
}
|
||||
}
|
||||
|
||||
override fun close() = destroy()
|
||||
|
||||
override fun destroy() {
|
||||
innerRoom.destroy()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue