主播评级:等级图标替换
@@ -8,6 +8,7 @@ import com.mango.core.home.model.HomeModel
|
||||
import com.mango.core.room.bean.MeCenterInfo
|
||||
import com.mango.core.room.game.GameInfo
|
||||
import com.mango.core.user.bean.AnchorGradeInfo
|
||||
import com.mango.core.utils.toast
|
||||
|
||||
class MeViewModel : BaseViewModel() {
|
||||
|
||||
@@ -62,12 +63,13 @@ class MeViewModel : BaseViewModel() {
|
||||
)
|
||||
}
|
||||
|
||||
fun getAnchorGradeInfo() {
|
||||
fun getAnchorGradeInfo(needToast: Boolean = false) {
|
||||
safeLaunch(
|
||||
block = {
|
||||
_anchorGradeInfoLiveData.value = HomeModel.getAnchorGradeInfo()
|
||||
},
|
||||
onError = {
|
||||
if (needToast) it.message.toast()
|
||||
_anchorGradeInfoLiveData.value = null
|
||||
}
|
||||
)
|
||||
|
@@ -17,6 +17,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.max
|
||||
|
||||
class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
|
||||
|
||||
@@ -47,9 +48,11 @@ class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
|
||||
|
||||
@SuppressLint("CheckResult", "SetTextI18n")
|
||||
override fun init() {
|
||||
meViewModel.getAnchorGradeInfo()
|
||||
meViewModel.getAnchorGradeInfo(true)
|
||||
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 ->
|
||||
binding.ivCurrLevel.setImageResource(resId)
|
||||
}
|
||||
@@ -59,19 +62,19 @@ class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
|
||||
binding.tvReplayCurrLevel.text = it.grade
|
||||
binding.tvReplayNextLevel.text = nextLevel
|
||||
|
||||
binding.tvDiamondTargetNum.text = it.targetDiamond.toString()
|
||||
binding.tvDiamondTargetNum.text = it.currentDiamond.toString()
|
||||
binding.pbDiamond.max = it.targetDiamond
|
||||
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.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 = Observable.intervalRange(0, Int.MAX_VALUE.toLong(), 0, 1, TimeUnit.SECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(bindToLifecycle())
|
||||
.observeOn(AndroidSchedulers.mainThread()).compose(bindToLifecycle())
|
||||
.subscribe { seconds ->
|
||||
val nextRemaining = SpannableStringBuilder(
|
||||
TimeUtil.getElapseTimeForAnchorGrade(it.nextRemaining - seconds.toInt())
|
||||
|
@@ -97,10 +97,10 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
|
||||
private val anchorDrawableResIds = mapOf(
|
||||
"S" to R.drawable.anchor_grade_bg_me_s,
|
||||
"A" to R.drawable.anchor_grade_bg_me_s,
|
||||
"B" to R.drawable.anchor_grade_bg_me_s,
|
||||
"C" to R.drawable.anchor_grade_bg_me_s,
|
||||
"D" 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_b,
|
||||
"C" to R.drawable.anchor_grade_bg_me_c,
|
||||
"D" to R.drawable.anchor_grade_bg_me_d
|
||||
)
|
||||
|
||||
override fun getRootLayoutId(): Int {
|
||||
|
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_bg_me_a.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_bg_me_b.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_bg_me_c.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_bg_me_d.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 48 KiB |
@@ -18,30 +18,29 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="90dp"
|
||||
android:text="当前评级"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_curr_level"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_curr_level"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="17dp"
|
||||
android:layout_marginBottom="9dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/pb_diamond"
|
||||
android:layout_marginTop="11dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/anchor_grade_ic_level_a" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_title"
|
||||
android:layout_width="159dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
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_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
@@ -240,15 +240,16 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_anchor_grade"
|
||||
android:layout_width="95dp"
|
||||
android:layout_height="25dp"
|
||||
android:layout_width="91dp"
|
||||
android:layout_height="28dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:background="@drawable/anchor_grade_bg_me_s"
|
||||
android:fontFamily="sans-serif"
|
||||
android:gravity="center_vertical|end"
|
||||
android:onClick="@{click}"
|
||||
android:paddingTop="2dp"
|
||||
android:paddingEnd="7dp"
|
||||
android:text="主播评级"
|
||||
android:onClick="@{click}"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="12sp"
|
||||
android:visibility="gone"
|
||||
|