From 45b31d88f80b4cd349637149e83b4ce4c6a7ee66 Mon Sep 17 00:00:00 2001 From: huangjian Date: Fri, 26 Aug 2022 11:28:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=E5=BC=80=E7=AE=B1=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E9=80=82=E9=85=8D=E5=B0=8F=E5=B1=8F=E6=89=8B=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/avroom/fragment/BaseRoomFragment.kt | 4 +- .../fragment/HomePartyRoomFragment.java | 62 +++++++++++-------- .../avroom/presenter/HomePartyPresenter.java | 32 +++++++++- .../erban/home/adapter/RoomActAdapter.java | 52 ++++++++-------- .../treasure_box/widget/GoldBoxHelper.java | 19 ++++++ .../home/bean/BannerInfo.java | 1 + 6 files changed, 114 insertions(+), 56 deletions(-) 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 de95e54a7..8ac1f6285 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 @@ -273,8 +273,8 @@ open class BaseRoomFragment?> : GiftValueMrg.get().updateRoomGiftValue(false) ivRadishEntrance?.isVisible = - (UserModel.get().cacheLoginUserInfo?.userLevelVo?.getExperLevelSeq() ?: 0) >= - (InitialModel.get().cacheInitInfo?.linearlyPoolOpenLevel ?: 999) + !GoldBoxHelper.needIntegrateBoxEntrance() && GoldBoxHelper.isShowRadish() + } @CallSuper 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 e6e9deb42..0df856ae9 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 @@ -147,13 +147,16 @@ public class HomePartyRoomFragment extends BaseRoomFragment { - if (userInfo.isFirstCharge()) { - gameBinding.ivFirstChargeEnter.setVisibility(View.VISIBLE); - } - }); + if (!GoldBoxHelper.needIntegrateBoxEntrance()) { + UserModel.get().getCurrentUserInfo() + .compose(bindToLifecycle()) + .subscribe(userInfo -> { + if (userInfo.isFirstCharge()) { + gameBinding.ivFirstChargeEnter.setVisibility(View.VISIBLE); + } + }); + } + } @Override @@ -803,30 +806,37 @@ public class HomePartyRoomFragment extends BaseRoomFragment { - if (hide != null && !hide) { - if (AvRoomDataManager.get().isCpRoom()) { - gameBinding.ivTreasureBoxCp.setVisibility(View.VISIBLE); - gameBinding.ivTreasureBox.setVisibility(View.GONE); + + if (!GoldBoxHelper.needIntegrateBoxEntrance()) { + GoldBoxHelper.isHideBox().subscribe( + hide -> { + 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.VISIBLE); - - GlideApp.with(BasicConfig.INSTANCE.getAppContext()) - .load(GoldBoxHelper.getBoxIcon()) - .error(R.drawable.icon_room_treasure_box) - .into(gameBinding.ivTreasureBox); + gameBinding.ivTreasureBox.setVisibility(View.GONE); } - } else { + }, + throwable -> { 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(); } 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 ee0130e03..363f9ab5f 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 @@ -11,10 +11,12 @@ import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum; 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; @@ -64,7 +66,7 @@ public class HomePartyPresenter extends BaseRoomPresenter { return; } if (!isInviteUpMic) { - if (AvRoomDataManager.get().haveStartDragon) { + if (AvRoomDataManager.get().haveStartDragon) { if (getMvpView() != null) { getMvpView().onDragonBarChangeMic(micPosition, uId, isInviteUpMic, roomInfo); } @@ -299,7 +301,33 @@ public class HomePartyPresenter extends BaseRoomPresenter { mAvRoomModel.getRoomBanner() .compose(bindToLifecycle()) .subscribe(bannerInfos -> { - getMvpView().onShowBanner(bannerInfos); + if (GoldBoxHelper.needIntegrateBoxEntrance()) { + final boolean firstCharge = UserUtils.getUserInfo().isFirstCharge(); + 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 { + getMvpView().onShowBanner(bannerInfos); + } }); } } diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.java index 861d5567c..052e9b113 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomActAdapter.java @@ -10,6 +10,7 @@ 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.ui.utils.ImageLoadUtils; import com.yizhuan.erban.ui.widget.rollviewpager.adapter.StaticPagerAdapter; @@ -38,7 +39,6 @@ public class RoomActAdapter extends StaticPagerAdapter { View view = LayoutInflater.from(mContext).inflate(R.layout.item_room_act, container, false); ImageView ivCover = view.findViewById(R.id.iv_cover); BannerInfo bannerInfo = data.get(position); - String url = bannerInfo.getSkipUri(); String actId = String.valueOf(bannerInfo.getBannerId()); ivCover.setScaleType(ImageView.ScaleType.CENTER_CROP); if (bannerInfo.isFirstCharge()) { @@ -48,41 +48,41 @@ public class RoomActAdapter extends StaticPagerAdapter { .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.getBannerPic(), ivCover, R.drawable.default_cover); - } ivCover.setOnClickListener(v -> { if (bannerInfo.isFirstCharge()) { FirstChargeDialog.start(mContext); } else if (bannerInfo.isBox()) { GoldBoxHelper.handleBoxClick(mContext); - } - if (TextUtils.isEmpty(url)) return; - - StatisticManager.Instance().onEvent(StatisticsProtocol.mp_room_activity, "普通房活动点击"); - - AvRoomModel.get().activityClickLog("2", actId).subscribe(); - - if (!TextUtils.isEmpty(actId) && "19".equals(actId)) { - StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_ROOM_RECOMMEND_CLICK, "我要上推荐"); - } - if (bannerInfo.getSkipType() == 3 && bannerInfo.getShowType() != 1) { - if (listener != null) { - listener.onWebClick(bannerInfo.getSkipUri()); - } + } else if (bannerInfo.isRadish()) { + PullRadishActivity.start(mContext); } else { - CommonJumpHelper.bannerJump(mContext, bannerInfo); - } - //新埋点 - String actName = bannerInfo.getBannerName(); - if (actName == null) { - actName = ""; - } + StatisticManager.Instance().onEvent(StatisticsProtocol.mp_room_activity, "普通房活动点击"); + AvRoomModel.get().activityClickLog("2", actId).subscribe(); + if (!TextUtils.isEmpty(actId) && "19".equals(actId)) { + StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_ROOM_RECOMMEND_CLICK, "我要上推荐"); + } + if (bannerInfo.getSkipType() == 3 && bannerInfo.getShowType() != 1) { + if (listener != null) { + listener.onWebClick(bannerInfo.getSkipUri()); + } + } else { + CommonJumpHelper.bannerJump(mContext, bannerInfo); + } + //新埋点 + String actName = bannerInfo.getBannerName(); + if (actName == null) { + actName = ""; + } - StatisticManager.Instance().onEvent( - StatisticsProtocol.EVENT_ROOM_ACTIVITY_ENTRANCE_B, - "房间右下角活动入口-区分活动:" + actName); + StatisticManager.Instance().onEvent( + StatisticsProtocol.EVENT_ROOM_ACTIVITY_ENTRANCE_B, + "房间右下角活动入口-区分活动:" + actName); + } }); return view; } diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java index e1f44e21a..ad549b148 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java @@ -5,10 +5,12 @@ import android.content.Context; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentActivity; +import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.yizhuan.erban.treasure_box.activity.TreasureBoxActivity; import com.yizhuan.erban.treasure_box.activity.TreasureBoxHonourActivity; import com.yizhuan.erban.treasure_box.fragment.ChooseTreasureBoxDialogFragment; import com.yizhuan.xchat_android_core.initial.InitialModel; +import com.yizhuan.xchat_android_core.initial.bean.InitInfo; import com.yizhuan.xchat_android_core.level.UserLevelVo; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel; @@ -87,4 +89,21 @@ public class GoldBoxHelper { return AvRoomDataManager.get().mBoxSwitchVo.getDiamondBoxOpenTime(); } + public static boolean isShowRadish() { + InitInfo initInfo = InitialModel.get().getCacheInitInfo(); + UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); + if (initInfo == null || userInfo == null) return false; + return userInfo.getUserLevelVo().getExperLevelSeq() >= initInfo.getLinearlyPoolOpenLevel(); + } + + /** + * 屏幕宽高比小于2的机型房间活动入口和开箱入口整合,个播房不需要整合 + * + * @return + */ + + public static boolean needIntegrateBoxEntrance() { + return !AvRoomDataManager.get().isSingleRoom() && ScreenUtil.screenHeight / ScreenUtil.screenWidth < 2; + } + } diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/BannerInfo.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/BannerInfo.java index deac71121..ed3d1fce5 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/BannerInfo.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/BannerInfo.java @@ -58,6 +58,7 @@ public class BannerInfo implements Parcelable, Serializable { private boolean isFirstCharge; private boolean isBox; + private boolean isRadish; public BannerInfo(){