金币详情功能修改

This commit is contained in:
wushaocheng
2022-11-25 20:37:16 +08:00
parent b6b4c4c1d2
commit fbf1c43a41
10 changed files with 191 additions and 31 deletions

View File

@@ -22,10 +22,6 @@ class AssociationViewModel : BaseViewModel() {
safeLaunch(
block = {
_clanListLiveData.value = AssociationModel.getClanList()
},
onError = {
it.message.toast()
_clanListLiveData.value = null
}
)
}
@@ -34,10 +30,6 @@ class AssociationViewModel : BaseViewModel() {
safeLaunch(
block = {
_hallListLiveData.value = AssociationModel.getHallList()
},
onError = {
it.message.toast()
_hallListLiveData.value = null
}
)
}

View File

@@ -2,7 +2,6 @@ package com.yizhuan.erban.association.fragment
import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.chad.library.adapter.base.BaseQuickAdapter
@@ -16,12 +15,13 @@ import com.yizhuan.erban.module_hall.hall.activity.ModuleClanActivity
import com.yizhuan.erban.ui.utils.RVDelegate
import com.yizhuan.xchat_android_core.association.ClanListInfo
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel
import com.yizhuan.xchat_android_core.utils.Logger
import com.yizhuan.xchat_android_core.utils.net.BeanObserver
import com.yizhuan.xchat_android_core.utils.net.RxHelper
import com.yizhuan.xchat_android_library.utils.ResUtil
/**
* 公会榜单
*/
class AssociationFragment : BaseViewBindingFragment<FragmentAssociationBinding>() {
companion object {
@@ -85,7 +85,7 @@ class AssociationFragment : BaseViewBindingFragment<FragmentAssociationBinding>(
.build()
associationViewModel.clanListLiveData.observe(viewLifecycleOwner) {
associationAdapter.setNewData(it)
rvDelegate.setNewData(it)
}
associationViewModel.getClanList()

View File

@@ -38,7 +38,8 @@ class EarnRecordViewModel : BaseViewModel() {
//结算明细
private val _memberSettleLiveData = MutableLiveData<ClanHallMemberIncomeTotalInfo?>()
val memberSettleLiveData: MutableLiveData<ClanHallMemberIncomeTotalInfo?> = _memberSettleLiveData
val memberSettleLiveData: MutableLiveData<ClanHallMemberIncomeTotalInfo?> =
_memberSettleLiveData
private var weekFirstDay: String = ""
private var weekLastDay: String = ""
@@ -61,9 +62,9 @@ class EarnRecordViewModel : BaseViewModel() {
val curWeekDay = calendar[Calendar.DAY_OF_WEEK]
//周一的时间
val firstDayTime: Long = if (curWeekDay == 1) { //周日
calendar.timeInMillis - TimeUtils.MILLIS_OF_A_DAY * (7 - curWeekDay)
calendar.timeInMillis - TimeUtils.MILLIS_OF_A_DAY * (14 - curWeekDay)
} else {
calendar.timeInMillis - TimeUtils.MILLIS_OF_A_DAY * (curWeekDay - 2)
calendar.timeInMillis - TimeUtils.MILLIS_OF_A_DAY * ((curWeekDay - 2) + 7)
}
//周日
val lastDayTime = firstDayTime + TimeUtils.MILLIS_OF_A_DAY * 6

View File

@@ -4,13 +4,21 @@ import android.content.Context
import android.content.Intent
import androidx.activity.viewModels
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.jzxiang.pickerview.data.Type
import com.netease.nim.uikit.StatusBarUtil
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseViewBindingActivity
import com.yizhuan.erban.common.EmptyViewHelper
import com.yizhuan.erban.databinding.ActivityGoldDetailBinding
import com.yizhuan.erban.earn.EarnRecordViewModel
import com.yizhuan.erban.earn.adapter.GoldDetailAdapter
import com.yizhuan.erban.module_hall.hall.view.dialog.TimePickerDialog
import com.yizhuan.erban.module_hall.income.adapter.LiveIncomeAdapter
import com.yizhuan.erban.ui.utils.RVDelegate
import com.yizhuan.xchat_android_core.association.ClanListInfo
import com.yizhuan.xchat_android_core.earn.bean.MemberSettlement
import com.yizhuan.xchat_android_library.utils.ResUtil
/**
* 金币明细
@@ -20,6 +28,10 @@ class GoldDetailActivity : BaseViewBindingActivity<ActivityGoldDetailBinding>(),
private val earnRecordModel: EarnRecordViewModel by viewModels()
private val mIncomeAdapter: GoldDetailAdapter by lazy { GoldDetailAdapter() }
private lateinit var rvDelegate: RVDelegate<MemberSettlement>
companion object {
@JvmStatic
@@ -31,23 +43,30 @@ class GoldDetailActivity : BaseViewBindingActivity<ActivityGoldDetailBinding>(),
override fun init() {
initTitleBar(getString(R.string.gold_detail))
earnRecordModel.initCurrentDay()
initView()
initListener()
getWeekIncomeTotal(earnRecordModel.getWeekFirstDay(), earnRecordModel.getWeekLastDay())
initModel()
}
earnRecordModel.memberSettleLiveData.observe(this) {
it?.let {
binding.tvTotalGold.text = it.total.toString()
}
}
earnRecordModel.getMemberSettlement(
earnRecordModel.getWeekFirstDay(),
earnRecordModel.getWeekLastDay()
)
private fun initView() {
earnRecordModel.initCurrentDay()
rvDelegate = RVDelegate.Builder<MemberSettlement>()
.setLayoutManager(LinearLayoutManager(context))
.setRecyclerView(binding.mRecyclerView)
.setEmptyView(
EmptyViewHelper.createEmptyView(
context,
getString(R.string.empty_data)
)
)
.setAdapter(mIncomeAdapter)
.build()
}
private fun initListener() {
binding.ivRoomDown.setOnClickListener{
}
binding.llDate.setOnClickListener {
val builder = TimePickerDialog.Builder()
.setType(Type.YEAR_MONTH_DAY)
@@ -75,6 +94,17 @@ class GoldDetailActivity : BaseViewBindingActivity<ActivityGoldDetailBinding>(),
}
}
private fun initModel() {
getWeekIncomeTotal(earnRecordModel.getWeekFirstDay(), earnRecordModel.getWeekLastDay())
earnRecordModel.memberSettleLiveData.observe(this) {
it?.let {
binding.tvTotalGold.text = it.total.toString()
rvDelegate.setNewData(it.memberSettlement)
}
}
}
override fun getTime(chooseTime: Long, weekFirstDay: String?, weekLastDay: String?) {
earnRecordModel.setmWeekChooseDay(chooseTime)
weekFirstDay?.let { earnRecordModel.setWeekFirstDay(it) }

View File

@@ -0,0 +1,29 @@
package com.yizhuan.erban.earn.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2;
import com.yizhuan.xchat_android_core.earn.bean.MemberSettlement;
import org.jetbrains.annotations.NotNull;
public class GoldDetailAdapter extends BaseQuickAdapter<MemberSettlement, BaseViewHolder> {
public GoldDetailAdapter() {
super(R.layout.item_gold_detail);
}
@Override
protected void convert(@NotNull BaseViewHolder helper, MemberSettlement item) {
helper.setText(R.id.tv_user_name, item.getNick())
.setText(R.id.tv_hall_name, item.getHallName())
.setText(R.id.tv_have_exchange, String.valueOf(item.getExchangeGolds()))
.setText(R.id.tv_settlement, String.valueOf(item.getSettlementGolds()));
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_user_avatar), item.getAvatar());
ImageLoadUtils.loadImage(mContext, item.getHallAvatar(), helper.getView(R.id.iv_hall_avatar));
}
}

View File

@@ -8,18 +8,20 @@ import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager
import com.netease.nim.uikit.StatusBarUtil
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseViewBindingActivity
import com.yizhuan.erban.databinding.ActivityAssociationBinding
import com.yizhuan.erban.association.fragment.AssociationFragment
import com.yizhuan.erban.association.fragment.AssociationRoomFragment
import com.yizhuan.erban.base.BaseViewBindingActivity
import com.yizhuan.erban.common.CommonPagerAdapter
import com.yizhuan.erban.databinding.ActivityAssociationBinding
import com.yizhuan.erban.ui.user.adapter.CommonWrapIndicatorAdapter
import com.yizhuan.erban.ui.user.adapter.UserInfoPagerAdapter
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
import com.yizhuan.xchat_android_library.utils.ResUtil
/**
* 公会周榜
*/
class AssociationActivity : BaseViewBindingActivity<ActivityAssociationBinding>() {
companion object {

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

View File

@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/color_white"
android:orientation="vertical"
tools:context=".earn.activity.GoldDetailActivity">
@@ -122,6 +123,12 @@
android:textSize="@dimen/sp_14"
android:textStyle="bold" />
<ImageView
android:id="@+id/ivRoomDown"
android:src="@drawable/ic_down_arrow"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"/>
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -151,7 +158,10 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerView"
android:layout_marginTop="@dimen/dp_16"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
</LinearLayout>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_marginBottom="@dimen/dp_16"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:background="@color/color_white">
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_user_avatar"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_45"
android:src="@drawable/default_cover"
app:layout_constraintEnd_toEndOf="@+id/tv_user_name"
app:layout_constraintStart_toStartOf="@+id/tv_user_name"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_user_name"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_5"
android:layout_marginTop="3dp"
android:ellipsize="end"
android:gravity="center"
android:lines="1"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_10"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tv_hall_name"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_user_avatar"
tools:text="@string/layout_item_clan_income_01" />
<com.yizhuan.erban.common.widget.RectRoundImageView
android:id="@+id/iv_hall_avatar"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/dp_6"
android:src="@drawable/default_cover"
app:borderRadius="8dp"
app:layout_constraintEnd_toEndOf="@+id/tv_hall_name"
app:layout_constraintStart_toStartOf="@+id/tv_hall_name"
app:layout_constraintTop_toTopOf="parent"
app:type="round" />
<TextView
android:id="@+id/tv_hall_name"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:ellipsize="end"
android:gravity="center"
android:lines="1"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toStartOf="@+id/tv_have_exchange"
app:layout_constraintStart_toEndOf="@+id/tv_user_name"
app:layout_constraintTop_toBottomOf="@+id/iv_hall_avatar"
tools:text="@string/layout_item_clan_income_01" />
<TextView
android:id="@+id/tv_have_exchange"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_12"
android:textStyle="bold"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tv_settlement"
app:layout_constraintStart_toEndOf="@+id/tv_hall_name"
app:layout_constraintTop_toTopOf="parent"
tools:text="1,000,000,000" />
<TextView
android:id="@+id/tv_settlement"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="22dp"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_12"
android:textStyle="bold"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv_have_exchange"
app:layout_constraintTop_toTopOf="parent"
tools:text="1,000,000,000" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -4993,5 +4993,6 @@
<string name="please_input_withdraw_gold">請輸入提現金幣</string>
<string name="all">全部</string>
<string name="time"></string>
<string name="empty_data">暫無數據</string>
</resources>