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 package com.gamedog.vididin.beans
data class User( data class Account(
val accountId: String, val accountId: String,
val deviceUUId: String, val deviceUUId: String,
val token: String, val token: String="",
val createdAt: Long, val createdAt: Long,
) )

View File

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

View File

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

View File

@ -1,60 +1,52 @@
package com.gamedog.vididin.core.login.login 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.AsyncUtil
import com.ama.core.architecture.util.DateUtil
import com.ama.core.architecture.util.DeviceUtil
import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.beans.OnLoginStateEvent 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.LoginInfoSave
import com.gamedog.vididin.login.OnLoginEvent import com.gamedog.vididin.login.OnLoginEvent
import com.gamedog.vididin.router.Router import com.gamedog.vididin.router.Router
import com.pengxr.modular.eventbus.generated.events.EventDefineOfUserEvents 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 { object LoginManager {
private var mAccount: User? = null private var mAccount: Account? = null
fun initAccount() { fun initAccount() {
AsyncUtil.doGlobalAsync({ AsyncUtil.doGlobalAsync({
SpUtil.instance().getObject<User>(SpUtil.KEY_ACCOUNT) SpUtil.instance().getObject<Account>(SpUtil.KEY_ACCOUNT)
}, onComplete = { item-> }, onComplete = { item->
mAccount = item mAccount = item
if (mAccount == null) { if (mAccount == null) {
val deviceUUId = DeviceUtil.generateDeviceId()
} else { 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) { set(value) {
loginInfoSave.putUser(value) loginInfoSave.putUser(value)
field = value field = value
@ -108,7 +100,7 @@ object LoginManager {
} }
} }
fun putUser(user: User?) { fun putUser(user: Account?) {
this.user = user this.user = user
} }

View File

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

View File

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