账号保存相关

This commit is contained in:
renhaoting 2025-11-25 11:02:58 +08:00
parent 92ba0f4831
commit 0657617311
6 changed files with 124 additions and 2 deletions

View File

@ -6,4 +6,5 @@ data class User(
val token: String,
val account: String,
val createdAt: String,
val deviceUUId: String
)

View File

@ -0,0 +1,23 @@
package com.gamedog.vididin.login
import com.gamedog.vididin.beans.User
class LoginInfoSave {
fun putUser(user: User?) {
UserLocalRepository.saveUser2Sp(user)
}
fun getUser() = UserLocalRepository.getUserFromSp()
fun putToken(token: String?) {
UserLocalRepository.saveUserToken(token)
}
fun getToken(): String? {
return UserLocalRepository.getUserToken()
}
}

View File

@ -1,7 +1,68 @@
package com.gamedog.vididin.core.login.login
import com.gamedog.vididin.beans.OnLoginStateEvent
import com.gamedog.vididin.beans.User
import com.gamedog.vididin.login.LoginInfoSave
import com.gamedog.vididin.login.OnLoginEvent
import com.gamedog.vididin.router.Router
import com.pengxr.modular.eventbus.generated.events.EventDefineOfUserEvents
object LoginManager {
private val loginInfoSave by lazy {
LoginInfoSave()
}
var user: User? = null
set(value) {
loginInfoSave.putUser(value)
field = value
}
var token: String? = null
set(value) {
loginInfoSave.putToken(value)
field = value
}
val isLogin: Boolean
get() = user != null
fun init() {
user = loginInfoSave.getUser()
token = loginInfoSave.getToken()
}
fun logout() {
user = null
token = null
EventDefineOfUserEvents.onLoginStatusChanged().post(OnLoginStateEvent(OnLoginEvent.LOGOUT))
}
fun checkLogin(callback: (() -> Unit)? = null) {
if (isLogin) {
callback?.invoke()
} else {
Router.Mine.createMineFragment()
}
}
fun putUser(user: User?) {
this.user = user
}
fun putToken(token: String?) {
this.token = token
}
}

View File

@ -0,0 +1,11 @@
package com.gamedog.vididin.login
data class OnLoginEvent(val status: Int) {
fun isLogin(): Boolean = status == LOGIN
companion object {
const val LOGIN = 1
const val LOGOUT = 2
}
}

View File

@ -0,0 +1,24 @@
package com.gamedog.vididin.login
import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.beans.User
object UserLocalRepository {
fun getUserFromSp(): User? {
return SpUtil.instance().getObject(SpUtil.KEY_ACCOUNT)
}
fun saveUser2Sp(account: User?) {
SpUtil.instance().putObject(SpUtil.KEY_ACCOUNT, account)
}
fun getUserToken(): String? {
return SpUtil.instance().getObject(SpUtil.KEY_ACCOUNT_TOKEN)
}
fun saveUserToken(token: String?) {
SpUtil.instance().putString(SpUtil.KEY_ACCOUNT_TOKEN, token)
}
}

View File

@ -15,7 +15,9 @@ import java.lang.reflect.Type
class SpUtil private constructor(spFileName: String) {
companion object {
const val KEY_X1 = "11111"
const val KEY_ACCOUNT = "KEY_ACCOUNT"
const val KEY_ACCOUNT_TOKEN = "KEY_ACCOUNT_TOKEN"
const val KEY_X2 = "22222"
private const val DEFAULT_SP_NAME = "enhanced_prefs"
@ -47,7 +49,7 @@ class SpUtil private constructor(spFileName: String) {
// ----------- 基本数据类型操作 -----------
fun putString(key: String, value: String) {
fun putString(key: String, value: String?) {
sharedPreferences.edit().putString(key, value).apply()
}