ソースを参照

feat: 增加个人信息查询接口

DoggyZhang 3 ヶ月 前
コミット
50eec2bb99
16 ファイル変更82 行追加159 行削除
  1. 0 6
      app/src/main/java/com/adealink/weparty/module/profile/IProfileService.kt
  2. 0 14
      app/src/main/java/com/adealink/weparty/module/profile/ProfileModule.kt
  3. 5 4
      app/src/main/java/com/adealink/weparty/module/profile/viewmodel/IProfileViewModel.kt
  4. 0 5
      module/profile/src/main/java/com/adealink/weparty/profile/ProfileServiceImpl.kt
  5. 5 2
      module/profile/src/main/java/com/adealink/weparty/profile/UserProfileActivity.kt
  6. 12 14
      module/profile/src/main/java/com/adealink/weparty/profile/comp/BaseProfileViewComp.kt
  7. 6 11
      module/profile/src/main/java/com/adealink/weparty/profile/comp/ProfileHeaderComp.kt
  8. 5 2
      module/profile/src/main/java/com/adealink/weparty/profile/data/ProfileData.kt
  9. 4 26
      module/profile/src/main/java/com/adealink/weparty/profile/datasource/remote/ProfileHttpService.kt
  10. 2 1
      module/profile/src/main/java/com/adealink/weparty/profile/edit/EditProfileActivity.kt
  11. 0 7
      module/profile/src/main/java/com/adealink/weparty/profile/manager/IProfileManager.kt
  12. 17 47
      module/profile/src/main/java/com/adealink/weparty/profile/manager/ProfileManager.kt
  13. 3 2
      module/profile/src/main/java/com/adealink/weparty/profile/me/MeFragment.kt
  14. 4 5
      module/profile/src/main/java/com/adealink/weparty/profile/me/comp/MeHeaderComp.kt
  15. 17 10
      module/profile/src/main/java/com/adealink/weparty/profile/viewmodel/ProfileViewModel.kt
  16. 2 3
      module/share/src/main/java/com/adealink/weparty/share/poster/SharePosterActivity.kt

+ 0 - 6
app/src/main/java/com/adealink/weparty/module/profile/IProfileService.kt

@@ -34,11 +34,5 @@ interface IProfileService : IService<IProfileService> {
         attrSet: Set<UserConfigType>? = NECESSARY_USER_ATTR_SET,
     ): Rlt<Map<String, UserInfo>>
 
-
-    suspend fun getUsersInfoBySids(
-        sidList: List<String>,
-        attrSet: Set<UserConfigType>? = NECESSARY_USER_ATTR_SET,
-    ): Rlt<List<UserInfo>>
-
     fun getProfileViewModel(owner: ViewModelStoreOwner): IProfileViewModel?
 }

+ 0 - 14
app/src/main/java/com/adealink/weparty/module/profile/ProfileModule.kt

@@ -62,13 +62,6 @@ object ProfileModule : BaseDynamicModule<IProfileService>(IProfileService::class
                 return Rlt.Failed(IError())
             }
 
-            override suspend fun getUsersInfoBySids(
-                sidList: List<String>,
-                attrSet: Set<UserConfigType>?
-            ): Rlt<List<UserInfo>> {
-                return Rlt.Failed(IError())
-            }
-
             override fun getProfileViewModel(owner: ViewModelStoreOwner): IProfileViewModel? {
                 return null
             }
@@ -119,13 +112,6 @@ object ProfileModule : BaseDynamicModule<IProfileService>(IProfileService::class
         return getService().getUsersInfoByUid(uidSet, cache, attrSet)
     }
 
-    override suspend fun getUsersInfoBySids(
-        sidList: List<String>,
-        attrSet: Set<UserConfigType>?
-    ): Rlt<List<UserInfo>> {
-        return getService().getUsersInfoBySids(sidList, attrSet)
-    }
-
     override fun getProfileViewModel(owner: ViewModelStoreOwner): IProfileViewModel? {
         return getService().getProfileViewModel(owner)
     }

+ 5 - 4
app/src/main/java/com/adealink/weparty/module/profile/viewmodel/IProfileViewModel.kt

@@ -6,12 +6,13 @@ import com.adealink.weparty.module.profile.data.UserInfo
 
 interface IProfileViewModel {
 
-    val myUseInfoLD: LiveData<UserInfo?>
-    fun pullMyUserInfo()
+    val userInfoLD: LiveData<UserInfo?>
 
-    fun getMyUserInfo(): UserInfo?
+    fun pullUserInfoBy(uid: String, cache: Boolean)
 
-    fun getUserInfoBy(uid: String, cache: Boolean)
+    fun pullUserInoBy(uids: List<String>, cache: Boolean): LiveData<Rlt<Map<String, UserInfo>>>
+
+    fun getUserInfoBy(uid: String): UserInfo?
 
     fun updateProfile(
         newAvatarPath: String? = null,

+ 0 - 5
module/profile/src/main/java/com/adealink/weparty/profile/ProfileServiceImpl.kt

@@ -61,11 +61,6 @@ class ProfileServiceImpl : IProfileService {
         return profileManager.getUsersInfoByUid(uidSet, cache, attrSet)
     }
 
-
-    override suspend fun getUsersInfoBySids(sidList: List<String>, attrSet: Set<UserConfigType>?): Rlt<List<UserInfo>> {
-        return profileManager.getUsersInfoBySids(sidList, attrSet)
-    }
-
     override fun getProfileViewModel(owner: ViewModelStoreOwner): IProfileViewModel {
         return ViewModelProvider(owner, ProfileViewModelFactory())[ProfileViewModel::class.java]
     }

+ 5 - 2
module/profile/src/main/java/com/adealink/weparty/profile/UserProfileActivity.kt

@@ -1,6 +1,7 @@
 package com.adealink.weparty.profile
 
 import android.os.Bundle
+import androidx.activity.viewModels
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.core.view.updateLayoutParams
 import androidx.fragment.app.Fragment
@@ -19,6 +20,8 @@ import com.adealink.weparty.profile.comp.ProfileBottomComp
 import com.adealink.weparty.profile.comp.ProfileHeaderComp
 import com.adealink.weparty.profile.comp.ProfileToolBarViewComp
 import com.adealink.weparty.profile.databinding.ActivityUserProfileBinding
+import com.adealink.weparty.profile.viewmodel.ProfileViewModel
+import com.adealink.weparty.profile.viewmodel.ProfileViewModelFactory
 
 @RouterUri(
     path = [Profile.UserProfile.PATH],
@@ -31,6 +34,7 @@ class UserProfileActivity : BaseActivity() {
 
     private val binding by viewBinding(ActivityUserProfileBinding::inflate)
 
+    private val profileViewModel by viewModels<ProfileViewModel> { ProfileViewModelFactory() }
     private lateinit var profilePageAdapter: ProfilePageAdapter
 
     override fun onBeforeCreate() {
@@ -64,10 +68,9 @@ class UserProfileActivity : BaseActivity() {
 
     override fun onResume() {
         super.onResume()
-        // TODO: 刷新个人页状态
+        profileViewModel.pullUserInfoBy(userUid, false)
     }
 
-
     internal inner class ProfilePageAdapter : BaseActivityTabFragmentStateAdapter(this) {
 
         override fun getTabName(pos: Int): String {

+ 12 - 14
module/profile/src/main/java/com/adealink/weparty/profile/comp/BaseProfileViewComp.kt

@@ -3,8 +3,11 @@ package com.adealink.weparty.profile.comp
 import androidx.lifecycle.LifecycleOwner
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.mvvm.view.ViewComponent
+import com.adealink.frame.mvvm.viewmodel.activityViewModels
 import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.profile.data.UserInfo
+import com.adealink.weparty.profile.viewmodel.ProfileViewModel
+import com.adealink.weparty.profile.viewmodel.ProfileViewModelFactory
 
 abstract class BaseProfileViewComp(
     lifecycleOwner: LifecycleOwner,
@@ -12,29 +15,24 @@ abstract class BaseProfileViewComp(
 ) : ViewComponent(lifecycleOwner) {
 
     val isSelf by fastLazy { userUid == ProfileModule.getMyUid() }
-    val profileViewModel by fastLazy { ProfileModule.getProfileViewModel(requireActivity()) }
+    val profileViewModel by activityViewModels<ProfileViewModel> { ProfileViewModelFactory() }
 
     override fun onCreate() {
         super.onCreate()
         initView()
         observeViewModel()
-
-        //使用缓存,快速展示
-        val cacheUserInfo = ProfileModule.getCacheUserInfo(uid = userUid)
-        cacheUserInfo?.let {
-            updateUI(cacheUserInfo, true)
-        }
-
-        //监听用户信息变化
-//        profileViewModel?.uidUserInfoRltLD?.observe(viewLifecycleOwner) { rlt ->
-//            val userInfo = (rlt as? Rlt.Success)?.data ?: return@observe
-//            updateUI(userInfo)
-//        }
+        loadData()
     }
 
 
     open fun initView() {}
     open fun observeViewModel() {}
-    open fun updateUI(userInfo: UserInfo, fromCache: Boolean = false) {}
+
+    open fun loadData() {
+        //使用缓存,快速展示
+        updateUI(ProfileModule.getCacheUserInfo(uid = userUid))
+    }
+
+    open fun updateUI(userInfo: UserInfo?) {}
 
 }

+ 6 - 11
module/profile/src/main/java/com/adealink/weparty/profile/comp/ProfileHeaderComp.kt

@@ -14,26 +14,21 @@ class ProfileHeaderComp(
 ) : BaseProfileViewComp(lifecycleOwner, userUid) {
 
     override fun initView() {
-        binding.ivBg.setImageUrl("https://im.sdk.qcloud.com/download/tuikit-resource/community-cover/community_cover_default.png")
-        binding.tvName.text = "Test Name"
-        binding.tvUserId.text = "ID 123456"
-        binding.tvEvaluate.text = "4.2"
-
         binding.tvEvaluate.onClick {
             showEvaluateDialog()
         }
     }
 
     override fun observeViewModel() {
+        profileViewModel.userInfoLD.observe(viewLifecycleOwner) {
+            updateUI(it)
+        }
     }
 
     @SuppressLint("SetTextI18n")
-    override fun updateUI(userInfo: UserInfo, fromCache: Boolean) {
-        binding.tvName.text = userInfo.nickName
-        binding.tvUserId.text = "ID ${userInfo.uid}"
-
-        // TODO: 需要查询陪玩信息
-        //binding.tvEvaluate.text = userInfo.star?.toString() ?: "5.0"
+    override fun updateUI(userInfo: UserInfo?) {
+        binding.tvName.text = userInfo?.nickName
+        binding.tvUserId.text = "ID ${userInfo?.uid}"
     }
 
     private fun showEvaluateDialog() {

+ 5 - 2
module/profile/src/main/java/com/adealink/weparty/profile/data/ProfileData.kt

@@ -7,9 +7,12 @@ data class MyUserInfoRes(
     @SerializedName("userProfile") val userInfo: UserInfo
 )
 
+data class GetUserinfoReq(
+    @SerializedName("userNos") val uids: List<String>
+)
+
 data class GetUserInfosRes(
-    @SerializedName("uid") val uid: String,
-    @SerializedName("userInfo") val userInfo: UserInfo,
+    @SerializedName("list") val list: List<UserInfo>
 )
 
 

+ 4 - 26
module/profile/src/main/java/com/adealink/weparty/profile/datasource/remote/ProfileHttpService.kt

@@ -2,8 +2,8 @@ package com.adealink.weparty.profile.datasource.remote
 
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.network.data.Res
-import com.adealink.weparty.module.profile.data.UserInfo
 import com.adealink.weparty.profile.data.GetUserInfosRes
+import com.adealink.weparty.profile.data.GetUserinfoReq
 import com.adealink.weparty.profile.data.MyUserInfoRes
 import com.adealink.weparty.profile.data.UpdateMyUserInfoReq
 import com.adealink.weparty.profile.search.data.SearchRes
@@ -11,7 +11,6 @@ import retrofit2.http.Body
 import retrofit2.http.Core
 import retrofit2.http.GET
 import retrofit2.http.POST
-import retrofit2.http.Path
 import retrofit2.http.Query
 
 interface ProfileHttpService {
@@ -25,32 +24,11 @@ interface ProfileHttpService {
         @Body req: UpdateMyUserInfoReq
     ): Rlt<Res<Any>>
 
-
-    @Core
-    @GET("user/getUserInfoByUid/{uid}")
-    suspend fun getUserInfoByUid(
-        @Path("uid") uid: String,
-        @Query("attrs") attrs: List<Int>? = null,
-    ): Rlt<Res<UserInfo>>
-
-
-    @Core
-    @GET("user/getUserInfoByGoodOrShortId/{id}")
-    suspend fun getUserInfoById(@Path("id") id: String): Rlt<Res<UserInfo>>
-
-    @Core
-    @GET("user/getUserInfoListByShortId")
-    suspend fun getUserInfoListBySids(
-        @Query("ids") sids: List<String>,
-        @Query("attrs") attrs: List<Int>? = null,
-    ): Rlt<Res<List<GetUserInfosRes>>>
-
     @Core
-    @GET("user/getUserInfoListByUid")
+    @POST("user/get/infos")
     suspend fun getUserInfosByUid(
-        @Query("ids") uids: List<String>,
-        @Query("attrs") attrs: List<Int>? = null,
-    ): Rlt<Res<List<GetUserInfosRes>>>
+        @Body req: GetUserinfoReq
+    ): Rlt<Res<GetUserInfosRes>>
 
 
     @GET("user/search")

+ 2 - 1
module/profile/src/main/java/com/adealink/weparty/profile/edit/EditProfileActivity.kt

@@ -16,6 +16,7 @@ import com.adealink.weparty.commonui.BaseActivity
 import com.adealink.weparty.commonui.toast.util.showFailedToast
 import com.adealink.weparty.commonui.toast.util.showToast
 import com.adealink.weparty.module.profile.Profile
+import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.profile.data.Gender
 import com.adealink.weparty.profile.R
 import com.adealink.weparty.profile.databinding.ActivityEditProfileBinding
@@ -72,7 +73,7 @@ class EditProfileActivity : BaseActivity() {
 
     override fun loadData() {
         super.loadData()
-        val myUserInfo = profileViewModel.getMyUserInfo()
+        val myUserInfo = ProfileModule.getMyUserInfo()
         binding.ivAvatar.setImageUrl(myUserInfo?.avatar)
         binding.etUserName.setText(myUserInfo?.nickName)
         selectGender(Gender.map(myUserInfo?.gender))

+ 0 - 7
module/profile/src/main/java/com/adealink/weparty/profile/manager/IProfileManager.kt

@@ -33,11 +33,4 @@ interface IProfileManager : IBaseFrame<IProfileListener> {
         attrSet: Set<UserConfigType>? = setOf(UserConfigType.USER_ATTR_BASIC),
     ): Rlt<Map<String, UserInfo>>
 
-    suspend fun getUserInfoByGoodOrShortId(id: String): Rlt<UserInfo>
-
-    suspend fun getUsersInfoBySids(
-        sidList: List<String>,
-        attrSet: Set<UserConfigType>? = setOf(UserConfigType.USER_ATTR_BASIC),
-    ): Rlt<List<UserInfo>>
-
 }

+ 17 - 47
module/profile/src/main/java/com/adealink/weparty/profile/manager/ProfileManager.kt

@@ -14,6 +14,7 @@ import com.adealink.weparty.module.profile.data.UserConfigType
 import com.adealink.weparty.module.profile.data.UserConfigType.Companion.NECESSARY_USER_ATTR_SET
 import com.adealink.weparty.module.profile.data.UserInfo
 import com.adealink.weparty.module.profile.listener.IProfileListener
+import com.adealink.weparty.profile.data.GetUserinfoReq
 import com.adealink.weparty.profile.datasource.remote.ProfileHttpService
 import com.adealink.weparty.storage.AppPref
 
@@ -117,15 +118,19 @@ class ProfileManager : BaseFrame<IProfileListener>(), IProfileManager {
             "ProfileManager.getUserInfoByUid, uid:${uid}, reqAttrSet:${reqAttrSet.map { it.type }}"
         )
         return when (val result =
-            profileHttpService.getUserInfoByUid(uid, reqAttrSet.map { it.type })) {
+            profileHttpService.getUserInfosByUid(GetUserinfoReq(listOf(uid)))) {
             is Rlt.Success -> {
-                val info = result.data.data ?: return Rlt.Failed(CommonDataNullError())
+                val res = result.data.data ?: return Rlt.Failed(CommonDataNullError())
+                val userInfo = res.list.firstOrNull()
+                if (userInfo == null) {
+                    return Rlt.Failed(CommonDataNullError())
+                }
                 if (uid == getMyUid()) {
-                    setMyUserInfo(info, reqAttrSet)
+                    setMyUserInfo(userInfo, reqAttrSet)
                 } else {
-                    updateUserInfoCache(uid, info, reqAttrSet)//2
+                    updateUserInfoCache(uid, userInfo, reqAttrSet)
                 }
-                Rlt.Success(info)
+                Rlt.Success(userInfo)
             }
 
             is Rlt.Failed -> {
@@ -170,56 +175,21 @@ class ProfileManager : BaseFrame<IProfileListener>(), IProfileManager {
                 addAll(it)
             }
         }
-        val rlt = profileHttpService.getUserInfosByUid(reqUidList, reqAttrSet.map { it.type })
+        val rlt = profileHttpService.getUserInfosByUid(GetUserinfoReq(reqUidList))
         if (rlt is Rlt.Success) {
-            val getUserInfoResList = rlt.data.data
-            getUserInfoResList?.forEach {
-                userInfoMap[it.uid] = it.userInfo
-                if (it.uid == AccountModule.uid) {
-                    setMyUserInfo(it.userInfo, reqAttrSet)
+            val getUserInfoResList = rlt.data.data?.list
+            getUserInfoResList?.forEach {userInfo->
+                userInfoMap[userInfo.uid] = userInfo
+                if (userInfo.uid == AccountModule.uid) {
+                    setMyUserInfo(userInfo, reqAttrSet)
                 } else {
-                    updateUserInfoCache(it.uid, it.userInfo, reqAttrSet)//3
+                    updateUserInfoCache(userInfo.uid, userInfo, reqAttrSet)
                 }
             }
         }
         return Rlt.Success(userInfoMap)
     }
 
-
-    override suspend fun getUserInfoByGoodOrShortId(id: String): Rlt<UserInfo> {
-        return when (val result = profileHttpService.getUserInfoById(id)) {
-            is Rlt.Success -> {
-                val userInfo = result.data.data
-                if (userInfo == null) {
-                    Rlt.Failed(CommonDataNullError())
-                } else {
-                    Rlt.Success(userInfo)
-                }
-            }
-
-            is Rlt.Failed -> result
-        }
-    }
-
-    override suspend fun getUsersInfoBySids(
-        sidList: List<String>,
-        attrSet: Set<UserConfigType>?
-    ): Rlt<List<UserInfo>> {
-        return when (val result =
-            profileHttpService.getUserInfoListBySids(sidList, attrSet?.map { it.type })) {
-            is Rlt.Success -> {
-                val data = result.data.data
-                if (data == null) {
-                    Rlt.Failed(CommonDataNullError())
-                } else {
-                    Rlt.Success(data.map { it.userInfo })
-                }
-            }
-
-            is Rlt.Failed -> result
-        }
-    }
-
     private fun updateUserInfoCache(
         uid: String,
         userInfo: UserInfo,

+ 3 - 2
module/profile/src/main/java/com/adealink/weparty/profile/me/MeFragment.kt

@@ -19,6 +19,7 @@ import com.adealink.weparty.commonui.widget.BottomDialogFragment
 import com.adealink.weparty.commonui.widget.CenterImageSpan
 import com.adealink.weparty.module.account.AccountModule
 import com.adealink.weparty.module.profile.Profile
+import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.share.Share
 import com.adealink.weparty.profile.R
 import com.adealink.weparty.profile.databinding.FragmentMeBinding
@@ -95,12 +96,12 @@ class MeFragment : BaseFragment(R.layout.fragment_me) {
 
     override fun onResume() {
         super.onResume()
-        profileViewModel.pullMyUserInfo()
+        profileViewModel.pullUserInfoBy(ProfileModule.getMyUid(), false)
     }
 
     override fun observeViewModel() {
         super.observeViewModel()
-        profileViewModel.myUseInfoLD.observe(viewLifecycleOwner) {
+        profileViewModel.userInfoLD.observe(viewLifecycleOwner) {
 
         }
     }

+ 4 - 5
module/profile/src/main/java/com/adealink/weparty/profile/me/comp/MeHeaderComp.kt

@@ -9,6 +9,7 @@ import com.adealink.frame.util.copyToClipBoard
 import com.adealink.frame.util.onClick
 import com.adealink.weparty.commonui.toast.util.showToast
 import com.adealink.weparty.module.profile.Profile
+import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.profile.data.UserInfo
 import com.adealink.weparty.profile.R
 import com.adealink.weparty.profile.databinding.LayoutMeHeaderBinding
@@ -54,15 +55,13 @@ class MeHeaderComp(
     }
 
     private fun observeViewModel() {
-        profileViewModel.myUseInfoLD.observe(viewLifecycleOwner) { user ->
+        profileViewModel.userInfoLD.observe(viewLifecycleOwner) { user ->
             updateHeader(user)
         }
     }
 
     private fun loadData() {
-        profileViewModel.getMyUserInfo()?.let {
-            updateHeader(it)
-        }
+        updateHeader(ProfileModule.getMyUserInfo())
     }
 
     private fun updateHeader(userInfo: UserInfo?) {
@@ -72,7 +71,7 @@ class MeHeaderComp(
     }
 
     private fun goProfile() {
-        val myUseInfo = profileViewModel.myUseInfoLD.value ?: return
+        val myUseInfo = profileViewModel.userInfoLD.value ?: return
         if (myUseInfo.uid.isEmpty()) {
             return
         }

+ 17 - 10
module/profile/src/main/java/com/adealink/weparty/profile/viewmodel/ProfileViewModel.kt

@@ -21,33 +21,40 @@ import kotlinx.coroutines.launch
 
 class ProfileViewModel : BaseViewModel(), IProfileViewModel, IProfileListener {
 
-    override val myUseInfoLD: LiveData<UserInfo?> = MutableLiveData<UserInfo?>()
+    override val userInfoLD: LiveData<UserInfo?> = MutableLiveData<UserInfo?>()
 
     private val profileHttpService by lazy {
         App.instance.networkService.getHttpService(ProfileHttpService::class.java)
     }
 
-    override fun getMyUserInfo(): UserInfo? {
-        return profileManager.getMyUserInfo()
-    }
-
-    override fun pullMyUserInfo() {
+    override fun pullUserInfoBy(uid: String, cache: Boolean) {
         viewModelScope.launch {
-            val rlt = profileManager.pullMyUserInfo()
+            val rlt = profileManager.getUserInfoByUid(uid, cache)
             when (rlt) {
                 is Rlt.Failed -> {
-                    myUseInfoLD.send(null)
+                    userInfoLD.send(null)
                 }
 
                 is Rlt.Success -> {
-                    myUseInfoLD.send(rlt.data)
+                    userInfoLD.send(rlt.data)
                 }
             }
         }
     }
 
-    override fun getUserInfoBy(uid: String, cache: Boolean) {
+    override fun pullUserInoBy(
+        uids: List<String>,
+        cache: Boolean
+    ): LiveData<Rlt<Map<String, UserInfo>>> {
+        val liveData = OnceMutableLiveData<Rlt<Map<String, UserInfo>>>()
+        viewModelScope.launch {
+            liveData.send(profileManager.getUsersInfoByUid(uids.toSet(), cache))
+        }
+        return liveData
+    }
 
+    override fun getUserInfoBy(uid: String): UserInfo? {
+        return profileManager.getCacheUserInfo(uid)
     }
 
     override fun updateProfile(

+ 2 - 3
module/share/src/main/java/com/adealink/weparty/share/poster/SharePosterActivity.kt

@@ -57,13 +57,12 @@ class SharePosterActivity : BaseActivity(), PhotoItemViewBinder.OnPhotoSelectedL
 
     override fun loadData() {
         super.loadData()
-        val myUserInfo = profileViewModel?.getMyUserInfo()
-        updatePoster(myUserInfo)
+        updatePoster(ProfileModule.getMyUserInfo())
     }
 
     override fun observeViewModel() {
         super.observeViewModel()
-        profileViewModel?.myUseInfoLD?.observe(this) {
+        profileViewModel?.userInfoLD?.observe(this) {
             updatePoster(it)
         }
     }