列表,个人中心

This commit is contained in:
fengjignqi
2026-09-22 09:28:21 +08:00
parent f232e223bd
commit 062a16c5a2
161 changed files with 2370 additions and 294 deletions

View File

@@ -2,14 +2,14 @@ package com.juhabi.birds.util.manager
import android.content.Context
import com.juhabi.birds.MyApplication
import com.juhabi.birds.mine.model.MineUserInfo
import com.juhabi.birds.network.TokenManager
import com.juhabi.birds.user.model.UserEntity
import com.juhabi.birds.util.SharedPreferencesUtil
/** 管理当前用户的内存缓存和轻量级本地持久化数据。 */
object UserInfoManager {
@Volatile
private var cachedUser: UserEntity? = null
private var cachedUser: MineUserInfo? = null
@JvmStatic
fun getInstance(): UserInfoManager = this
@@ -21,42 +21,42 @@ object UserInfoManager {
cachedUser = SharedPreferencesUtil.getObject(
context,
KEY_USER_INFO,
UserEntity::class.java
MineUserInfo::class.java
)
}
@JvmStatic
fun getUserInfo(): UserEntity? = getUserInfo(MyApplication.appContext)
fun getUserInfo(): MineUserInfo? = getUserInfo(MyApplication.appContext)
@JvmStatic
fun getUserInfo(context: Context): UserEntity? {
fun getUserInfo(context: Context): MineUserInfo? {
cachedUser?.let { return it }
return SharedPreferencesUtil.getObject(
context,
KEY_USER_INFO,
UserEntity::class.java
MineUserInfo::class.java
)?.also { cachedUser = it }
}
@JvmStatic
fun setUserInfo(userInfo: UserEntity) {
fun setUserInfo(userInfo: MineUserInfo) {
setUserInfo(MyApplication.appContext, userInfo)
}
@JvmStatic
fun setUserInfo(context: Context, userInfo: UserEntity) {
fun setUserInfo(context: Context, userInfo: MineUserInfo) {
cachedUser = userInfo
SharedPreferencesUtil.putObject(context, KEY_USER_INFO, userInfo)
}
/** 登录成功后统一保存用户信息和 token。 */
@JvmStatic
fun saveLogin(userInfo: UserEntity, token: String) {
fun saveLogin(userInfo: MineUserInfo, token: String) {
saveLogin(MyApplication.appContext, userInfo, token)
}
@JvmStatic
fun saveLogin(context: Context, userInfo: UserEntity, token: String) {
fun saveLogin(context: Context, userInfo: MineUserInfo, token: String) {
setUserInfo(context, userInfo)
TokenManager.save(context, token)
SharedPreferencesUtil.putBoolean(context, KEY_USER_LOGIN, token.isNotBlank())