package com.xw.yunwei.ui.user.mine.info
|
|
import android.app.Application
|
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.map
|
import com.xw.common.base.BaseViewModel
|
import com.xw.common.utils.BindUtils.getUrl
|
import com.xw.common.utils.KeyPreferences
|
import com.xw.common.utils.MMKVManager
|
import com.xw.common.viewAdapter.ImageDefault
|
import com.xw.yunwei.model.UserInfo
|
import com.xw.yunwei.net.UserRepository
|
import org.koin.core.component.inject
|
import kotlin.getValue
|
|
class UserInfoVM(application: Application) : BaseViewModel(application) {
|
|
val userRepository: UserRepository by inject()
|
val userInfo = MutableLiveData(MMKVManager.getInstance().getModel<UserInfo>(KeyPreferences.USER))
|
val avatar = MutableLiveData(ImageDefault("", com.xw.common.R.drawable.svg_avatar))
|
|
val name = userInfo.map { it?.nickName }
|
val sex = MutableLiveData("")
|
val phone = userInfo.map { it?.phoneNumber }
|
val team = MutableLiveData("")
|
val captain = MutableLiveData("")
|
|
fun getInfo() {
|
launchRequestFlow(
|
showLoading = false,
|
flowBlock = { userRepository.getUserInfo() },
|
onCollect = {
|
avatar.postValue(avatar.value!!.apply { this.url = it?.avatar?.getUrl() ?: "" })
|
captain.postValue(it?.fleet?.fleetLeaderName ?: "无")
|
team.postValue(it?.fleet?.fleetName ?: "无")
|
sex.postValue(if(it?.sex == 1) "男" else "女")
|
}
|
)
|
}
|
}
|