Wipe stores on logout
This commit is contained in:
parent
15e149f76b
commit
9541ed6aed
@ -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"
|
||||
}
|
||||
|
@ -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)
|
||||
|
||||
/**
|
||||
|
@ -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) {
|
||||
|
@ -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"
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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"
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user