|
|
@ -22,6 +22,7 @@ import android.content.Context |
|
|
|
import coil.Coil |
|
|
|
import coil.Coil |
|
|
|
import coil.annotation.ExperimentalCoilApi |
|
|
|
import coil.annotation.ExperimentalCoilApi |
|
|
|
import com.squareup.anvil.annotations.ContributesBinding |
|
|
|
import com.squareup.anvil.annotations.ContributesBinding |
|
|
|
|
|
|
|
import io.element.android.features.ftue.api.state.FtueState |
|
|
|
import io.element.android.features.preferences.impl.DefaultCacheService |
|
|
|
import io.element.android.features.preferences.impl.DefaultCacheService |
|
|
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers |
|
|
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers |
|
|
|
import io.element.android.libraries.di.ApplicationContext |
|
|
|
import io.element.android.libraries.di.ApplicationContext |
|
|
@ -43,6 +44,7 @@ class DefaultClearCacheUseCase @Inject constructor( |
|
|
|
private val coroutineDispatchers: CoroutineDispatchers, |
|
|
|
private val coroutineDispatchers: CoroutineDispatchers, |
|
|
|
private val defaultCacheIndexProvider: DefaultCacheService, |
|
|
|
private val defaultCacheIndexProvider: DefaultCacheService, |
|
|
|
private val okHttpClient: Provider<OkHttpClient>, |
|
|
|
private val okHttpClient: Provider<OkHttpClient>, |
|
|
|
|
|
|
|
private val ftueState: FtueState, |
|
|
|
) : ClearCacheUseCase { |
|
|
|
) : ClearCacheUseCase { |
|
|
|
override suspend fun invoke() = withContext(coroutineDispatchers.io) { |
|
|
|
override suspend fun invoke() = withContext(coroutineDispatchers.io) { |
|
|
|
// Clear Matrix cache |
|
|
|
// Clear Matrix cache |
|
|
@ -56,6 +58,8 @@ class DefaultClearCacheUseCase @Inject constructor( |
|
|
|
okHttpClient.get().cache?.delete() |
|
|
|
okHttpClient.get().cache?.delete() |
|
|
|
// Clear app cache |
|
|
|
// Clear app cache |
|
|
|
context.cacheDir.deleteRecursively() |
|
|
|
context.cacheDir.deleteRecursively() |
|
|
|
|
|
|
|
// Clear some settings |
|
|
|
|
|
|
|
ftueState.reset() |
|
|
|
// Ensure the app is restarted |
|
|
|
// Ensure the app is restarted |
|
|
|
defaultCacheIndexProvider.onClearedCache(matrixClient.sessionId) |
|
|
|
defaultCacheIndexProvider.onClearedCache(matrixClient.sessionId) |
|
|
|
} |
|
|
|
} |
|
|
|