主播评级:等级图标替换

This commit is contained in:
huangjian
2022-12-14 15:01:30 +08:00
parent e4de7aa3fe
commit 0cf57e88c4
15 changed files with 29 additions and 24 deletions

View File

@@ -8,6 +8,7 @@ import com.mango.core.home.model.HomeModel
import com.mango.core.room.bean.MeCenterInfo import com.mango.core.room.bean.MeCenterInfo
import com.mango.core.room.game.GameInfo import com.mango.core.room.game.GameInfo
import com.mango.core.user.bean.AnchorGradeInfo import com.mango.core.user.bean.AnchorGradeInfo
import com.mango.core.utils.toast
class MeViewModel : BaseViewModel() { class MeViewModel : BaseViewModel() {
@@ -62,12 +63,13 @@ class MeViewModel : BaseViewModel() {
) )
} }
fun getAnchorGradeInfo() { fun getAnchorGradeInfo(needToast: Boolean = false) {
safeLaunch( safeLaunch(
block = { block = {
_anchorGradeInfoLiveData.value = HomeModel.getAnchorGradeInfo() _anchorGradeInfoLiveData.value = HomeModel.getAnchorGradeInfo()
}, },
onError = { onError = {
if (needToast) it.message.toast()
_anchorGradeInfoLiveData.value = null _anchorGradeInfoLiveData.value = null
} }
) )

View File

@@ -17,6 +17,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import java.util.* import java.util.*
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import kotlin.math.max
class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() { class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
@@ -47,9 +48,11 @@ class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
@SuppressLint("CheckResult", "SetTextI18n") @SuppressLint("CheckResult", "SetTextI18n")
override fun init() { override fun init() {
meViewModel.getAnchorGradeInfo() meViewModel.getAnchorGradeInfo(true)
meViewModel.anchorGradeInfoLiveData.observe(this) { meViewModel.anchorGradeInfoLiveData.observe(this) {
val isCompleted =
it.currentReply >= it.targetReply && it.currentDiamond >= it.targetDiamond
binding.ivTitle.setImageResource(if (isCompleted) R.drawable.anchor_grade_bg_complete_text else R.drawable.anchor_grade_bg_task_text)
anchorDrawableResIds[it.grade.toUpperCase(Locale.getDefault())]?.let { resId -> anchorDrawableResIds[it.grade.toUpperCase(Locale.getDefault())]?.let { resId ->
binding.ivCurrLevel.setImageResource(resId) binding.ivCurrLevel.setImageResource(resId)
} }
@@ -59,19 +62,19 @@ class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
binding.tvReplayCurrLevel.text = it.grade binding.tvReplayCurrLevel.text = it.grade
binding.tvReplayNextLevel.text = nextLevel binding.tvReplayNextLevel.text = nextLevel
binding.tvDiamondTargetNum.text = it.targetDiamond.toString() binding.tvDiamondTargetNum.text = it.currentDiamond.toString()
binding.pbDiamond.max = it.targetDiamond binding.pbDiamond.max = it.targetDiamond
binding.pbDiamond.progress = it.currentDiamond binding.pbDiamond.progress = it.currentDiamond
binding.tvDiamondGap.text = "还差${it.targetDiamond - it.currentDiamond}钻可完成" binding.tvDiamondGap.text = "还差${max(it.targetDiamond - it.currentDiamond, 0)}钻可完成"
binding.tvReplayTargetNum.text = (it.targetReply * 100).toInt().toString() binding.tvReplayTargetNum.text = "${(it.currentReply * 100).toInt()}%"
binding.pbReplay.max = (it.targetReply * 100).toInt() binding.pbReplay.max = (it.targetReply * 100).toInt()
binding.pbReplay.progress = (it.currentReply * 100).toInt() binding.pbReplay.progress = (it.currentReply * 100).toInt()
binding.tvReplayGap.text = "还差${((it.targetReply - it.currentReply) * 100).toInt()}%可完成" binding.tvReplayGap.text =
"还差${max(((it.targetReply - it.currentReply) * 100).toInt(), 0)}%可完成"
disposable?.dispose() disposable?.dispose()
disposable = Observable.intervalRange(0, Int.MAX_VALUE.toLong(), 0, 1, TimeUnit.SECONDS) disposable = Observable.intervalRange(0, Int.MAX_VALUE.toLong(), 0, 1, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread()).compose(bindToLifecycle())
.compose(bindToLifecycle())
.subscribe { seconds -> .subscribe { seconds ->
val nextRemaining = SpannableStringBuilder( val nextRemaining = SpannableStringBuilder(
TimeUtil.getElapseTimeForAnchorGrade(it.nextRemaining - seconds.toInt()) TimeUtil.getElapseTimeForAnchorGrade(it.nextRemaining - seconds.toInt())

View File

@@ -97,10 +97,10 @@ class MeFragment : BaseFragment(), View.OnClickListener {
private val anchorDrawableResIds = mapOf( private val anchorDrawableResIds = mapOf(
"S" to R.drawable.anchor_grade_bg_me_s, "S" to R.drawable.anchor_grade_bg_me_s,
"A" to R.drawable.anchor_grade_bg_me_s, "A" to R.drawable.anchor_grade_bg_me_a,
"B" to R.drawable.anchor_grade_bg_me_s, "B" to R.drawable.anchor_grade_bg_me_b,
"C" to R.drawable.anchor_grade_bg_me_s, "C" to R.drawable.anchor_grade_bg_me_c,
"D" to R.drawable.anchor_grade_bg_me_s "D" to R.drawable.anchor_grade_bg_me_d
) )
override fun getRootLayoutId(): Int { override fun getRootLayoutId(): Int {

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -18,30 +18,29 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="90dp"
android:text="当前评级" android:text="当前评级"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="10sp" android:textSize="10sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toStartOf="@id/iv_curr_level"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/iv_curr_level" android:id="@+id/iv_curr_level"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="17dp" android:layout_marginTop="11dp"
android:layout_marginBottom="9dp" android:layout_marginEnd="8dp"
app:layout_constraintBottom_toTopOf="@id/pb_diamond"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/anchor_grade_ic_level_a" /> tools:src="@drawable/anchor_grade_ic_level_a" />
<ImageView <ImageView
android:id="@+id/iv_title" android:id="@+id/iv_title"
android:layout_width="159dp" android:layout_width="wrap_content"
android:layout_height="20dp" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginTop="48dp" android:layout_marginTop="48dp"
android:src="@drawable/anchor_grade_bg_task_text" tools:src="@drawable/anchor_grade_bg_complete_text"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />

View File

@@ -240,15 +240,16 @@
<TextView <TextView
android:id="@+id/tv_anchor_grade" android:id="@+id/tv_anchor_grade"
android:layout_width="95dp" android:layout_width="91dp"
android:layout_height="25dp" android:layout_height="28dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:background="@drawable/anchor_grade_bg_me_s" android:background="@drawable/anchor_grade_bg_me_s"
android:fontFamily="sans-serif" android:fontFamily="sans-serif"
android:gravity="center_vertical|end" android:gravity="center_vertical|end"
android:onClick="@{click}"
android:paddingTop="2dp"
android:paddingEnd="7dp" android:paddingEnd="7dp"
android:text="主播评级" android:text="主播评级"
android:onClick="@{click}"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="12sp" android:textSize="12sp"
android:visibility="gone" android:visibility="gone"