diff --git a/app/src/main/java/com/mango/moshen/home/dialog/AnchorGradeDialog.kt b/app/src/main/java/com/mango/moshen/home/dialog/AnchorGradeDialog.kt index 770be8694..d5ccfbd8f 100644 --- a/app/src/main/java/com/mango/moshen/home/dialog/AnchorGradeDialog.kt +++ b/app/src/main/java/com/mango/moshen/home/dialog/AnchorGradeDialog.kt @@ -49,8 +49,8 @@ class AnchorGradeDialog : BaseDialog() { } - override var width: Int = WindowManager.LayoutParams.MATCH_PARENT - override var height: Int = WindowManager.LayoutParams.WRAP_CONTENT + override var width: Int = ScreenUtil.dip2px(300f) + override var height: Int = ScreenUtil.dip2px(280f) private val meViewModel: MeViewModel by viewModels() @@ -64,6 +64,7 @@ class AnchorGradeDialog : BaseDialog() { anchorDrawableResIds[it.grade.uppercase(Locale.getDefault())]?.let { resId -> binding.ivCurrLevel.setImageResource(resId) } + binding.tvCurrentGrade.text = it.currentGrade setupDiamond(it) setupReply(it) @@ -183,80 +184,43 @@ class AnchorGradeDialog : BaseDialog() { if (!it.satisfyReply) { binding.groupReply.isVisible = false binding.tvSatisfyReply.isVisible = true + binding.tvReplayTargetNum.isVisible = false return } - binding.pbReplay.max = 1000 + binding.pbReplay.max = 100 binding.tvReplayTargetNum.text = "${(it.currentReply * 100).toInt()}%" - var startEndIDReply = R.id.tv_replay_d - var endEndIDReply = R.id.tv_replay_c - if (0 <= it.currentReply && it.currentReply < it.levelCReply) { - binding.ivReplayLevelD.setImageResource(R.drawable.anchor_grade_ic_level_current) - binding.pbReplay.progress = - ((it.currentReply / it.levelCReply * 250).toInt() - .coerceAtLeast(30)) - .coerceAtMost(220) - binding.tvReplayGap.text = - "还差${((it.levelCReply - it.currentReply) * 100).toInt()}%" - } else if (it.levelCReply <= it.currentReply && it.currentReply < it.levelBReply) { - binding.ivReplayLevelC.setImageResource(R.drawable.anchor_grade_ic_level_current) - binding.ivReplayLevelC.isVisible = true - binding.pbDiamond.progress = - (((it.currentReply - it.levelCReply) / (it.levelBReply - it.levelCReply) * 250).toInt() - .coerceAtLeast(15) + 250) - .coerceAtMost(485) - startEndIDReply = R.id.tv_replay_c - endEndIDReply = R.id.tv_replay_b - binding.tvReplayGap.text = - "还差${((it.levelBReply - it.currentReply) * 100).toInt()}%" - } else if (it.levelBReply <= it.currentReply && it.currentReply < it.levelAReply) { - binding.ivReplayLevelB.setImageResource(R.drawable.anchor_grade_ic_level_current) - binding.ivReplayLevelC.isVisible = true - binding.ivReplayLevelB.isVisible = true - binding.pbReplay.progress = - (((it.currentReply - it.levelBReply) / (it.levelAReply - it.levelBReply) * 250).toInt() - .coerceAtLeast(15) + 500) - .coerceAtMost(735) - startEndIDReply = R.id.tv_replay_b - endEndIDReply = R.id.tv_replay_a - binding.tvReplayGap.text = - "还差${((it.levelAReply - it.currentReply) * 100).toInt()}%" - } else if (it.levelAReply <= it.currentReply && it.currentReply < it.levelSReply) { - binding.ivReplayLevelA.setImageResource(R.drawable.anchor_grade_ic_level_current) - binding.ivReplayLevelC.isVisible = true - binding.ivReplayLevelB.isVisible = true - binding.ivReplayLevelA.isVisible = true - binding.pbReplay.progress = - (((it.currentReply - it.levelAReply) / (it.levelSReply - it.levelAReply) * 250).toInt() - .coerceAtLeast(30) + 750) - .coerceAtMost(970) - startEndIDReply = R.id.tv_replay_a - endEndIDReply = R.id.tv_replay_s - binding.tvReplayGap.text = - "还差${((it.levelSReply - it.currentReply) * 100).toInt()}%" - } else { - binding.ivReplayLevelS.setImageResource(R.drawable.anchor_grade_ic_level_current) - binding.ivReplayLevelC.isVisible = true - binding.ivReplayLevelB.isVisible = true - binding.ivReplayLevelA.isVisible = true - binding.ivReplayLevelS.isVisible = true - binding.pbReplay.progress = binding.pbReplay.max - binding.tvReplayGap.isGone = true + when (it.replyRateGrade) { + "D" -> { + binding.ivReplayLevelD.setImageResource(R.drawable.anchor_grade_ic_level_current) + binding.pbReplay.progress = 0 + } + "C" -> { + binding.ivReplayLevelC.setImageResource(R.drawable.anchor_grade_ic_level_current) + binding.ivReplayLevelC.isVisible = true + binding.pbDiamond.progress = 25 + } + "B" -> { + binding.ivReplayLevelB.setImageResource(R.drawable.anchor_grade_ic_level_current) + binding.ivReplayLevelC.isVisible = true + binding.ivReplayLevelB.isVisible = true + binding.pbReplay.progress = 50 + } + "A" -> { + binding.ivReplayLevelA.setImageResource(R.drawable.anchor_grade_ic_level_current) + binding.ivReplayLevelC.isVisible = true + binding.ivReplayLevelB.isVisible = true + binding.ivReplayLevelA.isVisible = true + binding.pbReplay.progress = 75 + } + "S" -> { + binding.ivReplayLevelS.setImageResource(R.drawable.anchor_grade_ic_level_current) + binding.ivReplayLevelC.isVisible = true + binding.ivReplayLevelB.isVisible = true + binding.ivReplayLevelA.isVisible = true + binding.ivReplayLevelS.isVisible = true + binding.pbReplay.progress = binding.pbReplay.max + } } - val constraintSet = ConstraintSet() - constraintSet.clone(binding.clRoot) - constraintSet.connect( - R.id.tv_replay_gap, - ConstraintSet.START, - startEndIDReply, - ConstraintSet.END - ) - constraintSet.connect( - R.id.tv_replay_gap, - ConstraintSet.END, - endEndIDReply, - ConstraintSet.START - ) - constraintSet.applyTo(binding.clRoot) } override fun onDestroyView() { diff --git a/app/src/main/res/drawable-xhdpi/anchor_grade_bg.png b/app/src/main/res/drawable-xhdpi/anchor_grade_bg.png index 47b528b2a..1b5cfe3cb 100644 Binary files a/app/src/main/res/drawable-xhdpi/anchor_grade_bg.png and b/app/src/main/res/drawable-xhdpi/anchor_grade_bg.png differ diff --git a/app/src/main/res/layout/dialog_anchor_grade.xml b/app/src/main/res/layout/dialog_anchor_grade.xml index 31820d31f..4dbe0c9d9 100644 --- a/app/src/main/res/layout/dialog_anchor_grade.xml +++ b/app/src/main/res/layout/dialog_anchor_grade.xml @@ -15,23 +15,12 @@ android:background="@drawable/anchor_grade_bg" android:orientation="vertical"> - - @@ -46,12 +35,33 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + - - + app:constraint_referenced_ids="iv_replay_level_d,tv_replay_d,tv_replay_c,tv_replay_b,tv_replay_a,tv_replay_s,pb_replay,view_bg_replay_pb" />