From 9a075db5d52fd24176095852179bf0ff96c522c4 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 20 Feb 2024 19:35:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E5=AE=8C=E6=88=90=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E4=BD=8D=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 6 +- .../erban/avroom/banner/RoomBannerAdapter.kt | 40 ++++ .../erban/avroom/banner/RoomBannerWidget.kt | 190 ++++++++++++++++++ .../erban/avroom/fragment/BaseRoomFragment.kt | 82 -------- .../erban/avroom/fragment/GameRoomFragment.kt | 9 +- .../fragment/HomePartyRoomFragment.java | 42 +--- .../avroom/fragment/SingleRoomFragment.kt | 28 +-- .../avroom/gameplay/RoomGameplayWidget.kt | 128 ++++++++++++ .../avroom/gameplay/RoomPlayListAdapter.kt | 19 ++ .../avroom/presenter/GameRoomPresenter.java | 41 ---- .../avroom/presenter/HomePartyPresenter.java | 47 ----- .../avroom/presenter/SingleRoomPresenter.java | 50 ----- .../erban/avroom/view/IGameRoomView.java | 5 - .../erban/avroom/view/IHomePartyView.java | 4 - .../erban/avroom/view/ISingleRoomView.java | 5 - .../erban/home/adapter/RoomActAdapter.kt | 80 -------- .../ui/webview/DialogWebViewActivity.java | 7 +- .../room_banner/RoomBannerTabAdapter.kt | 11 +- .../RoomBannerWebDialogActivity.kt | 10 +- .../room_banner/RoomWebDialogActivity.kt | 26 +++ .../yizhuan/erban/utils/CommonJumpHelper.java | 3 +- .../main/res/drawable/room_gameplay_bg.xml | 9 + .../drawable/room_gameplay_ic_arrow_left.xml | 14 ++ .../drawable/room_gameplay_ic_arrow_right.xml | 14 ++ .../main/res/drawable/shape_727272_7dp.xml | 7 + .../main/res/layout/room_banner_widget.xml | 16 ++ .../main/res/layout/room_gameplay_item.xml | 18 ++ .../main/res/layout/room_gameplay_widget.xml | 82 ++++++++ app/src/main/res/values/styles.xml | 3 + .../res/layout/fragment_av_room_game.xml | 92 +++------ .../res/layout/fragment_game_room.xml | 9 +- .../res/layout/fragment_single_room.xml | 73 ++----- .../home/bean/BannerInfo.java | 3 +- .../home/bean/IRouterData.kt | 18 ++ .../xchat_android_core/room/bean/RoomIcon.kt | 57 ++++++ .../room/bean/RoomInfo.java | 4 + .../room/model/AvRoomModel.java | 158 ++++++++++----- .../room/model/RoomBaseModel.java | 19 ++ .../support/room/RoomContext.kt | 11 + 39 files changed, 868 insertions(+), 572 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerAdapter.kt create mode 100644 app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerWidget.kt create mode 100644 app/src/main/java/com/yizhuan/erban/avroom/gameplay/RoomGameplayWidget.kt create mode 100644 app/src/main/java/com/yizhuan/erban/avroom/gameplay/RoomPlayListAdapter.kt delete mode 100644 app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.kt create mode 100644 app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomWebDialogActivity.kt create mode 100644 app/src/main/res/drawable/room_gameplay_bg.xml create mode 100644 app/src/main/res/drawable/room_gameplay_ic_arrow_left.xml create mode 100644 app/src/main/res/drawable/room_gameplay_ic_arrow_right.xml create mode 100644 app/src/main/res/drawable/shape_727272_7dp.xml create mode 100644 app/src/main/res/layout/room_banner_widget.xml create mode 100644 app/src/main/res/layout/room_gameplay_item.xml create mode 100644 app/src/main/res/layout/room_gameplay_widget.xml create mode 100644 core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/IRouterData.kt create mode 100644 core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomIcon.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fe4f88d90..dafaa04ed 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -843,7 +843,11 @@ + android:windowSoftInputMode="adjustPan" /> + diff --git a/app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerAdapter.kt b/app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerAdapter.kt new file mode 100644 index 000000000..a9f83be66 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerAdapter.kt @@ -0,0 +1,40 @@ +package com.yizhuan.erban.avroom.banner + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import androidx.core.util.Consumer +import com.yizhuan.erban.R +import com.yizhuan.erban.ui.utils.ImageLoadUtils +import com.yizhuan.erban.ui.widget.rollviewpager.adapter.StaticPagerAdapter +import com.yizhuan.xchat_android_core.room.bean.RoomIcon + +class RoomBannerAdapter(private val mContext: Context, private val data: List) : + StaticPagerAdapter() { + + var onItemClickListener: Consumer? = null + + override fun getView(container: ViewGroup, position: Int): View { + val view = LayoutInflater.from(mContext).inflate(R.layout.item_room_act, container, false) + val ivCover = view.findViewById(R.id.iv_cover) + val bannerInfo = data[position] + val actId = bannerInfo.id?.toString() + ivCover.scaleType = ImageView.ScaleType.CENTER_CROP + ImageLoadUtils.loadImage( + mContext, + bannerInfo.icon, + ivCover, + R.drawable.default_cover + ) + ivCover.setOnClickListener { v: View? -> + onItemClickListener?.accept(bannerInfo) + } + return view + } + + override fun getCount(): Int { + return data.size + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerWidget.kt b/app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerWidget.kt new file mode 100644 index 000000000..538aca590 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/banner/RoomBannerWidget.kt @@ -0,0 +1,190 @@ +package com.yizhuan.erban.avroom.banner + +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.Drawable +import android.graphics.drawable.GradientDrawable +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.RelativeLayout +import androidx.core.content.ContextCompat +import androidx.core.view.isVisible +import androidx.databinding.DataBindingUtil +import com.yizhuan.erban.R +import com.yizhuan.erban.avroom.firstcharge.FirstChargeDialog +import com.yizhuan.erban.databinding.RoomBannerWidgetBinding +import com.yizhuan.erban.shipantics.PullRadishActivity +import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper +import com.yizhuan.erban.treasurefairy.HomeFairyActivity +import com.yizhuan.erban.ui.webview.CommonWebViewActivity +import com.yizhuan.erban.ui.webview.room_banner.RoomBannerWebDialogActivity +import com.yizhuan.erban.ui.webview.room_banner.RoomWebDialogActivity +import com.yizhuan.erban.ui.widget.rollviewpager.Util +import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView +import com.yizhuan.erban.utils.CommonJumpHelper +import com.yizhuan.xchat_android_core.room.bean.RoomIcon +import com.yizhuan.xchat_android_core.room.bean.RoomInfo +import com.yizhuan.xchat_android_core.room.model.AvRoomModel +import com.yizhuan.xchat_android_core.support.room.FrameLayoutRoomWidget +import com.yizhuan.xchat_android_core.support.room.RoomContext +import com.yizhuan.xchat_android_core.support.room.RoomView +import okhttp3.internal.filterList + +/** + * Created by Max on 2024/2/20 10:42 + * Desc:玩法活动 + **/ +class RoomBannerWidget : FrameLayoutRoomWidget { + private val binding: RoomBannerWidgetBinding = + DataBindingUtil.inflate( + LayoutInflater.from( + context + ), R.layout.room_banner_widget, this, true + ) + + + private var indicatorVisible = false + + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) + + init { + setIndicatorEnabled(true) + } + + override fun onInitialize(roomView: RoomView, roomContext: RoomContext) { + super.onInitialize(roomView, roomContext) + if (roomContext.getRoomInfo()?.type == RoomInfo.ROOMTYPE_GAME) { + refreshData(true) + } else { + refreshData(false) + } + } + + fun disabledIndicator() { + setIndicatorEnabled(false) + } + + private fun refreshData(isGameRoom: Boolean) { + val disposable = if (isGameRoom) { + AvRoomModel.get().gameRoomBannerList + } else { + AvRoomModel.get().roomBannerList + }.subscribe { list: List -> + loadData(list) + } + getCompositeDisposable().add(disposable) + } + + private fun loadData(list: List?) { + if (list.isNullOrEmpty()) { + this.isVisible = false + return + } + this.isVisible = true + // 只有一個圖標,隱藏底部指示器 + indicatorVisible = list.size > 1 + + val bannerAdapter = RoomBannerAdapter(context, list) + bannerAdapter.onItemClickListener = androidx.core.util.Consumer { + if (it.isSeizeTreasure()) { + HomeFairyActivity.start(context) + } else if (it.isFirstCharge()) { + FirstChargeDialog.start(context) + } else if (it.isFindLove()) { + GoldBoxHelper.handleBoxClick(context) + } else if (it.isNauticalAdventure()) { + PullRadishActivity.start(context) + } else { + AvRoomModel.get().activityClickLog("2", it.id?.toString()).subscribe() + + if (it.skipType == 3) { + if (it.tag == RoomIcon.TAG_GAMEPLAY) { + if (it.showType == 2) { + RoomWebDialogActivity.start(context, it.skipContent ?: "", false) + } else { + CommonWebViewActivity.start(context, it.skipContent ?: "") + } + } else { + val newList = list.filterList { + skipType == 3 && tag != RoomIcon.TAG_GAMEPLAY + } + val newPosition = newList.indexOfFirst { item -> + item == it + } + RoomBannerWebDialogActivity.start(context, newPosition, newList) + } + } else { + CommonJumpHelper.bannerJump(context, it) + } + } + } + binding.pagerView.adapter = bannerAdapter + binding.pagerView.setPlayDelay(3000) + //設置透明度 + binding.pagerView.setAnimationDurtion(500) + bannerAdapter.notifyDataSetChanged() + + val viewPager = binding.pagerView.viewPager + viewPager.offscreenPageLimit = list.size + } + + private fun setIndicatorEnabled(isEnabled: Boolean) { + // 模擬指示器在viewpager底部效果 + val viewPager = binding.pagerView.viewPager + val layoutParams = viewPager.layoutParams as RelativeLayout.LayoutParams + if (isEnabled) { + layoutParams.setMargins(0, 0, 0, Util.dip2px(context, 7f)) + binding.pagerView.setHintView(object : ColorPointHintView( + context, Color.WHITE, ContextCompat.getColor( + context, + R.color.color_66FFFFFF + ) + ) { + override fun makeFocusDrawable(): Drawable? { + val dotFocus = GradientDrawable() + dotFocus.setColor(Color.WHITE) + dotFocus.cornerRadius = Util.dip2px( + context, 2f + ).toFloat() + dotFocus.setSize( + Util.dip2px(context, 9f), Util.dip2px( + context, 4f + ) + ) + return if (indicatorVisible) dotFocus else null + } + + override fun makeNormalDrawable(): Drawable? { + val dotNormal = GradientDrawable() + dotNormal.setColor(ContextCompat.getColor(context, R.color.color_66FFFFFF)) + dotNormal.cornerRadius = Util.dip2px( + context, 2f + ).toFloat() + dotNormal.setSize( + Util.dip2px(context, 4f), Util.dip2px( + context, 4f + ) + ) + return if (indicatorVisible) dotNormal else null + } + }) + } else { + layoutParams.setMargins(0, 0, 0, 0) + binding.pagerView.setHintView(null) + } + viewPager.layoutParams = layoutParams + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt index 8afa2bade..7870eaf68 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt @@ -59,34 +59,24 @@ import com.yizhuan.erban.base.BaseMvpActivity import com.yizhuan.erban.base.BaseMvpFragment import com.yizhuan.erban.event.OpenRoomIntroEvent import com.yizhuan.erban.friend.view.SelectFriendActivity -import com.yizhuan.erban.home.adapter.RoomActAdapter -import com.yizhuan.erban.shipantics.PullRadishActivity -import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper -import com.yizhuan.erban.ui.webview.DialogWebViewActivity import com.yizhuan.erban.ui.widget.ButtonItem import com.yizhuan.erban.ui.widget.GiftDialog import com.yizhuan.erban.ui.widget.GiftDialog.OnGiftDialogBtnClickListener import com.yizhuan.erban.ui.widget.GiftDialog.SenGiftCallback import com.yizhuan.erban.ui.widget.UserInfoDialog import com.yizhuan.erban.ui.widget.dynamicface.DynamicFaceDialog -import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil -import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView -import com.yizhuan.erban.ui.widget.rollviewpager.Util -import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView import com.yizhuan.erban.utils.KeyBoardUtils import com.yizhuan.tutu.music.widget.MusicPlayerView import com.yizhuan.tutu.room_chat.activity.RoomMsgActivity import com.yizhuan.xchat_android_constants.XChatConstants import com.yizhuan.xchat_android_core.Constants import com.yizhuan.xchat_android_core.DemoCache -import com.yizhuan.xchat_android_core.UriProvider import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.bean.RoomMicInfo import com.yizhuan.xchat_android_core.gift.GiftModel import com.yizhuan.xchat_android_core.gift.bean.GiftInfo import com.yizhuan.xchat_android_core.gift.event.RoomFreeGiftEvent import com.yizhuan.xchat_android_core.helper.AtProxy -import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.home.event.OpenRoomMessageInputEvent import com.yizhuan.xchat_android_core.im.custom.bean.RoomFollowOwnerAttachment import com.yizhuan.xchat_android_core.im.custom.bean.RoomFollowOwnerAttachment2 @@ -97,7 +87,6 @@ import com.yizhuan.xchat_android_core.manager.RoomEvent import com.yizhuan.xchat_android_core.mentoring_relationship.event.MentoringStopCountingEvent import com.yizhuan.xchat_android_core.room.anotherroompk.ShowGiftDialogEvent import com.yizhuan.xchat_android_core.room.anotherroompk.ShowUserInfoDialogEvent -import com.yizhuan.xchat_android_core.room.bean.RoomContributeUserInfo import com.yizhuan.xchat_android_core.room.bean.RoomInfo import com.yizhuan.xchat_android_core.room.event.RoomAtEvent import com.yizhuan.xchat_android_core.room.event.RoomClearScreenEvent @@ -147,7 +136,6 @@ open class BaseRoomFragment?> : protected lateinit var inputSend: ImageView protected lateinit var microView: MicroView private var musicPlayerView: MusicPlayerView? = null - private var ivRadishEntrance: View? = null private var mVsMusicPlayer: ViewStub? = null private var mDisposable: Disposable? = null private var isCloseScreen = false @@ -207,7 +195,6 @@ open class BaseRoomFragment?> : inputSend = mView.findViewById(R.id.input_send) microView = mView.findViewById(R.id.micro_view) mVsMusicPlayer = mView.findViewById(R.id.vs_music_player) - ivRadishEntrance = mView.findViewById(R.id.iv_radish_entrance) messageView.setClickConsumer { if (!TextUtils.isEmpty(it) && it != "0") { showUserCardDialog(it) @@ -289,10 +276,6 @@ open class BaseRoomFragment?> : checkFollowOwner() GiftValueMrg.get().updateRoomGiftValue(false) - //先隐藏航海冒险 -// ivRadishEntrance?.isVisible = -// !GoldBoxHelper.needIntegrateBoxEntrance() && GoldBoxHelper.isShowRadish() - //获取免费礼物详情 mvpPresenter?.queryFreeFlower() initRoomAlbum() @@ -464,65 +447,6 @@ open class BaseRoomFragment?> : } } - fun initRoomAct( - rollPagerView: RollPagerView, - dialogInfo: List, - bottomDp: Float = 0f - ) { - if (!ListUtils.isListEmpty(dialogInfo)) { - rollPagerView.visibility = View.VISIBLE - // 只有一個圖標,隱藏底部指示器 - val show = dialogInfo.size > 1 - rollPagerView.setHintView(object : ColorPointHintView( - mContext, Color.WHITE, ContextCompat.getColor( - mContext, - R.color.color_66FFFFFF - ) - ) { - override fun makeFocusDrawable(): Drawable? { - val dotFocus = GradientDrawable() - dotFocus.setColor(Color.WHITE) - dotFocus.cornerRadius = Util.dip2px( - context, 2f - ).toFloat() - dotFocus.setSize( - Util.dip2px(context, 9f), Util.dip2px( - context, 4f - ) - ) - return if (show) dotFocus else null - } - - override fun makeNormalDrawable(): Drawable? { - val dotNormal = GradientDrawable() - dotNormal.setColor(ContextCompat.getColor(mContext, R.color.color_66FFFFFF)) - dotNormal.cornerRadius = Util.dip2px( - context, 2f - ).toFloat() - dotNormal.setSize( - Util.dip2px(context, 4f), Util.dip2px( - context, 4f - ) - ) - return if (show) dotNormal else null - } - }) - val bannerAdapter = RoomActAdapter(mContext, dialogInfo) - rollPagerView.adapter = bannerAdapter - rollPagerView.setPlayDelay(3000) - //設置透明度 - rollPagerView.setAnimationDurtion(500) - bannerAdapter.notifyDataSetChanged() - - // 模擬指示器在viewpager底部效果 - val viewPager = rollPagerView.viewPager - viewPager.offscreenPageLimit = dialogInfo.size - val layoutParams = viewPager.layoutParams as RelativeLayout.LayoutParams - layoutParams.setMargins(0, 0, 0, UIUtil.dip2px(mContext, bottomDp.toDouble())) - viewPager.layoutParams = layoutParams - } - } - private fun releaseView() { roomFreeGiftDialog?.dismiss() messageView.release() @@ -678,12 +602,6 @@ open class BaseRoomFragment?> : R.id.input_send -> { sendMsg() } - - R.id.iv_first_charge_enter -> FirstChargeDialog.start(mContext) - R.id.iv_treasure_box, - R.id.iv_treasure_box_cp -> GoldBoxHelper.handleBoxClick(mContext) - - R.id.iv_radish_entrance -> PullRadishActivity.start(mContext) } } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/GameRoomFragment.kt b/app/src/main/java/com/yizhuan/erban/avroom/fragment/GameRoomFragment.kt index a792ff426..5d9d390b9 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/GameRoomFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/GameRoomFragment.kt @@ -10,6 +10,7 @@ import com.yizhuan.erban.R import com.yizhuan.erban.avroom.adapter.GameMicroViewAdapter import com.yizhuan.erban.avroom.adapter.GameMiniMicroViewAdapter import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener +import com.yizhuan.erban.avroom.banner.RoomBannerWidget import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog import com.yizhuan.erban.avroom.game.GameDelegate import com.yizhuan.erban.avroom.game.OnGameStatusChangeListener @@ -19,7 +20,6 @@ import com.yizhuan.erban.avroom.redpackage.RedPackageWidget import com.yizhuan.erban.avroom.view.IGameRoomView import com.yizhuan.erban.databinding.FragmentGameRoomBinding import com.yizhuan.erban.ui.widget.GiftDialog.OnGiftDialogBtnClickListener -import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.manager.AvRoomDataManager import com.yizhuan.xchat_android_core.music.model.PlayerModel import com.yizhuan.xchat_android_core.pay.event.FirstChargeEvent @@ -79,7 +79,6 @@ class GameRoomFragment : BaseRoomFragment(), //游戏模式暂时不需要这个 PlayerModel.get().stop() gameBinding.roomInfo = AvRoomDataManager.get().mCurrentRoomInfo - mvpPresenter?.getBannerList() gameBinding.tvShowMiniMic.setOnClickListener { showMiniMic() } gameBinding.ivShowMic.setOnClickListener { showMic() } } @@ -151,10 +150,6 @@ class GameRoomFragment : BaseRoomFragment(), } } - override fun onShowBanner(dialogInfos: List) { - initRoomAct(gameBinding.activityImg, dialogInfos) - } - @Subscribe(threadMode = ThreadMode.MAIN) fun onFinishAvRoomEvent(event: FinishAvRoomEvent) { gameDelegate.exitGame() @@ -197,7 +192,9 @@ class GameRoomFragment : BaseRoomFragment(), override fun initWidget() { super.initWidget() + gameBinding.bannerWidget.disabledIndicator() registerWidget(RedPackageWidget::class.java.simpleName, gameBinding.redPackageWidget) registerWidget(RoomRankWidget::class.java.simpleName, gameBinding.rankWidget) + registerWidget(RoomBannerWidget::class.java.simpleName, gameBinding.bannerWidget) } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java index 48b02af49..4bf915ab4 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java @@ -20,11 +20,13 @@ import com.yizhuan.erban.avroom.adapter.MicroViewAdapter; import com.yizhuan.erban.avroom.anotherroompk.RoomPkFinishDialog; import com.yizhuan.erban.avroom.anotherroompk.RoomPkForceFinishDialog; import com.yizhuan.erban.avroom.anotherroompk.RoomPkReceivedDialog; +import com.yizhuan.erban.avroom.banner.RoomBannerWidget; import com.yizhuan.erban.avroom.dialog.MicQueueDialog; import com.yizhuan.erban.avroom.dialog.PKMicQueueDialog; import com.yizhuan.erban.avroom.dialog.PKResultDialog; import com.yizhuan.erban.avroom.dialog.PKScoreBoardDialog; import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog; +import com.yizhuan.erban.avroom.gameplay.RoomGameplayWidget; import com.yizhuan.erban.avroom.giftvalue.GiftValueDialogUiHelper; import com.yizhuan.erban.avroom.presenter.HomePartyPresenter; import com.yizhuan.erban.avroom.rank.RoomRankWidget; @@ -142,6 +144,8 @@ public class HomePartyRoomFragment extends BaseRoomFragment { - if (hide != null && !hide) { - if (AvRoomDataManager.get().isCpRoom()) { - gameBinding.ivTreasureBoxCp.setVisibility(View.VISIBLE); - gameBinding.ivTreasureBox.setVisibility(View.GONE); - } else { - gameBinding.ivTreasureBoxCp.setVisibility(View.GONE); - gameBinding.ivTreasureBox.setVisibility(View.VISIBLE); - GlideApp.with(BasicConfig.INSTANCE.getAppContext()) - .load(GoldBoxHelper.getBoxIcon()) - .error(R.drawable.icon_room_treasure_box) - .into(gameBinding.ivTreasureBox); - } - } else { - gameBinding.ivTreasureBoxCp.setVisibility(View.GONE); - gameBinding.ivTreasureBox.setVisibility(View.GONE); - } - }, - throwable -> { - gameBinding.ivTreasureBoxCp.setVisibility(View.GONE); - gameBinding.ivTreasureBox.setVisibility(View.GONE); - }); - } else { - gameBinding.ivTreasureBoxCp.setVisibility(View.GONE); - gameBinding.ivTreasureBox.setVisibility(View.GONE); - } - setDragonView(); } @@ -969,15 +942,10 @@ public class HomePartyRoomFragment extends BaseRoomFragment bannerInfos) { - initRoomAct(gameBinding.activityImg, bannerInfos, 11f); - } - @Subscribe(threadMode = ThreadMode.MAIN) public void onFirstRechargeEvent(FirstChargeEvent event) { - gameBinding.ivFirstChargeEnter.setVisibility(View.GONE); +// gameBinding.ivFirstChargeEnter.setVisibility(View.GONE); new FirstChargePrizeDialog(requireContext(), event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog(); } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt b/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt index 89e6a4b1e..8aedac603 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt @@ -13,8 +13,10 @@ import com.yizhuan.erban.R import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener import com.yizhuan.erban.avroom.adapter.SingleAnchorMicroViewAdapter import com.yizhuan.erban.avroom.adapter.SingleRoomPKMicroViewAdapter +import com.yizhuan.erban.avroom.banner.RoomBannerWidget import com.yizhuan.erban.avroom.dialog.RequestUpMicDialog import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog +import com.yizhuan.erban.avroom.gameplay.RoomGameplayWidget import com.yizhuan.erban.avroom.presenter.SingleRoomPresenter import com.yizhuan.erban.avroom.rank.RoomRankWidget import com.yizhuan.erban.avroom.redpackage.RedPackageWidget @@ -34,7 +36,6 @@ import com.yizhuan.tutu.music.widget.MusicPlayerView import com.yizhuan.xchat_android_core.UriProvider import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.fansteam.FansTeamInitInfo -import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.im.custom.bean.FansTeamMsgAttachment import com.yizhuan.xchat_android_core.im.custom.bean.RequestUpmicAttachment import com.yizhuan.xchat_android_core.im.custom.bean.RoomPKAttachment @@ -85,24 +86,7 @@ class SingleRoomFragment : BaseRoomFragment) { - initRoomAct(gameBinding.activityImg, dialogInfos, 10f) - } - @Subscribe(threadMode = ThreadMode.MAIN) fun onFirstRechargeEvent(event: FirstChargeEvent) { - gameBinding.ivFirstChargeEnter.visibility = View.GONE +// gameBinding.ivFirstChargeEnter.visibility = View.GONE FirstChargePrizeDialog( requireContext(), event.chargeProdTitle, @@ -276,6 +256,8 @@ class SingleRoomFragment : BaseRoomFragment + (adapter.getItem(position) as? RoomIcon)?.let { + jump(it) + } + } + } + + override fun onInitialize(roomView: RoomView, roomContext: RoomContext) { + super.onInitialize(roomView, roomContext) + refreshData() + } + + private fun refreshData() { + val disposable = AvRoomModel.get().roomGamePlayList + .subscribe { list: List -> + loadData(list) + } + getCompositeDisposable().add(disposable) + } + + private fun switchUI(open: Boolean) { + this.isOpened = open + if (open) { + binding.recyclerView.isVisible = true + binding.ivIcon.isVisible = false + binding.ivSwitch.setImageResource(R.drawable.room_gameplay_ic_arrow_right) + } else { + binding.recyclerView.isVisible = false + binding.ivIcon.isVisible = true + binding.ivSwitch.setImageResource(R.drawable.room_gameplay_ic_arrow_left) + } + } + + private fun loadData(list: List) { + this.isVisible = list.isNotEmpty() + adapter.setNewData(list) + binding.ivIcon.load(list.firstOrNull()?.icon) + } + + private fun jump(data: RoomIcon) { + if (data.isSeizeTreasure()) { + HomeFairyActivity.start(context) + } else if (data.isFirstCharge()) { + FirstChargeDialog.start(context) + } else if (data.isFindLove()) { + GoldBoxHelper.handleBoxClick(context) + } else if (data.isNauticalAdventure()) { + PullRadishActivity.start(context) + } else { + val url = data.skipContent + if (data.skipType == 3 && !url.isNullOrEmpty()) { + if (data.showType == 2) { + RoomWebDialogActivity.start(context, url, false) + } else { + CommonWebViewActivity.start(context, url) + } + } else { + CommonJumpHelper.bannerJump(context, data) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/gameplay/RoomPlayListAdapter.kt b/app/src/main/java/com/yizhuan/erban/avroom/gameplay/RoomPlayListAdapter.kt new file mode 100644 index 000000000..1587868d5 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/gameplay/RoomPlayListAdapter.kt @@ -0,0 +1,19 @@ +package com.yizhuan.erban.avroom.gameplay + +import android.widget.ImageView +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.load +import com.yizhuan.xchat_android_core.room.bean.RoomIcon + +/** + * Created by Max on 2024/2/20 11:38 + * Desc: + **/ +class RoomPlayListAdapter : + BaseQuickAdapter(R.layout.room_gameplay_item) { + override fun convert(helper: BaseViewHolder, item: RoomIcon?) { + helper.getView(R.id.iv_icon).load(item?.icon) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/presenter/GameRoomPresenter.java b/app/src/main/java/com/yizhuan/erban/avroom/presenter/GameRoomPresenter.java index 822f74b6e..71676b7f7 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/presenter/GameRoomPresenter.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/presenter/GameRoomPresenter.java @@ -1,15 +1,7 @@ package com.yizhuan.erban.avroom.presenter; -import android.annotation.SuppressLint; import com.yizhuan.erban.avroom.view.IGameRoomView; -import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper; -import com.yizhuan.erban.utils.UserUtils; -import com.yizhuan.xchat_android_core.home.bean.BannerInfo; -import com.yizhuan.xchat_android_core.room.model.AvRoomModel; - -import java.util.ArrayList; -import java.util.List; /** @@ -20,37 +12,4 @@ import java.util.List; */ public class GameRoomPresenter extends BaseRoomPresenter { - @SuppressLint("CheckResult") - public void getBannerList() { - AvRoomModel.get().getRoomBanner() - .compose(bindToLifecycle()) - .subscribe(bannerInfos -> { - if (bannerInfos == null) bannerInfos = new ArrayList<>(); - final boolean firstCharge = UserUtils.getUserInfo().isFirstCharge(); - if (firstCharge) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFirstCharge(true); - bannerInfos.add(0, bannerInfo); - } - if(GoldBoxHelper.isShowFairy()){ - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFairy(true); - bannerInfos.add(firstCharge ? 1 : 0, bannerInfo); - } - List finalBannerInfos = bannerInfos; - GoldBoxHelper.isHideBox() - .subscribe(isHide -> { - if (!isHide) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setBox(true); - int index = 0; - if (firstCharge) index++; - if (GoldBoxHelper.isShowFairy()) index++; - finalBannerInfos.add(index, bannerInfo); - } - getMvpView().onShowBanner(finalBannerInfos); - }, throwable -> getMvpView().onShowBanner(finalBannerInfos)); - }); - } - } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java b/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java index 3a728c977..7f49132ee 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyPresenter.java @@ -12,12 +12,10 @@ import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum; import com.yizhuan.erban.R; import com.yizhuan.erban.avroom.view.IHomePartyView; -import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper; import com.yizhuan.erban.utils.UserUtils; import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.bean.RoomQueueInfo; -import com.yizhuan.xchat_android_core.home.bean.BannerInfo; import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.FaceAttachment; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; @@ -297,49 +295,4 @@ public class HomePartyPresenter extends BaseRoomPresenter { .subscribe(s -> SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_presenter_homepartypresenter_01)) , e -> SingleToastUtil.showToast(e.getMessage())); } - - @SuppressLint("CheckResult") - public void getBannerList() { - mAvRoomModel.getRoomBanner() - .compose(bindToLifecycle()) - .subscribe(bannerInfos -> { - final boolean firstCharge = UserUtils.getUserInfo().isFirstCharge(); - if (GoldBoxHelper.needIntegrateBoxEntrance()) { - if (firstCharge) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFirstCharge(true); - bannerInfos.add(0, bannerInfo); - } - if (GoldBoxHelper.isShowRadish()) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setRadish(true); - bannerInfos.add(firstCharge ? 1 : 0, bannerInfo); - } - GoldBoxHelper.isHideBox() - .subscribe(isHide -> { - if (!isHide) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setBox(true); - int index = 0; - if (firstCharge) index++; - if (GoldBoxHelper.isShowRadish()) index++; - bannerInfos.add(index, bannerInfo); - } - getMvpView().onShowBanner(bannerInfos); - }, throwable -> getMvpView().onShowBanner(bannerInfos)); - } else { - if(GoldBoxHelper.isShowFairy()){ - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFairy(true); - bannerInfos.add(0, bannerInfo); - } - if (firstCharge) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFirstCharge(true); - bannerInfos.add(0, bannerInfo); - } - getMvpView().onShowBanner(bannerInfos); - } - }); - } } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/presenter/SingleRoomPresenter.java b/app/src/main/java/com/yizhuan/erban/avroom/presenter/SingleRoomPresenter.java index 22ee2fa02..3dec47434 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/presenter/SingleRoomPresenter.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/presenter/SingleRoomPresenter.java @@ -1,11 +1,7 @@ package com.yizhuan.erban.avroom.presenter; -import android.annotation.SuppressLint; import com.yizhuan.erban.avroom.view.ISingleRoomView; -import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper; -import com.yizhuan.erban.utils.UserUtils; -import com.yizhuan.xchat_android_core.home.bean.BannerInfo; /** *

@@ -14,50 +10,4 @@ import com.yizhuan.xchat_android_core.home.bean.BannerInfo; * @date 2017/12/8 */ public class SingleRoomPresenter extends BaseRoomPresenter { - - @SuppressLint("CheckResult") - public void getBannerList() { - mAvRoomModel.getRoomBanner() - .compose(bindToLifecycle()) - .subscribe(bannerInfos -> { - final boolean firstCharge = UserUtils.getUserInfo().isFirstCharge(); - if (GoldBoxHelper.needIntegrateBoxEntrance()) { - if (firstCharge) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFirstCharge(true); - bannerInfos.add(0, bannerInfo); - } - if (GoldBoxHelper.isShowRadish()) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setRadish(true); - bannerInfos.add(firstCharge ? 1 : 0, bannerInfo); - } - GoldBoxHelper.isHideBox() - .subscribe(isHide -> { - if (!isHide) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setBox(true); - int index = 0; - if (firstCharge) index++; - if (GoldBoxHelper.isShowRadish()) index++; - bannerInfos.add(index, bannerInfo); - } - getMvpView().onShowBanner(bannerInfos); - }, throwable -> getMvpView().onShowBanner(bannerInfos)); - } else { - if(GoldBoxHelper.isShowFairy()){ - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFairy(true); - bannerInfos.add(0, bannerInfo); - } - if (firstCharge) { - BannerInfo bannerInfo = new BannerInfo(); - bannerInfo.setFirstCharge(true); - bannerInfos.add(0, bannerInfo); - } - getMvpView().onShowBanner(bannerInfos); - } - }); - } - } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/view/IGameRoomView.java b/app/src/main/java/com/yizhuan/erban/avroom/view/IGameRoomView.java index 78392d98b..57e4303a6 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/view/IGameRoomView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/view/IGameRoomView.java @@ -1,8 +1,5 @@ package com.yizhuan.erban.avroom.view; -import com.yizhuan.xchat_android_core.home.bean.BannerInfo; - -import java.util.List; /** *

轰趴房View层

@@ -12,6 +9,4 @@ import java.util.List; */ public interface IGameRoomView extends IBaseRoomView { - void onShowBanner(List dialogInfos); - } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java b/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java index 2ffcbbfff..10d357dd9 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyView.java @@ -1,9 +1,7 @@ package com.yizhuan.erban.avroom.view; -import com.yizhuan.xchat_android_core.home.bean.BannerInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; -import java.util.List; /** *

轰趴房View层

@@ -20,6 +18,4 @@ public interface IHomePartyView extends IBaseRoomView { * 礼物值模式下换麦 */ void onGiftValueChangeMic(int micPosition, String uId, boolean isInviteUpMic, RoomInfo roomInfo); - - void onShowBanner(List bannerInfos); } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/view/ISingleRoomView.java b/app/src/main/java/com/yizhuan/erban/avroom/view/ISingleRoomView.java index ebd7b0f3a..594a0168f 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/view/ISingleRoomView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/view/ISingleRoomView.java @@ -1,8 +1,5 @@ package com.yizhuan.erban.avroom.view; -import com.yizhuan.xchat_android_core.home.bean.BannerInfo; - -import java.util.List; /** *

轰趴房View层

@@ -12,6 +9,4 @@ import java.util.List; */ public interface ISingleRoomView extends IBaseRoomView { - void onShowBanner(List dialogInfos); - } diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.kt deleted file mode 100644 index e0f692e90..000000000 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.kt +++ /dev/null @@ -1,80 +0,0 @@ -package com.yizhuan.erban.home.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import com.netease.nim.uikit.support.glide.GlideApp -import com.yizhuan.erban.R -import com.yizhuan.erban.avroom.firstcharge.FirstChargeDialog -import com.yizhuan.erban.shipantics.PullRadishActivity -import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper -import com.yizhuan.erban.treasurefairy.HomeFairyActivity -import com.yizhuan.erban.ui.utils.ImageLoadUtils -import com.yizhuan.erban.ui.webview.room_banner.RoomBannerWebDialogActivity -import com.yizhuan.erban.ui.widget.rollviewpager.adapter.StaticPagerAdapter -import com.yizhuan.erban.utils.CommonJumpHelper -import com.yizhuan.xchat_android_core.home.bean.BannerInfo -import com.yizhuan.xchat_android_core.room.model.AvRoomModel -import com.yizhuan.xchat_android_library.utils.config.BasicConfig -import okhttp3.internal.filterList - -class RoomActAdapter(private val mContext: Context, private val data: List) : - StaticPagerAdapter() { - override fun getView(container: ViewGroup, position: Int): View { - val view = LayoutInflater.from(mContext).inflate(R.layout.item_room_act, container, false) - val ivCover = view.findViewById(R.id.iv_cover) - val bannerInfo = data[position] - val actId = bannerInfo.bannerId.toString() - ivCover.scaleType = ImageView.ScaleType.CENTER_CROP - if (bannerInfo.isFairy) { - ivCover.setImageResource(R.drawable.ic_fairy_entrance) - } else if (bannerInfo.isFirstCharge) { - ivCover.setImageResource(R.drawable.ic_first_charge_enter) - } else if (bannerInfo.isBox) { - GlideApp.with(BasicConfig.INSTANCE.appContext) - .load(GoldBoxHelper.getBoxIcon()) - .error(R.drawable.icon_room_treasure_box) - .into(ivCover) - } else if (bannerInfo.isRadish) { - ivCover.setImageResource(R.drawable.ic_radish_entrance) - } else { - ImageLoadUtils.loadImage( - mContext, - bannerInfo.bannerPic, - ivCover, - R.drawable.default_cover - ) - } - ivCover.setOnClickListener { v: View? -> - if (bannerInfo.isFairy) { - HomeFairyActivity.start(mContext) - } else if (bannerInfo.isFirstCharge) { - FirstChargeDialog.start(mContext) - } else if (bannerInfo.isBox) { - GoldBoxHelper.handleBoxClick(mContext) - } else if (bannerInfo.isRadish) { - PullRadishActivity.start(mContext) - } else { - AvRoomModel.get().activityClickLog("2", actId).subscribe() - if (bannerInfo.skipType == 3) { - val list = data.filterList { - skipType == 3 - } - val newPosition = list.indexOfFirst { - it == bannerInfo - } - RoomBannerWebDialogActivity.start(mContext, newPosition, list) - } else { - CommonJumpHelper.bannerJump(mContext, bannerInfo) - } - } - } - return view - } - - override fun getCount(): Int { - return data.size - } -} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java b/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java index cb24cd734..1c52045c2 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java @@ -38,8 +38,7 @@ public class DialogWebViewActivity extends CommonWebViewActivity { View topView = findViewById(R.id.v_top); topView.setOnClickListener(v -> finish()); ViewGroup.LayoutParams params = topView.getLayoutParams(); - params.height = ScreenUtil.screenHeight / 3; - topView.setLayoutParams(params); + params.height = getTopMargin(); showTitleBar = getIntent().getBooleanExtra("showTitleBar", true); if (!showTitleBar) { layoutTitleBar.setVisibility(View.GONE); @@ -50,4 +49,8 @@ public class DialogWebViewActivity extends CommonWebViewActivity { protected int getLayoutId() { return R.layout.activity_dialog_web_view; } + + protected int getTopMargin() { + return ScreenUtil.screenHeight / 3; + } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerTabAdapter.kt b/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerTabAdapter.kt index b61d6a5a6..63d6163b0 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerTabAdapter.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerTabAdapter.kt @@ -8,30 +8,31 @@ import com.chad.library.adapter.base.BaseViewHolder import com.yizhuan.erban.R import com.yizhuan.erban.ui.utils.load import com.yizhuan.xchat_android_core.home.bean.BannerInfo +import com.yizhuan.xchat_android_core.room.bean.RoomIcon /** * Created by Max on 2023/11/17 12:30 * Desc: **/ class RoomBannerTabAdapter : - BaseQuickAdapter(R.layout.room_banner_item_tab) { + BaseQuickAdapter(R.layout.room_banner_item_tab) { private var selectedPosition = -1 - override fun convert(helper: BaseViewHolder, item: BannerInfo?) { - helper.getView(R.id.iv_content).load(item?.bannerUrl) + override fun convert(helper: BaseViewHolder, item: RoomIcon?) { + helper.getView(R.id.iv_content).load(item?.icon) convertState(helper, item) } override fun convertPayloads( helper: BaseViewHolder, - item: BannerInfo?, + item: RoomIcon?, payloads: MutableList ) { super.convertPayloads(helper, item, payloads) convertState(helper, item) } - private fun convertState(helper: BaseViewHolder, item: BannerInfo?) { + private fun convertState(helper: BaseViewHolder, item: RoomIcon?) { helper.getView(R.id.v_selector).isInvisible = helper.absoluteAdapterPosition != selectedPosition } diff --git a/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerWebDialogActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerWebDialogActivity.kt index 4cdfcc0cb..55dff80f1 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerWebDialogActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomBannerWebDialogActivity.kt @@ -10,7 +10,7 @@ import androidx.recyclerview.widget.RecyclerView import com.chuhai.utils.UiUtils import com.yizhuan.erban.R import com.yizhuan.erban.ui.webview.CommonWebViewActivity -import com.yizhuan.xchat_android_core.home.bean.BannerInfo +import com.yizhuan.xchat_android_core.room.bean.RoomIcon /** @@ -24,8 +24,8 @@ class RoomBannerWebDialogActivity : CommonWebViewActivity() { companion object { @JvmStatic - fun start(context: Context, position: Int, list: List) { - val newList = ArrayList() + fun start(context: Context, position: Int, list: List) { + val newList = ArrayList() newList.addAll(list) val intent = Intent(context, RoomBannerWebDialogActivity::class.java) intent.putExtra("position", position) @@ -56,7 +56,7 @@ class RoomBannerWebDialogActivity : CommonWebViewActivity() { webView.setBackgroundColor(Color.parseColor("#C9CBD1")) recyclerView = findViewById(R.id.recyclerView) val position = 0.coerceAtLeast(intent.getIntExtra("position", 0)) - val list = intent.getSerializableExtra("list") as? ArrayList + val list = intent.getSerializableExtra("list") as? ArrayList // if ((list?.size ?: 0) <= 1) { // recyclerView?.isVisible = false // } @@ -74,7 +74,7 @@ class RoomBannerWebDialogActivity : CommonWebViewActivity() { } private fun switchTab(position: Int) { - val url = adapter?.getItem(position)?.skipUri + val url = adapter?.getItem(position)?.skipContent showWebView(url) adapter?.select(position) recyclerView?.post { diff --git a/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomWebDialogActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomWebDialogActivity.kt new file mode 100644 index 000000000..de0b8ded5 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/ui/webview/room_banner/RoomWebDialogActivity.kt @@ -0,0 +1,26 @@ +package com.yizhuan.erban.ui.webview.room_banner + +import android.content.Context +import android.content.Intent +import com.yizhuan.erban.ui.webview.DialogWebViewActivity +import com.yizhuan.erban.ui.widget.rollviewpager.Util + +/** + * Created by Max on 2024/2/20 17:47 + * Desc:房间半屏Web弹窗 + **/ +class RoomWebDialogActivity : DialogWebViewActivity() { + + companion object { + fun start(context: Context, url: String, showTitleBar: Boolean) { + val intent = Intent(context, RoomWebDialogActivity::class.java) + intent.putExtra("url", url) + intent.putExtra("showTitleBar", showTitleBar) + context.startActivity(intent) + } + } + + override fun getTopMargin(): Int { + return Util.dip2px(this, 168f) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/utils/CommonJumpHelper.java b/app/src/main/java/com/yizhuan/erban/utils/CommonJumpHelper.java index 8ce99103d..d409f98a6 100644 --- a/app/src/main/java/com/yizhuan/erban/utils/CommonJumpHelper.java +++ b/app/src/main/java/com/yizhuan/erban/utils/CommonJumpHelper.java @@ -14,6 +14,7 @@ import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.ui.im.RouterHandler; import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.xchat_android_core.home.bean.BannerInfo; +import com.yizhuan.xchat_android_core.home.bean.IRouterData; import com.yizhuan.xchat_android_library.utils.JavaUtil; /** @@ -27,7 +28,7 @@ public class CommonJumpHelper { * * @param context */ - public static void bannerJump(Context context, BannerInfo bannerInfo) { + public static void bannerJump(Context context, IRouterData bannerInfo) { if (null == context || null == bannerInfo) { diff --git a/app/src/main/res/drawable/room_gameplay_bg.xml b/app/src/main/res/drawable/room_gameplay_bg.xml new file mode 100644 index 000000000..946f2195a --- /dev/null +++ b/app/src/main/res/drawable/room_gameplay_bg.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/room_gameplay_ic_arrow_left.xml b/app/src/main/res/drawable/room_gameplay_ic_arrow_left.xml new file mode 100644 index 000000000..262276027 --- /dev/null +++ b/app/src/main/res/drawable/room_gameplay_ic_arrow_left.xml @@ -0,0 +1,14 @@ + + + diff --git a/app/src/main/res/drawable/room_gameplay_ic_arrow_right.xml b/app/src/main/res/drawable/room_gameplay_ic_arrow_right.xml new file mode 100644 index 000000000..0b4c1d5a6 --- /dev/null +++ b/app/src/main/res/drawable/room_gameplay_ic_arrow_right.xml @@ -0,0 +1,14 @@ + + + diff --git a/app/src/main/res/drawable/shape_727272_7dp.xml b/app/src/main/res/drawable/shape_727272_7dp.xml new file mode 100644 index 000000000..56236ce97 --- /dev/null +++ b/app/src/main/res/drawable/shape_727272_7dp.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/room_banner_widget.xml b/app/src/main/res/layout/room_banner_widget.xml new file mode 100644 index 000000000..81dcf278c --- /dev/null +++ b/app/src/main/res/layout/room_banner_widget.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/room_gameplay_item.xml b/app/src/main/res/layout/room_gameplay_item.xml new file mode 100644 index 000000000..355f0e46e --- /dev/null +++ b/app/src/main/res/layout/room_gameplay_item.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/room_gameplay_widget.xml b/app/src/main/res/layout/room_gameplay_widget.xml new file mode 100644 index 000000000..12de661da --- /dev/null +++ b/app/src/main/res/layout/room_gameplay_widget.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 3492daa60..aadacde31 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -207,6 +207,9 @@ +