我的页面UI修改和数据刷新逻辑优化
This commit is contained in:
@@ -20,12 +20,16 @@ class MeViewModel : BaseViewModel() {
|
||||
val gameInfoListLiveData: LiveData<List<List<GameInfo>>> = _gameInfoListLiveData
|
||||
|
||||
init {
|
||||
refreshData()
|
||||
}
|
||||
|
||||
fun refreshData() {
|
||||
getBannerInfo()
|
||||
requestMeCenterInfoList()
|
||||
getGameList()
|
||||
}
|
||||
|
||||
fun getBannerInfo() {
|
||||
private fun getBannerInfo() {
|
||||
safeLaunch(
|
||||
block = {
|
||||
_bannerLiveData.value = HomeModel.getHomeBanner("10")
|
||||
@@ -36,7 +40,7 @@ class MeViewModel : BaseViewModel() {
|
||||
)
|
||||
}
|
||||
|
||||
fun requestMeCenterInfoList() {
|
||||
private fun requestMeCenterInfoList() {
|
||||
safeLaunch(
|
||||
block = {
|
||||
_meCenterInfoLiveData.value = transformList(HomeModel.requestMeCenterInfoList(), 8)
|
||||
@@ -47,7 +51,7 @@ class MeViewModel : BaseViewModel() {
|
||||
)
|
||||
}
|
||||
|
||||
fun getGameList() {
|
||||
private fun getGameList() {
|
||||
safeLaunch(
|
||||
block = {
|
||||
_gameInfoListLiveData.value = transformList(HomeModel.getGameList(), 4)
|
||||
|
@@ -26,7 +26,6 @@ import com.yizhuan.erban.home.HomeViewModel
|
||||
import com.yizhuan.erban.home.MeViewModel
|
||||
import com.yizhuan.erban.home.activity.RoomHistoryListActivity
|
||||
import com.yizhuan.erban.home.activity.VisitorListActivity
|
||||
import com.yizhuan.erban.home.adapter.BannerAdapter
|
||||
import com.yizhuan.erban.home.adapter.MeCenterAdapter
|
||||
import com.yizhuan.erban.home.adapter.MeGameAdapter
|
||||
import com.yizhuan.erban.home.helper.BannerHelper
|
||||
@@ -42,15 +41,12 @@ import com.yizhuan.erban.ui.widget.OnPageSelectedListener
|
||||
import com.yizhuan.erban.vip.VipMainActivity
|
||||
import com.yizhuan.erban.vip.VipViewModel
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo
|
||||
import com.yizhuan.xchat_android_core.home.event.VisitorUnreadCountEvent
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment
|
||||
import com.yizhuan.xchat_android_core.level.UserLevelVo
|
||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager
|
||||
import com.yizhuan.xchat_android_core.manager.RelationShipEvent
|
||||
import com.yizhuan.xchat_android_core.noble.NobleProtocol
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil
|
||||
import com.yizhuan.xchat_android_core.pay.PayModel
|
||||
import com.yizhuan.xchat_android_core.pay.event.GetWalletInfoEvent
|
||||
import com.yizhuan.xchat_android_core.pay.event.UpdateWalletInfoEvent
|
||||
import com.yizhuan.xchat_android_core.room.bean.MeCenterInfo
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo
|
||||
@@ -61,9 +57,7 @@ import com.yizhuan.xchat_android_core.user.UserModel
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo
|
||||
import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent
|
||||
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils
|
||||
import com.yizhuan.xchat_android_core.utils.LogUtils
|
||||
import com.yizhuan.xchat_android_core.utils.StarUtils
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBusHelper
|
||||
import com.yizhuan.xchat_android_library.utils.FormatUtils
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
@@ -109,18 +103,7 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
override fun initiate() {
|
||||
EventBus.getDefault().register(this)
|
||||
vipViewModel.getVipPageInfo()
|
||||
RxBusHelper.doOnMainThread(
|
||||
NobleProtocol::class.java,
|
||||
mCompositeDisposable
|
||||
) { nobleProtocol: NobleProtocol ->
|
||||
val second = nobleProtocol.second
|
||||
if (second == CustomAttachment.CUSTOM_MESS_SUB_OPENNOBLE || second == CustomAttachment.CUSTOM_MESS_SUB_RENEWNOBLE) {
|
||||
requestUpdateUserInfo()
|
||||
} else if (second == CustomAttachment.CUSTOM_MESS_SUB_HADEXPIRE) {
|
||||
mBinding.ivUserNobleLevel.visibility = View.GONE
|
||||
mBinding.ivAvatarHeadWear.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
mCompositeDisposable.add(
|
||||
IMNetEaseManager.get()
|
||||
.relationShipEventObservable
|
||||
@@ -129,10 +112,6 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
}
|
||||
)
|
||||
|
||||
val walletInfo = PayModel.get().currentWalletInfo
|
||||
if (walletInfo != null) {
|
||||
mBinding.tvDiamondNum.text = FormatUtils.formatBigInteger(walletInfo.diamondNum)
|
||||
}
|
||||
meViewModel.bannerLiveData.observe(viewLifecycleOwner) {
|
||||
BannerHelper.setBanner(
|
||||
mBinding.rollView, it
|
||||
@@ -165,11 +144,13 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
homeViewModel.openGameRoomLiveData.observe(viewLifecycleOwner) {
|
||||
it?.let {
|
||||
OpenRoomHelper.openRoom(mContext as BaseActivity, RoomInfo.ROOMTYPE_GAME, it)
|
||||
}
|
||||
}
|
||||
|
||||
vipViewModel.myVipInfoLiveData.observe(viewLifecycleOwner) {
|
||||
it?.let {
|
||||
mBinding.ivVipIcon.isVisible = true
|
||||
@@ -180,11 +161,13 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
mBinding.tvNextVipName.text = it.nextVipName
|
||||
mBinding.seekBarVip.max = it.levelUpScore
|
||||
mBinding.seekBarVip.progress = it.currScore.coerceAtMost(it.levelUpScore)
|
||||
mBinding.meItemVip.setBackgroundResource(R.drawable.bg_vip_me_entrance_opened)
|
||||
} ?: run {
|
||||
mBinding.ivVipIcon.isVisible = false
|
||||
mBinding.flVipSeek.isVisible = false
|
||||
mBinding.tvVipName.text = "贵族中心"
|
||||
mBinding.tvVipDesc.text = "开通贵族立享各项特权>>"
|
||||
mBinding.meItemVip.setBackgroundResource(R.drawable.bg_vip_me_entrance)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,57 +299,26 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
initUserDate()
|
||||
requestUpdateUserInfo()
|
||||
LogUtils.d("onResume")
|
||||
}
|
||||
|
||||
private fun initUserDate() {
|
||||
mUserInfo = UserModel.get().cacheLoginUserInfo
|
||||
setUserData()
|
||||
if (mUserInfo?.isReview == true) {
|
||||
requestUpdateUserInfo()
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun setUserData() {
|
||||
mUserInfo = UserModel.get().cacheLoginUserInfo
|
||||
mUserInfo?.let {
|
||||
mBinding.userInfo = mUserInfo
|
||||
mBinding.tvUserId.text = String.format(
|
||||
Locale.getDefault(),
|
||||
getString(R.string.text_user_id), it.erbanNo.toString()
|
||||
)
|
||||
val nobleInfo = it.nobleInfo
|
||||
val headWearInfo = it.userHeadwear
|
||||
if (headWearInfo != null) {
|
||||
mBinding.ivAvatarHeadWear.setImageDrawable(null)
|
||||
if (nobleInfo != null) {
|
||||
mBinding.ivUserNobleLevel.visibility = View.VISIBLE
|
||||
NobleUtil.loadResource(
|
||||
NobleUtil.getBadgeByLevel(nobleInfo.level),
|
||||
mBinding.ivUserNobleLevel
|
||||
)
|
||||
} else {
|
||||
mBinding.ivUserNobleLevel.visibility = View.GONE
|
||||
}
|
||||
NobleUtil.loadHeadWear(
|
||||
if (headWearInfo.effect != null) headWearInfo.effect else headWearInfo.pic,
|
||||
mBinding.ivAvatarHeadWear
|
||||
)
|
||||
} else if (nobleInfo != null) {
|
||||
mBinding.ivUserNobleLevel.visibility = View.VISIBLE
|
||||
NobleUtil.loadResource(
|
||||
NobleUtil.getBadgeByLevel(nobleInfo.level),
|
||||
mBinding.ivUserNobleLevel
|
||||
)
|
||||
mBinding.ivAvatarHeadWear.setImageDrawable(null)
|
||||
NobleUtil.loadResource(nobleInfo.headWear, mBinding.ivAvatarHeadWear)
|
||||
} else {
|
||||
mBinding.ivAvatarHeadWear.setImageDrawable(null)
|
||||
mBinding.ivUserNobleLevel.visibility = View.GONE
|
||||
}
|
||||
val star = StarUtils.getConstellation(Date(it.birth))
|
||||
mBinding.tvConstellation.text = star
|
||||
setUserLevel(it.userLevelVo)
|
||||
initNewUserCharge(it)
|
||||
setWalletInfo()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -428,17 +380,26 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
}
|
||||
}
|
||||
|
||||
private fun setWalletInfo() {
|
||||
mBinding.tvDiamondNum.text =
|
||||
FormatUtils.formatBigInteger(PayModel.get().currentWalletInfo?.diamondNum ?: 0.0)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onLoginUserInfoUpdateEvent(event: LoginUserInfoUpdateEvent?) {
|
||||
mUserInfo = UserModel.get().cacheLoginUserInfo
|
||||
setUserData()
|
||||
vipViewModel.getVipPageInfo()
|
||||
meViewModel.refreshData()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onWalletInfoUpdate(event: UpdateWalletInfoEvent?) {
|
||||
mBinding.tvDiamondNum.text =
|
||||
FormatUtils.formatBigInteger(PayModel.get().currentWalletInfo?.diamondNum ?: 0.0)
|
||||
setWalletInfo()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onGetWalletInfoEvent(event: GetWalletInfoEvent?) {
|
||||
setWalletInfo()
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
@@ -453,9 +414,7 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
}
|
||||
|
||||
private fun requestUpdateUserInfo() {
|
||||
if (mUserInfo != null) {
|
||||
UserModel.get().updateCurrentUserInfo().subscribe()
|
||||
}
|
||||
UserModel.get().updateCurrentUserInfo().subscribe()
|
||||
}
|
||||
|
||||
override fun onClick(v: View) {
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 39 KiB |
Binary file not shown.
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 40 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_vip_me_entrance_opened.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/bg_vip_me_entrance_opened.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
@@ -44,9 +44,8 @@
|
||||
android:id="@+id/me_item_setting"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginTop="50dp"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:layout_marginTop="36dp"
|
||||
android:layout_marginEnd="@dimen/dp_5"
|
||||
android:onClick="@{click}"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
@@ -66,16 +65,17 @@
|
||||
android:id="@+id/rl_user_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:onClick="@{click}"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/me_item_setting">
|
||||
app:layout_constraintTop_toTopOf="@id/me_item_setting">
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_user_head"
|
||||
avatarUrl="@{TextUtils.isEmptyText(userInfo.newAvatar)?userInfo.avatar:userInfo.newAvatar}"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_width="68dp"
|
||||
android:layout_height="68dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:onClick="@{click}"
|
||||
@@ -84,61 +84,50 @@
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="68dp"
|
||||
android:layout_height="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_avatar_auditing"
|
||||
android:visibility="@{userInfo.isReview()?View.VISIBLE:View.GONE}"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_user_head"
|
||||
app:layout_constraintLeft_toLeftOf="@id/iv_user_head"
|
||||
app:layout_constraintRight_toRightOf="@id/iv_user_head" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_avatar_head_wear"
|
||||
android:layout_width="67dp"
|
||||
android:layout_height="67dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_user_head"
|
||||
app:layout_constraintLeft_toLeftOf="@id/iv_user_head"
|
||||
app:layout_constraintRight_toRightOf="@id/iv_user_head"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_user_head"
|
||||
tools:background="#1Aff0000" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/layout_user_info"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_user_head"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/me_item_skill"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_user_head"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_user_head">
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_user_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="3dp"
|
||||
android:drawablePadding="5dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@{userInfo.nick}"
|
||||
android:textColor="@color/text_title_white"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintWidth_default="wrap"
|
||||
app:layout_goneMarginStart="0dp"
|
||||
tools:text="党移动地下党" />
|
||||
tools:text="党移动党移动地下党党移动地下党党移动地下党地下党" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -191,7 +180,7 @@
|
||||
android:id="@+id/ll_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:gravity="center_vertical"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ll_id">
|
||||
@@ -265,7 +254,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="bottom"
|
||||
@@ -433,7 +422,7 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:background="@drawable/bg_me_wallet_entrance"
|
||||
android:gravity="center_vertical"
|
||||
android:onClick="@{click}"
|
||||
@@ -453,7 +442,7 @@
|
||||
android:maxLines="1"
|
||||
android:text="0"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/sp_18"
|
||||
android:textSize="@dimen/sp_16"
|
||||
android:textStyle="bold"
|
||||
tools:text="999" />
|
||||
|
||||
@@ -466,7 +455,7 @@
|
||||
android:maxLines="1"
|
||||
android:text="钻石充值"
|
||||
android:textColor="@color/black_transparent_30"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
android:textSize="@dimen/sp_10" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -508,7 +497,7 @@
|
||||
android:maxLines="1"
|
||||
android:text="贵族中心"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/sp_18"
|
||||
android:textSize="@dimen/sp_16"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -554,7 +543,8 @@
|
||||
android:includeFontPadding="false"
|
||||
android:text="神皇"
|
||||
android:textColor="#66333333"
|
||||
android:textSize="8sp" />
|
||||
android:textSize="8sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
@@ -624,7 +614,7 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="快捷进房"
|
||||
android:text="休闲游戏"
|
||||
android:textColor="@color/text_normal_c6c6e9"
|
||||
android:textSize="@dimen/sp_14"
|
||||
android:textStyle="bold" />
|
||||
@@ -657,7 +647,6 @@
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="345:80"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
Reference in New Issue
Block a user