账号生成

This commit is contained in:
renhaoting 2025-11-25 18:23:37 +08:00
parent 6a849aa343
commit d3fab79e75
7 changed files with 200 additions and 314 deletions

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin
import com.ama.core.architecture.BaseApp
import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.manager.TaskManager
import dagger.hilt.android.HiltAndroidApp
@ -18,6 +19,7 @@ class VidiDinApp : BaseApp() {
}
private fun initManagers() {
AccountManager.getAccount()
TaskManager.instance()
}
}

View File

@ -0,0 +1,42 @@
package com.gamedog.vididin.core.login.login
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.Account
object AccountManager {
private val mAccount: Account? by lazy {
var account = SpUtil.instance().getObject<Account>(SpUtil.KEY_ACCOUNT)
if (account == null) {
val deviceUUId = DeviceUtil.generateDeviceId()
account = Account(accountId = "user_$deviceUUId", deviceUUId=deviceUUId, createdAt = DateUtil.getCurTimeMs())
account.let {
SpUtil.instance().putObject(SpUtil.KEY_ACCOUNT, account)
}
}
account
}
fun getAccount() : Account? {
return mAccount
}
/*fun initAccount() : Account {
AsyncUtil.doGlobalAsync({
SpUtil.instance().getObject<Account>(SpUtil.KEY_ACCOUNT)
}, onComplete = { item->
mAccount = item
if (mAccount == null) {
val deviceUUId = DeviceUtil.generateDeviceId()
mAccount = Account(accountId = "user_$deviceUUId", deviceUUId=deviceUUId, createdAt = DateUtil.getCurTimeMs())
}
})
}*/
}

View File

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

View File

@ -1,116 +0,0 @@
package com.gamedog.vididin.core.login.login
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.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
object LoginManager {
private var mAccount: Account? = null
fun initAccount() {
AsyncUtil.doGlobalAsync({
SpUtil.instance().getObject<Account>(SpUtil.KEY_ACCOUNT)
}, onComplete = { item->
mAccount = item
if (mAccount == null) {
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
}
}*/
fun getAccount() : Account? {
return mAccount
}
// old ---------------------------------
private val loginInfoSave by lazy {
LoginInfoSave()
}
var user: Account? = 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: Account?) {
this.user = user
}
fun putToken(token: String?) {
this.token = token
}
}

View File

@ -1,24 +0,0 @@
package com.gamedog.vididin.login
import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.beans.Account
object UserLocalRepository {
fun getUserFromSp(): Account? {
return SpUtil.instance().getObject(SpUtil.KEY_ACCOUNT)
}
fun saveUser2Sp(account: Account?) {
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

@ -6,7 +6,11 @@ import java.util.*
import java.util.concurrent.TimeUnit
object DateUtil {
class DateUtil private constructor() {
companion object {
private const val FORMAT_DATE = "yyyy-MM-dd"
private const val FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss"
@ -160,4 +164,6 @@ object DateUtil {
else -> 0L
}
}
}
}

View File

@ -7,10 +7,7 @@ import com.ama.core.architecture.BaseApp
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import java.lang.reflect.Type
import java.nio.charset.Charset
class SpUtil private constructor(spFileName: String) {
@ -110,8 +107,10 @@ class SpUtil private constructor(spFileName: String) {
val encryptedData = getString(key)
if (encryptedData.isBlank()) return defaultObj
val jsonString = String(Base64.decode(encryptedData, Base64.DEFAULT))
gson.fromJson(jsonString, T::class.java) ?: defaultObj
val jsonString = String(Base64.decode(encryptedData, Base64.DEFAULT), Charset.forName("UTF-8"))
val type = object : TypeToken<T>() {}.type
gson.fromJson(jsonString, type) ?: defaultObj
} catch (e: Exception) {
e.printStackTrace()
defaultObj