From 220b33667ceaed2e40627bbd07459dcf5216fc56 Mon Sep 17 00:00:00 2001 From: huangjian Date: Thu, 27 Oct 2022 19:06:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B5=E6=97=8F=E6=8E=92=E8=A1=8CUI=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mango/moshen/vip/VipRankActivity.kt | 81 +++++++++++++++++- .../com/mango/moshen/vip/VipRankAdapter.kt | 9 +- .../mango/moshen/vip/VipRankBannerAdapter.kt | 31 +++++-- .../com/mango/moshen/vip/VipRankViewModel.kt | 6 +- app/src/main/res/layout/item_vip_rank.xml | 9 +- .../res/layout/activity_vip_rank.xml | 74 +++++++++++----- .../drawable-xhdpi/ic_vip_ranking_first.png | Bin 0 -> 4501 bytes .../drawable-xhdpi/ic_vip_ranking_second.png | Bin 0 -> 3863 bytes .../drawable-xhdpi/ic_vip_ranking_third.png | Bin 0 -> 3969 bytes .../java/com/mango/core/vip/VipBannerInfo.kt | 11 +++ .../main/java/com/mango/core/vip/VipModel.kt | 4 +- .../java/com/mango/core/vip/VipRankInfo.kt | 4 +- gradle.properties | 4 +- 13 files changed, 183 insertions(+), 50 deletions(-) create mode 100644 app/src/module_treasure_box/res/drawable-xhdpi/ic_vip_ranking_first.png create mode 100644 app/src/module_treasure_box/res/drawable-xhdpi/ic_vip_ranking_second.png create mode 100644 app/src/module_treasure_box/res/drawable-xhdpi/ic_vip_ranking_third.png create mode 100644 core/src/main/java/com/mango/core/vip/VipBannerInfo.kt diff --git a/app/src/main/java/com/mango/moshen/vip/VipRankActivity.kt b/app/src/main/java/com/mango/moshen/vip/VipRankActivity.kt index f0314dab2..b4270385a 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipRankActivity.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipRankActivity.kt @@ -4,13 +4,19 @@ import android.annotation.SuppressLint import android.content.Context import android.content.Intent import androidx.activity.viewModels +import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager +import com.mango.core.utils.ifNullOrEmpty +import com.mango.core.utils.subAndReplaceDot import com.mango.core.vip.RankInfo +import com.mango.core.vip.VipBannerInfo import com.mango.core.vip.VipMessageInfo import com.mango.moshen.R import com.mango.moshen.base.BaseViewBindingActivity import com.mango.moshen.databinding.ActivityVipRankBinding import com.mango.moshen.ui.utils.RVDelegate +import com.mango.moshen.ui.utils.load +import com.mango.moshen.ui.utils.loadAvatar import com.netease.nim.uikit.StatusBarUtil import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -29,22 +35,23 @@ class VipRankActivity : BaseViewBindingActivity() { } - private lateinit var bannerRvDelegate: RVDelegate + private lateinit var bannerRvDelegate: RVDelegate private lateinit var rankRvDelegate: RVDelegate private val viewModel: VipRankViewModel by viewModels() private var disposable: Disposable? = null + private var isResume = false @SuppressLint("SetTextI18n") override fun init() { initWhiteTitleBar("贵族设置") - bannerRvDelegate = RVDelegate.Builder() + bannerRvDelegate = RVDelegate.Builder() .setLayoutManager(LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)) .setRecyclerView(binding.rvBanner) .setAdapter(VipRankBannerAdapter()) .build() rankRvDelegate = RVDelegate.Builder() - .setLayoutManager(LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)) + .setLayoutManager(LinearLayoutManager(this)) .setRecyclerView(binding.rvRank) .setAdapter(VipRankAdapter()) .build() @@ -66,12 +73,63 @@ class VipRankActivity : BaseViewBindingActivity() { } viewModel.myRankLiveData.observe(this) { + it?.let { + binding.tvMyNick.text = it.nick.subAndReplaceDot(8) + binding.ivMyAvtar.loadAvatar(it.avatar) + if (it.vipLevel == 0 || it.vipLevel == null) { + binding.tvVipInfo.isVisible = true + binding.llMyValue.isVisible = false + binding.tvNoRank.isVisible = true + binding.tvMyRank.isVisible = false + } else { + binding.tvVipInfo.isVisible = false + binding.llMyValue.isVisible = true + binding.tvMyValue.text = it.score?.toString().ifNullOrEmpty { "0" } + binding.ivMyVipLogo.load(it.vipLogo) + if (it.rankNo == 0 || it.rankNo == null) { + binding.tvNoRank.isVisible = true + binding.tvMyRank.isVisible = false + } else { + binding.tvNoRank.isVisible = false + binding.tvMyRank.isVisible = true + when (it.rankNo) { + 1 -> { + binding.tvMyRank.setCompoundDrawablesWithIntrinsicBounds( + R.drawable.ic_vip_ranking_first, + 0, + 0, + 0 + ) + } + 2 -> { + binding.tvMyRank.setCompoundDrawablesWithIntrinsicBounds( + R.drawable.ic_vip_ranking_second, + 0, + 0, + 0 + ) + } + 3 -> { + binding.tvMyRank.setCompoundDrawablesWithIntrinsicBounds( + R.drawable.ic_vip_ranking_third, + 0, + 0, + 0 + ) + } + else -> { + binding.tvMyRank.text = it.rankNo?.toString() + } + } + } + } + } } disposable = Observable.intervalRange(0, Int.MAX_VALUE.toLong(), 0, 5, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) - .filter { bannerRvDelegate.adapter.itemCount > 0 } + .filter { bannerRvDelegate.adapter.itemCount > 0 && isResume } .subscribe { val index = (it % bannerRvDelegate.adapter.itemCount).toInt() if (index == 0) { @@ -80,6 +138,21 @@ class VipRankActivity : BaseViewBindingActivity() { binding.rvBanner.smoothScrollToPosition(index) } } + + binding.tvVipInfo.setOnClickListener { + finish() + } + + } + + override fun onResume() { + super.onResume() + isResume = true + } + + override fun onPause() { + super.onPause() + isResume = false } override fun onDestroy() { diff --git a/app/src/main/java/com/mango/moshen/vip/VipRankAdapter.kt b/app/src/main/java/com/mango/moshen/vip/VipRankAdapter.kt index 15373b826..c9c7fbd81 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipRankAdapter.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipRankAdapter.kt @@ -7,6 +7,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseViewHolder import com.mango.core.vip.RankInfo import com.mango.moshen.R +import com.mango.moshen.ui.utils.load import com.mango.moshen.ui.utils.loadAvatar @@ -16,24 +17,24 @@ class VipRankAdapter : BaseQuickAdapter(R.layout.item_ helper.setText(R.id.tv_userName, item.nick) .setText(R.id.tv_value, item.score.toString() + "") helper.getView(R.id.iv_avatar).loadAvatar(item.avatar) - helper.getView(R.id.iv_vip_icon).loadAvatar(item.vipLogo) + helper.getView(R.id.iv_vip_icon).load(item.vipIcon) val tvPosition = helper.getView(R.id.tv_position) val ivPosition = helper.getView(R.id.iv_position) when (helper.layoutPosition) { 0 -> { tvPosition.visibility = View.GONE ivPosition.visibility = View.VISIBLE - ivPosition.setImageDrawable(mContext.resources.getDrawable(R.drawable.ic_box_ranking_first)) + ivPosition.setImageDrawable(mContext.resources.getDrawable(R.drawable.ic_vip_ranking_first)) } 1 -> { tvPosition.visibility = View.GONE ivPosition.visibility = View.VISIBLE - ivPosition.setImageDrawable(mContext.resources.getDrawable(R.drawable.ic_box_ranking_second)) + ivPosition.setImageDrawable(mContext.resources.getDrawable(R.drawable.ic_vip_ranking_second)) } 2 -> { tvPosition.visibility = View.GONE ivPosition.visibility = View.VISIBLE - ivPosition.setImageDrawable(mContext.resources.getDrawable(R.drawable.ic_box_ranking_third)) + ivPosition.setImageDrawable(mContext.resources.getDrawable(R.drawable.ic_vip_ranking_third)) } else -> { tvPosition.visibility = View.VISIBLE diff --git a/app/src/main/java/com/mango/moshen/vip/VipRankBannerAdapter.kt b/app/src/main/java/com/mango/moshen/vip/VipRankBannerAdapter.kt index d95f724f1..e3a6bcaa7 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipRankBannerAdapter.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipRankBannerAdapter.kt @@ -7,26 +7,28 @@ import android.widget.TextView import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseViewHolder import com.mango.core.utils.sub -import com.mango.core.vip.VipMessageInfo +import com.mango.core.vip.VipBannerInfo import com.mango.moshen.R import com.mango.moshen.common.widget.CircleImageSpan +import com.mango.moshen.common.widget.CustomAutoWidthImageSpan import com.mango.moshen.utils.SpannableBuilder +import com.netease.nim.uikit.common.util.sys.ScreenUtil class VipRankBannerAdapter : - BaseQuickAdapter(R.layout.item_vip_rank_banner) { + BaseQuickAdapter(R.layout.item_vip_rank_banner) { - override fun convert(helper: BaseViewHolder, item: VipMessageInfo) { + override fun convert(helper: BaseViewHolder, item: VipBannerInfo) { val tvContent: TextView = helper.getView(R.id.tv_content) val text = SpannableBuilder() - .append("恭喜 ", ForegroundColorSpan(Color.WHITE)) + .append("恭喜贵族 ", ForegroundColorSpan(Color.WHITE)) .append( "-", CircleImageSpan( ColorDrawable(Color.TRANSPARENT), item.avatar, - 50, - 50 + ScreenUtil.dip2px(20f), + ScreenUtil.dip2px(20f) ) ) .append( @@ -34,8 +36,21 @@ class VipRankBannerAdapter : ForegroundColorSpan(mContext.resources.getColor(R.color.notice_nick)) ) .append( - "贵族身份升级为" + item.currVipName, - ForegroundColorSpan(Color.WHITE).toString() + "!" + "升级为 ", + ForegroundColorSpan(Color.WHITE) + ) + .append( + "-", + CustomAutoWidthImageSpan( + ColorDrawable(Color.TRANSPARENT), + tvContent, + item.vipIcon, + ScreenUtil.dip2px(20f) + ) + ) + .append( + " " + item.vipName + "!", + ForegroundColorSpan(Color.WHITE) ) tvContent.text = text.build() } diff --git a/app/src/main/java/com/mango/moshen/vip/VipRankViewModel.kt b/app/src/main/java/com/mango/moshen/vip/VipRankViewModel.kt index 636ceeca6..17d3d9441 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipRankViewModel.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipRankViewModel.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.mango.core.bean.response.ListResult import com.mango.core.vip.RankInfo -import com.mango.core.vip.VipMessageInfo +import com.mango.core.vip.VipBannerInfo import com.mango.core.vip.VipModel import com.mango.moshen.base.BaseViewModel @@ -17,8 +17,8 @@ class VipRankViewModel : BaseViewModel() { private val _myRankLiveData = MutableLiveData() val myRankLiveData: LiveData = _myRankLiveData - private val _bannerLiveData = MutableLiveData>() - val bannerLiveData: LiveData> = _bannerLiveData + private val _bannerLiveData = MutableLiveData>() + val bannerLiveData: LiveData> = _bannerLiveData init { getVipRank() diff --git a/app/src/main/res/layout/item_vip_rank.xml b/app/src/main/res/layout/item_vip_rank.xml index ec11b6631..9a6f092e0 100644 --- a/app/src/main/res/layout/item_vip_rank.xml +++ b/app/src/main/res/layout/item_vip_rank.xml @@ -40,7 +40,7 @@ @@ -53,7 +53,7 @@ android:layout_weight="1" android:ellipsize="end" android:lines="1" - android:textColor="@color/color_333333" + android:textColor="@color/white" android:textSize="15sp" app:layout_flexShrink="1" tools:text="我的我的我的我的我的我的" /> @@ -78,13 +78,12 @@ android:id="@+id/tv_value" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_vertical" + android:layout_gravity="center_vertical|end" android:drawablePadding="5dp" - android:gravity="end" android:textColor="#F7DA94" android:textSize="@dimen/dp_14" android:textStyle="bold" - tools:text="1236843" /> + tools:text="0" /> diff --git a/app/src/module_labour_union/res/layout/activity_vip_rank.xml b/app/src/module_labour_union/res/layout/activity_vip_rank.xml index 0f82f6a0b..cc92cb774 100644 --- a/app/src/module_labour_union/res/layout/activity_vip_rank.xml +++ b/app/src/module_labour_union/res/layout/activity_vip_rank.xml @@ -7,16 +7,14 @@ android:background="#221F20" android:orientation="vertical"> - + + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginStart="36dp" + android:layout_marginEnd="36dp" /> @@ -64,6 +65,8 @@ android:id="@+id/rv_rank" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:paddingBottom="50dp" tools:itemCount="5" tools:listitem="@layout/item_vip_rank" /> @@ -82,6 +85,7 @@ app:layout_constraintStart_toStartOf="parent"> + + - + android:includeFontPadding="false" + android:textColor="@color/white" + android:textSize="12sp" + tools:text="你还没有贵族吧" /> + android:textSize="14sp" + tools:text="99999" /> + + \ No newline at end of file diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/ic_vip_ranking_first.png b/app/src/module_treasure_box/res/drawable-xhdpi/ic_vip_ranking_first.png new file mode 100644 index 0000000000000000000000000000000000000000..420e647306b9e4ec58eab1cfb0a09d1228f550a9 GIT binary patch literal 4501 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 = + suspend fun getVipRankBanner(): List? = launchRequest { api.getVipRankBanner() } @@ -119,7 +119,7 @@ object VipModel : BaseModel() { * @return */ @GET("/vip/listUpgrade") - suspend fun getVipRankBanner(): ServiceResult> + suspend fun getVipRankBanner(): ServiceResult> /** * 使用钻石开通贵族 diff --git a/core/src/main/java/com/mango/core/vip/VipRankInfo.kt b/core/src/main/java/com/mango/core/vip/VipRankInfo.kt index 45955e200..2c0754ea6 100644 --- a/core/src/main/java/com/mango/core/vip/VipRankInfo.kt +++ b/core/src/main/java/com/mango/core/vip/VipRankInfo.kt @@ -11,6 +11,8 @@ data class RankInfo( val nick: String? = null, val avatar: String? = null, val vipLogo: String? = null, + val vipIcon: String? = null, val score: Long? = null, - val rankNo: Int? = null + val rankNo: Int? = null, + val vipLevel: Int? = null ) \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 42250d06b..a5171729f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,5 +25,5 @@ only_arm64=true channel_file=channel.txt -version_name=5.4.0 -version_code=540 \ No newline at end of file +version_name=5.5.0 +version_code=550 \ No newline at end of file