Close the client before deleting data, and ensure the app is restarted, using a cache Index.

This commit is contained in:
Benoit Marty 2023-06-21 09:34:30 +02:00 committed by Benoit Marty
parent 200fe59fbb
commit 979ebe4adb
6 changed files with 43 additions and 10 deletions

View file

@ -22,6 +22,7 @@ import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.di.ApplicationContext
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
import kotlinx.coroutines.withContext
import javax.inject.Inject
@ -34,11 +35,11 @@ class DefaultClearCacheUseCase @Inject constructor(
@ApplicationContext private val context: Context,
private val matrixClient: MatrixClient,
private val coroutineDispatchers: CoroutineDispatchers,
private val authenticationService: MatrixAuthenticationService,
) : ClearCacheUseCase {
override suspend fun execute() = withContext(coroutineDispatchers.io) {
matrixClient.stopSync()
matrixClient.clearCache()
context.cacheDir.deleteRecursively()
matrixClient.startSync()
authenticationService.incrementCacheIdx()
}
}