user -> account

This commit is contained in:
renhaoting 2025-11-25 17:41:02 +08:00
parent be16d57958
commit 6a849aa343
7 changed files with 41 additions and 44 deletions

View File

@ -1,9 +1,9 @@
package com.gamedog.vididin.beans
data class User(
data class Account(
val accountId: String,
val deviceUUId: String,
val token: String,
val token: String="",
val createdAt: Long,
)

View File

@ -2,7 +2,7 @@ package com.gamedog.vididin.beans
data class UserData(
val user: User,
val user: Account,
val mainTabs: List<Int>,
val homeTabs: List<Int>,
val useDynamicColor: Boolean,

View File

@ -1,10 +1,10 @@
package com.gamedog.vididin.login
import com.gamedog.vididin.beans.User
import com.gamedog.vididin.beans.Account
class LoginInfoSave {
fun putUser(user: User?) {
fun putUser(user: Account?) {
UserLocalRepository.saveUser2Sp(user)
}

View File

@ -1,60 +1,52 @@
package com.gamedog.vididin.core.login.login
import com.ama.core.architecture.BaseApp
import com.ama.core.architecture.util.AsyncUtil
import com.ama.core.architecture.util.DateUtil
import com.ama.core.architecture.util.DeviceUtil
import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.beans.OnLoginStateEvent
import com.gamedog.vididin.beans.User
import com.gamedog.vididin.beans.Account
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
import dagger.hilt.android.EntryPointAccessors
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch
object LoginManager {
private var mAccount: User? = null
private var mAccount: Account? = null
fun initAccount() {
AsyncUtil.doGlobalAsync({
SpUtil.instance().getObject<User>(SpUtil.KEY_ACCOUNT)
SpUtil.instance().getObject<Account>(SpUtil.KEY_ACCOUNT)
}, onComplete = { item->
mAccount = item
if (mAccount == null) {
} else {
val deviceUUId = DeviceUtil.generateDeviceId()
mAccount = Account(accountId = "user_$deviceUUId", deviceUUId=deviceUUId, createdAt = DateUtil.getCurTimeMs())
}
})
/*val loginEntryPoint = EntryPointAccessors.fromApplication(BaseApp.appContext(), LoginEntryPoint::class.java)
preferencesDataSource = loginEntryPoint.appPreferencesDataSource()
applicationScope = loginEntryPoint.applicationScope()
isLoggedFlow = preferencesDataSource.userData.map { it.user }.distinctUntilChanged()
.map { it.id != 0 && it.token.isNotEmpty() }
// 启动监听
applicationScope.launch {
isLoggedFlow.collect {
isCurrentLogged = it
}
}*/
}
/*val loginEntryPoint = EntryPointAccessors.fromApplication(BaseApp.appContext(), LoginEntryPoint::class.java)
preferencesDataSource = loginEntryPoint.appPreferencesDataSource()
applicationScope = loginEntryPoint.applicationScope()
isLoggedFlow = preferencesDataSource.userData.map { it.user }.distinctUntilChanged()
.map { it.id != 0 && it.token.isNotEmpty() }
// 启动监听
applicationScope.launch {
isLoggedFlow.collect {
isCurrentLogged = it
}
}*/
fun getAccount() : Account? {
return mAccount
}
@ -71,7 +63,7 @@ object LoginManager {
var user: User? = null
var user: Account? = null
set(value) {
loginInfoSave.putUser(value)
field = value
@ -108,7 +100,7 @@ object LoginManager {
}
}
fun putUser(user: User?) {
fun putUser(user: Account?) {
this.user = user
}

View File

@ -1,15 +1,15 @@
package com.gamedog.vididin.login
import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.beans.User
import com.gamedog.vididin.beans.Account
object UserLocalRepository {
fun getUserFromSp(): User? {
fun getUserFromSp(): Account? {
return SpUtil.instance().getObject(SpUtil.KEY_ACCOUNT)
}
fun saveUser2Sp(account: User?) {
fun saveUser2Sp(account: Account?) {
SpUtil.instance().putObject(SpUtil.KEY_ACCOUNT, account)
}

View File

@ -80,6 +80,10 @@ object DateUtil {
return TimeUnit.MILLISECONDS.toDays(diffMillis)
}
fun getCurTimeMs(): Long {
return System.currentTimeMillis()
}
/**
* 两个时间点之间的天数差
*/

View File

@ -3,6 +3,7 @@ package com.ama.core.architecture.util
import android.content.Context
import android.os.Build
import android.provider.Settings
import com.ama.core.architecture.BaseApp
import java.util.*
@ -13,20 +14,20 @@ class DeviceUtil private constructor() {
/**
* public method
*/
fun generateDeviceId(context: Context): String {
fun generateDeviceId(): String {
val hardwareUUID = getHardwareUUID()
if (hardwareUUID.isNotBlank()) {
return hardwareUUID
}
// way2
val androidId = getAndroidId(context)
val androidId = getAndroidId(BaseApp.appContext())
if (androidId != null && isValidAndroidId(androidId)) {
return UUID.nameUUIDFromBytes(androidId.toByteArray()).toString()
}
// finalthere's no other better way
return generateAndSaveRandomUUID(context)
return generateAndSaveRandomUUID(BaseApp.appContext())
}
/**