Fix crash on logout (#1749)
This commit is contained in:
parent
4f528d8a51
commit
6fa785a4a3
1 changed files with 5 additions and 2 deletions
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue