mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-05 22:36:34 +00:00
Fix crash on logout (#1749)
This commit is contained in:
committed by
GitHub
parent
d0092d8dbe
commit
52c9565ac8
+5
-2
@@ -58,6 +58,7 @@ import io.element.android.libraries.matrix.impl.roomlist.roomOrNull
|
|||||||
import io.element.android.libraries.matrix.impl.sync.RustSyncService
|
import io.element.android.libraries.matrix.impl.sync.RustSyncService
|
||||||
import io.element.android.libraries.matrix.impl.usersearch.UserProfileMapper
|
import io.element.android.libraries.matrix.impl.usersearch.UserProfileMapper
|
||||||
import io.element.android.libraries.matrix.impl.usersearch.UserSearchResultMapper
|
import io.element.android.libraries.matrix.impl.usersearch.UserSearchResultMapper
|
||||||
|
import io.element.android.libraries.matrix.impl.util.cancelAndDestroy
|
||||||
import io.element.android.libraries.matrix.impl.verification.RustSessionVerificationService
|
import io.element.android.libraries.matrix.impl.verification.RustSessionVerificationService
|
||||||
import io.element.android.libraries.sessionstorage.api.SessionStore
|
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||||
import io.element.android.services.toolbox.api.systemclock.SystemClock
|
import io.element.android.services.toolbox.api.systemclock.SystemClock
|
||||||
@@ -76,6 +77,7 @@ import org.matrix.rustcomponents.sdk.ClientDelegate
|
|||||||
import org.matrix.rustcomponents.sdk.NotificationProcessSetup
|
import org.matrix.rustcomponents.sdk.NotificationProcessSetup
|
||||||
import org.matrix.rustcomponents.sdk.Room
|
import org.matrix.rustcomponents.sdk.Room
|
||||||
import org.matrix.rustcomponents.sdk.RoomListItem
|
import org.matrix.rustcomponents.sdk.RoomListItem
|
||||||
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
import org.matrix.rustcomponents.sdk.use
|
import org.matrix.rustcomponents.sdk.use
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -177,8 +179,9 @@ class RustMatrixClient constructor(
|
|||||||
|
|
||||||
private val roomContentForwarder = RoomContentForwarder(innerRoomListService)
|
private val roomContentForwarder = RoomContentForwarder(innerRoomListService)
|
||||||
|
|
||||||
|
private val clientDelegateTaskHandle: TaskHandle? = client.setDelegate(clientDelegate)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
client.setDelegate(clientDelegate)
|
|
||||||
roomListService.state.onEach { state ->
|
roomListService.state.onEach { state ->
|
||||||
if (state == RoomListService.State.Running) {
|
if (state == RoomListService.State.Running) {
|
||||||
setupVerificationControllerIfNeeded()
|
setupVerificationControllerIfNeeded()
|
||||||
@@ -328,7 +331,7 @@ class RustMatrixClient constructor(
|
|||||||
|
|
||||||
override fun close() {
|
override fun close() {
|
||||||
sessionCoroutineScope.cancel()
|
sessionCoroutineScope.cancel()
|
||||||
client.setDelegate(null)
|
clientDelegateTaskHandle?.cancelAndDestroy()
|
||||||
notificationSettings.setDelegate(null)
|
notificationSettings.setDelegate(null)
|
||||||
notificationSettings.destroy()
|
notificationSettings.destroy()
|
||||||
verificationService.destroy()
|
verificationService.destroy()
|
||||||
|
|||||||
Reference in New Issue
Block a user