From ca62822bfb1a4964dc660bdd9c92d81af0565765 Mon Sep 17 00:00:00 2001 From: wushaocheng <15876365887@163.com> Date: Wed, 20 Sep 2023 16:07:17 +0800 Subject: [PATCH] =?UTF-8?q?[Modify]=E9=A6=96=E9=A1=B5=E5=92=8C=E5=A4=BA?= =?UTF-8?q?=E5=AE=9D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/home/adapter/HomeBannerAdapter.kt | 22 +++++ .../erban/home/fragment/AccompanyFragment.kt | 2 +- .../erban/home/fragment/HomeFragment.kt | 41 ++++++-- .../adapter/ExchangeDebrisAdapter.kt | 14 --- .../adapter/ExchangeSummonAdapter.kt | 33 +++++++ .../dialog/ExchangeFairyDialog.kt | 5 +- .../fragment/ExchangeDebrisFragment.kt | 15 +-- .../fragment/ExchangeSummonFragment.kt | 89 ++++++++++++++++++ .../drawable-xhdpi/treasure_exchange_bg.png | Bin 0 -> 4217 bytes .../main/res/layout/activity_home_banner.xml | 24 +++++ app/src/main/res/layout/fragment_home.xml | 56 +++++------ .../main/res/layout/fragment_recommend.xml | 4 +- .../main/res/layout/item_room_new_friends.xml | 5 +- .../treasure_fairy_item_exchange_debris.xml | 17 +--- .../treasure_fairy_item_exchange_summon.xml | 74 +++++++++++++++ 15 files changed, 320 insertions(+), 81 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/home/adapter/HomeBannerAdapter.kt create mode 100644 app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeSummonAdapter.kt create mode 100644 app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeSummonFragment.kt create mode 100644 app/src/main/res/drawable-xhdpi/treasure_exchange_bg.png create mode 100644 app/src/main/res/layout/activity_home_banner.xml create mode 100644 app/src/main/res/layout/treasure_fairy_item_exchange_summon.xml diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/HomeBannerAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/HomeBannerAdapter.kt new file mode 100644 index 000000000..1557a517f --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/HomeBannerAdapter.kt @@ -0,0 +1,22 @@ +package com.yizhuan.erban.home.adapter + +import com.yizhuan.erban.R +import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 +import com.yizhuan.xchat_android_core.home.bean.BannerInfo +import com.zhpan.bannerview.BaseBannerAdapter +import com.zhpan.bannerview.BaseViewHolder + +class HomeBannerAdapter : BaseBannerAdapter() { + override fun getLayoutId(viewType: Int): Int { + return R.layout.activity_home_banner + } + + override fun bindData( + helper: BaseViewHolder, + item: BannerInfo?, + position: Int, + pageSize: Int + ) { + ImageLoadUtilsV2.loadImage(helper.findViewById(R.id.iv_cover), item?.bannerPic) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/AccompanyFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/AccompanyFragment.kt index 5d8038f89..fe478c421 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/AccompanyFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/AccompanyFragment.kt @@ -148,7 +148,7 @@ class AccompanyFragment : BaseViewBindingFragment() { private fun showGameGuide(){ val userInfo = UserModel.get().cacheLoginUserInfo if (userInfo?.isHasPermitRoom == true) { - binding.ivGameGuide.visibility = View.VISIBLE + binding.ivGameGuide.visibility = View.GONE } else { binding.ivGameGuide.visibility = View.GONE } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt index c5ab44151..c73dcdf18 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt @@ -14,21 +14,25 @@ import com.yizhuan.erban.avroom.activity.AVRoomActivity import com.yizhuan.erban.base.BaseViewBindingFragment import com.yizhuan.erban.databinding.FragmentHomeBinding import com.yizhuan.erban.home.HomeViewModel +import com.yizhuan.erban.home.adapter.HomeBannerAdapter import com.yizhuan.erban.home.dialog.RecommendRoomDialog -import com.yizhuan.erban.home.helper.BannerHelper import com.yizhuan.erban.home.helper.OpenRoomHelper import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity import com.yizhuan.erban.ui.search.SearchActivity import com.yizhuan.erban.ui.user.adapter.MainIndicatorAdapter -import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 import com.yizhuan.erban.ui.utils.load import com.yizhuan.erban.ui.webview.CommonWebViewActivity import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper +import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator +import com.yizhuan.erban.utils.CommonJumpHelper import com.yizhuan.xchat_android_core.DemoCache import com.yizhuan.xchat_android_core.UriProvider +import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo +import com.yizhuan.xchat_android_library.utils.ListUtils import com.yizhuan.xchat_android_library.utils.ResUtil +import com.zhpan.bannerview.BannerViewPager /** * Peko首页 @@ -40,23 +44,40 @@ class HomeFragment : BaseViewBindingFragment(), View.OnClic private val mTabInfoList = mutableListOf() private val homeViewModel: HomeViewModel by activityViewModels() + private var mBanner: BannerViewPager? = null + companion object { private const val TAG = "HomeFragment" } override fun init() { + mBanner = view?.findViewById>(R.id.banner) initTitleTab() initListener() homeViewModel.bannerLiveData.observe(this) { it?.let { - BannerHelper.setBanner(binding.rollView, it) { _, _ -> - //首页_banner - ReportManager.get().reportEvent( - IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf( - Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.SIX), - Pair(IReportConstants.MODULE, IReportConstants.PEKO_HOMEPAGE) - ) - ) + if (ListUtils.isListEmpty(it)) { + mBanner?.visibility = View.GONE + return@let + } + mBanner?.visibility = View.VISIBLE + mBanner?.adapter = HomeBannerAdapter() + mBanner?.post { + mBanner?.apply { + this.setPageMargin(UIUtil.dip2px(mContext, 8.0)) + .setScrollDuration(800) + .setOnPageClickListener { _: View?, position: Int -> + //首页_banner + ReportManager.get().reportEvent( + IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf( + Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.SIX), + Pair(IReportConstants.MODULE, IReportConstants.PEKO_HOMEPAGE) + ) + ) + CommonJumpHelper.bannerJump(context, it[position]) + } + .create(it) + } } } } diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeDebrisAdapter.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeDebrisAdapter.kt index 1c85c7387..6e01e6c89 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeDebrisAdapter.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeDebrisAdapter.kt @@ -1,12 +1,10 @@ package com.yizhuan.erban.treasurefairy.adapter -import androidx.recyclerview.widget.RecyclerView 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.ImageLoadUtilsV2 import com.yizhuan.xchat_android_core.treasurefairy.ExchangeGiftInfo -import com.yizhuan.xchat_android_core.treasurefairy.PropItemInfo class ExchangeDebrisAdapter : BaseQuickAdapter(R.layout.treasure_fairy_item_exchange_debris) { @@ -15,18 +13,6 @@ class ExchangeDebrisAdapter : ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_prize_icon), item.rewardPicUrl) helper.setText(R.id.tv_prize_name, item.getPrizeName()) - val adapter: BaseQuickAdapter = - object : BaseQuickAdapter(R.layout.item_exchange_debris) { - override fun convert(helper: BaseViewHolder, item: PropItemInfo) { - ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_icon), item.picUrl) - helper.setText(R.id.tv_num, "${item.propName}x${item.propNum}") - } - } - helper.getView(R.id.mRecyclerView).adapter = adapter - item.propItems?.let { - adapter.setNewData(it) - } - helper.addOnClickListener(R.id.tv_exchange) } diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeSummonAdapter.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeSummonAdapter.kt new file mode 100644 index 000000000..5c7184d42 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ExchangeSummonAdapter.kt @@ -0,0 +1,33 @@ +package com.yizhuan.erban.treasurefairy.adapter + +import androidx.recyclerview.widget.RecyclerView +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.ImageLoadUtilsV2 +import com.yizhuan.xchat_android_core.treasurefairy.ExchangeGiftInfo +import com.yizhuan.xchat_android_core.treasurefairy.PropItemInfo + +class ExchangeSummonAdapter : + BaseQuickAdapter(R.layout.treasure_fairy_item_exchange_summon) { + + override fun convert(helper: BaseViewHolder, item: ExchangeGiftInfo) { + ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_prize_icon), item.rewardPicUrl) + helper.setText(R.id.tv_prize_name, item.getPrizeName()) + + val adapter: BaseQuickAdapter = + object : BaseQuickAdapter(R.layout.item_exchange_debris) { + override fun convert(helper: BaseViewHolder, item: PropItemInfo) { + ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_icon), item.picUrl) + helper.setText(R.id.tv_num, "${item.propName}x${item.propNum}") + } + } + helper.getView(R.id.mRecyclerView).adapter = adapter + item.propItems?.let { + adapter.setNewData(it) + } + + helper.addOnClickListener(R.id.tv_exchange) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/ExchangeFairyDialog.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/ExchangeFairyDialog.kt index bdd58e05d..2dab99ce5 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/ExchangeFairyDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/ExchangeFairyDialog.kt @@ -13,6 +13,7 @@ import com.yizhuan.erban.databinding.TreasureFairyDialogExchangeBinding import com.yizhuan.erban.treasurefairy.FairyViewModel import com.yizhuan.erban.treasurefairy.fragment.ExchangeDebrisFragment import com.yizhuan.erban.treasurefairy.fragment.ExchangeFairyFragment +import com.yizhuan.erban.treasurefairy.fragment.ExchangeSummonFragment class ExchangeFairyDialog : BaseDialog() { @@ -56,8 +57,8 @@ class ExchangeFairyDialog : BaseDialog() { binding?.viewPager?.adapter = RoomVPAdapter( childFragmentManager, listOf( - ExchangeDebrisFragment.newInstance(1), - ExchangeDebrisFragment.newInstance(2) + ExchangeSummonFragment.newInstance(), + ExchangeDebrisFragment.newInstance() ) ) viewModel.getMyFairyInfo() diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeDebrisFragment.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeDebrisFragment.kt index 39569f3eb..9b3b690c7 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeDebrisFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeDebrisFragment.kt @@ -2,7 +2,9 @@ package com.yizhuan.erban.treasurefairy.fragment import android.annotation.SuppressLint import android.os.Bundle +import androidx.activity.viewModels import androidx.fragment.app.activityViewModels +import androidx.fragment.app.viewModels import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import com.yizhuan.erban.R @@ -22,21 +24,18 @@ class ExchangeDebrisFragment : BaseViewBindingFragment() { companion object { - fun newInstance(fairyType: Int): ExchangeDebrisFragment { + fun newInstance(): ExchangeDebrisFragment { val args = Bundle() - args.putInt("fairyType", fairyType) val fragment = ExchangeDebrisFragment() fragment.arguments = args return fragment } } - private val viewModel: FairyViewModel by activityViewModels() + private val viewModel: FairyViewModel by viewModels() private lateinit var rvDelegate: RVDelegate private lateinit var debrisAdapter: ExchangeDebrisAdapter - private val fairyType by lazy { requireArguments().getInt("fairyType", 1) } - @SuppressLint("CheckResult") override fun init() { debrisAdapter = ExchangeDebrisAdapter() @@ -51,11 +50,6 @@ class ExchangeDebrisFragment : ) .setLayoutManager(GridLayoutManager(context, 2, LinearLayoutManager.VERTICAL, false)) .build() - if(fairyType == 1){ - viewModel.getFairyCallList() - } else { - viewModel.getDebrisExchangeList() - } viewModel.fairyCallInfoLiveData.observe(viewLifecycleOwner) { rvDelegate.setNewData(it) } @@ -70,6 +64,7 @@ class ExchangeDebrisFragment : } } + viewModel.getDebrisExchangeList() viewModel.getMyFairyInfo() viewModel.myFairyInfoLiveData.observe(viewLifecycleOwner) { diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeSummonFragment.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeSummonFragment.kt new file mode 100644 index 000000000..066f75726 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/ExchangeSummonFragment.kt @@ -0,0 +1,89 @@ +package com.yizhuan.erban.treasurefairy.fragment + +import android.annotation.SuppressLint +import android.os.Bundle +import androidx.activity.viewModels +import androidx.fragment.app.activityViewModels +import androidx.fragment.app.viewModels +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager +import com.yizhuan.erban.R +import com.yizhuan.erban.base.BaseViewBindingFragment +import com.yizhuan.erban.common.EmptyViewHelper +import com.yizhuan.erban.databinding.TreasureFairyFragmentExchangeDebrisBinding +import com.yizhuan.erban.treasurefairy.FairyViewModel +import com.yizhuan.erban.treasurefairy.adapter.ExchangeDebrisAdapter +import com.yizhuan.erban.treasurefairy.adapter.ExchangeSummonAdapter +import com.yizhuan.erban.ui.utils.RVDelegate +import com.yizhuan.erban.ui.utils.loadAvatar +import com.yizhuan.xchat_android_core.treasurefairy.ExchangeGiftInfo +import com.yizhuan.xchat_android_core.user.UserModel +import com.yizhuan.xchat_android_core.utils.subAndReplaceDot +import com.yizhuan.xchat_android_core.utils.toast + +class ExchangeSummonFragment : + BaseViewBindingFragment() { + + companion object { + fun newInstance(): ExchangeSummonFragment { + val args = Bundle() + val fragment = ExchangeSummonFragment() + fragment.arguments = args + return fragment + } + } + + private val viewModel: FairyViewModel by viewModels() + private lateinit var rvDelegate: RVDelegate + private lateinit var exchangeSummonAdapter: ExchangeSummonAdapter + + @SuppressLint("CheckResult") + override fun init() { + exchangeSummonAdapter = ExchangeSummonAdapter() + rvDelegate = RVDelegate.Builder() + .setAdapter(exchangeSummonAdapter) + .setRecyclerView(binding.recyclerView) + .setEmptyView( + EmptyViewHelper.createEmptyTextViewNoImage( + context, + getString(R.string.fairy_no_further_data_is_available) + ) + ) + .setLayoutManager(GridLayoutManager(context, 2, LinearLayoutManager.VERTICAL, false)) + .build() + viewModel.fairyCallInfoLiveData.observe(viewLifecycleOwner) { + rvDelegate.setNewData(it) + } + viewModel.debrisExchangeListLiveData.observe(viewLifecycleOwner) { + rvDelegate.setNewData(it) + } + exchangeSummonAdapter.setOnItemChildClickListener { _, _, position -> + exchangeSummonAdapter.getItem(position)?.let { + dialogManager.showTipsDialog("您將要兌換“${it.getPrizeName()}”", "兌換") { + viewModel.debrisExchange(it.itemId) + } + } + } + + viewModel.getFairyCallList() + viewModel.getMyFairyInfo() + + viewModel.myFairyInfoLiveData.observe(viewLifecycleOwner) { + it?.let { + binding.tvDebrisNum.text = it.chipNum.toString() + } + } + + UserModel.get().cacheLoginUserInfo?.let { + binding.ivAvatar.loadAvatar(it.avatar) + binding.tvNickname.text = it.nick.subAndReplaceDot(7) + } + + viewModel.debrisExchangeLiveData.observe(viewLifecycleOwner) { + it?.getContentIfNotHandled()?.let { + "兌換成功~".toast() + } + } + + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/treasure_exchange_bg.png b/app/src/main/res/drawable-xhdpi/treasure_exchange_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..aa40a1f094d2b7415a17ebb9aa6df15321416fbf GIT binary patch literal 4217 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 P00000NkvXXu0mjfh+a^Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_home_banner.xml b/app/src/main/res/layout/activity_home_banner.xml new file mode 100644 index 000000000..eebd8715a --- /dev/null +++ b/app/src/main/res/layout/activity_home_banner.xml @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 54fc5b1cc..69719a227 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -20,10 +20,10 @@ android:id="@+id/title_bar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="bottom" + android:gravity="center_vertical" android:orientation="horizontal" - android:paddingTop="40dp" - android:paddingBottom="@dimen/dp_12" + android:layout_marginTop="@dimen/dp_40" + android:layout_marginBottom="@dimen/dp_12" app:layout_constraintTop_toTopOf="parent"> - - + app:corner="@dimen/dp_16" /> + + - + tools:text="余生点唱歌曲京东卡数据接口的萨拉卡死" /> @@ -46,29 +46,18 @@ app:layout_constraintTop_toTopOf="parent" tools:text="我的可愛頭飾(1天)" /> - - + app:layout_constraintTop_toBottomOf="@id/tv_prize_name" /> \ No newline at end of file diff --git a/app/src/main/res/layout/treasure_fairy_item_exchange_summon.xml b/app/src/main/res/layout/treasure_fairy_item_exchange_summon.xml new file mode 100644 index 000000000..314627b65 --- /dev/null +++ b/app/src/main/res/layout/treasure_fairy_item_exchange_summon.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + \ No newline at end of file