Wipe stores on logout

This commit is contained in:
sim 2024-11-04 14:45:08 +00:00
parent 15e149f76b
commit 9541ed6aed
7 changed files with 23 additions and 7 deletions

View File

@ -14,6 +14,11 @@ class AppStore(context: Context) : Store(context) {
.putOrRemove(PREF_DEVICE_ID, value)
.apply()
override fun wipe() {
deviceId = null
account.wipe()
}
companion object {
private const val PREF_DEVICE_ID = "deviceId"
}

View File

@ -3,7 +3,9 @@ package org.unifiedpush.distributor.nextpush
import android.content.Context
import android.content.SharedPreferences
open class Store(context: Context) {
abstract class Store(context: Context) {
abstract fun wipe()
val sharedPreferences: SharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
/**

View File

@ -2,11 +2,8 @@ package org.unifiedpush.distributor.nextpush.account
import android.content.Context
import android.util.Log
import org.unifiedpush.distributor.nextpush.AppStore
import org.unifiedpush.distributor.nextpush.utils.TAG
internal const val PREF_NAME = "NextPush"
object AccountFactory {
private var account: Account<out Any>? = null
@ -26,13 +23,12 @@ object AccountFactory {
fun logout(context: Context) {
getAccount(context)?.logout(context)
AppStore(context).deviceId = null
}
fun Context.setTypeSSO() {
account = null
AccountStore(this).accountType = AccountType.SSO
DirectAccount.setCredentials(this, null, null, null)
DirectAccountStore(this).wipe() // Just in case
}
fun Context.setTypeDirect(url: String, username: String, password: String) {

View File

@ -14,6 +14,10 @@ open class AccountStore(context: Context) : Store(context) {
.edit().putInt(PREF_ACCOUNT_TYPE, value.toInt())
.apply()
override fun wipe() {
// Nothing important to do yet
}
companion object {
private const val PREF_ACCOUNT_TYPE = "account::type"
}

View File

@ -76,7 +76,7 @@ class DirectAccount(context: Context) : Account<OkHttpClient> {
override fun logout(context: Context) {
connected = false
setCredentials(context, null, null, null)
daStore.wipe()
}
private fun retActivity(activity: Activity) {

View File

@ -29,6 +29,13 @@ class DirectAccountStore(context: Context) : Store(context) {
.edit().putBoolean(PREF_CONNECTED, value)
.apply()
override fun wipe() {
url = null
username = null
password = null
connected = false
}
companion object {
private const val PREF_CONNECTED = "direct_account::connected"
private const val PREF_URL = "direct_account::url"

View File

@ -27,6 +27,7 @@ import androidx.core.view.isGone
import androidx.core.view.setPadding
import com.google.android.material.card.MaterialCardView
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.unifiedpush.distributor.nextpush.AppStore
import org.unifiedpush.distributor.nextpush.Database.Companion.getDb
import org.unifiedpush.distributor.nextpush.LocalNotification
import org.unifiedpush.distributor.nextpush.R
@ -159,6 +160,7 @@ class MainActivity : AppCompatActivity() {
FailureHandler.clearFails()
}
AccountFactory.logout(this)
AppStore(this).wipe()
finish()
goToStartActivity(this)
}