adding cache clearing to settings and avoiding delete crypto when clearing cache
This commit is contained in:
parent
88bf6a2c78
commit
0cb307a56d
|
@ -77,20 +77,24 @@ internal class AppModule(context: Application, logger: MatrixLogger) {
|
|||
preferences = SharedPreferencesDelegate(context.applicationContext, fileName = "dapk-user-preferences", coroutineDispatchers),
|
||||
errorTracker = trackingModule.errorTracker,
|
||||
credentialPreferences = SharedPreferencesDelegate(context.applicationContext, fileName = "dapk-credentials-preferences", coroutineDispatchers),
|
||||
databaseDropper = { includeCryptoAccount ->
|
||||
databaseDropper = { deleteCrypto ->
|
||||
val cursor = driver.executeQuery(
|
||||
identifier = null,
|
||||
sql = "SELECT name FROM sqlite_master WHERE type = 'table' ${if (includeCryptoAccount) "" else "AND name != 'dbCryptoAccount'"}",
|
||||
sql = "SELECT name FROM sqlite_master WHERE type = 'table'",
|
||||
parameters = 0
|
||||
)
|
||||
cursor.use {
|
||||
while (cursor.next()) {
|
||||
cursor.getString(0)?.let {
|
||||
if (!deleteCrypto && it.startsWith("dbCrypto")) {
|
||||
// skip
|
||||
} else {
|
||||
log(AppLogTag.ERROR_NON_FATAL, "Deleting $it")
|
||||
driver.execute(null, "DELETE FROM $it", 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
coroutineDispatchers = coroutineDispatchers
|
||||
)
|
||||
|
|
|
@ -8,6 +8,8 @@ internal class SettingsItemFactory(private val buildMeta: BuildMeta) {
|
|||
SettingItem.Header("General"),
|
||||
SettingItem.Text(SettingItem.Id.Encryption, "Encryption"),
|
||||
SettingItem.Text(SettingItem.Id.EventLog, "Event log"),
|
||||
SettingItem.Header("Data"),
|
||||
SettingItem.Text(SettingItem.Id.ClearCache, "Clear cache"),
|
||||
SettingItem.Header("Account"),
|
||||
SettingItem.Text(SettingItem.Id.SignOut, "Sign out"),
|
||||
SettingItem.Header("About"),
|
||||
|
|
|
@ -3,9 +3,7 @@ package app.dapk.st.settings
|
|||
import android.content.ContentResolver
|
||||
import android.net.Uri
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import app.dapk.st.core.AppLogTag
|
||||
import app.dapk.st.core.Lce
|
||||
import app.dapk.st.core.log
|
||||
import app.dapk.st.design.components.SpiderPage
|
||||
import app.dapk.st.domain.StoreCleaner
|
||||
import app.dapk.st.matrix.crypto.CryptoService
|
||||
|
@ -37,7 +35,6 @@ internal class SettingsViewModel(
|
|||
val root = Page.Root(Lce.Content(settingsItemFactory.root()))
|
||||
val rootPage = SpiderPage(Page.Routes.root, "Settings", null, root)
|
||||
updateState { copy(page = rootPage) }
|
||||
println("state updated")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,7 +46,6 @@ internal class SettingsViewModel(
|
|||
when (item.id) {
|
||||
SignOut -> {
|
||||
viewModelScope.launch {
|
||||
log(AppLogTag.ERROR_NON_FATAL, "Sign out triggered")
|
||||
cacheCleaner.cleanCache(removeCredentials = true)
|
||||
_events.emit(SignedOut)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue