diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt index ded4be529..4e4edb8fe 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt @@ -464,6 +464,65 @@ 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() diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java index 44d68bb4e..8967ae46a 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java @@ -11,6 +11,7 @@ import androidx.databinding.DataBindingUtil; import com.chwl.app.avroom.rank.RoomRankWidget; import com.chwl.app.music.widget.MusicPlayerView; import com.chwl.app.ui.webview.DialogWebViewActivity; +import com.chwl.core.home.bean.BannerInfo; import com.netease.nim.uikit.common.util.log.LogUtil; import com.trello.rxlifecycle3.android.FragmentEvent; import com.chwl.app.R; @@ -150,6 +151,7 @@ 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); diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/SingleRoomFragment.kt b/app/src/main/java/com/chwl/app/avroom/fragment/SingleRoomFragment.kt index 105e72978..d279e54d3 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/SingleRoomFragment.kt +++ b/app/src/main/java/com/chwl/app/avroom/fragment/SingleRoomFragment.kt @@ -31,6 +31,7 @@ import com.chwl.app.ui.webview.DialogWebViewActivity import com.chwl.core.UriProvider import com.chwl.core.auth.AuthModel import com.chwl.core.fansteam.bean.FansTeamInitInfo +import com.chwl.core.home.bean.BannerInfo import com.chwl.core.im.custom.bean.FansTeamMsgAttachment import com.chwl.core.im.custom.bean.RequestUpmicAttachment import com.chwl.core.im.custom.bean.RoomPKAttachment @@ -83,6 +84,7 @@ class SingleRoomFragment : BaseRoomFragment) { + initRoomAct(gameBinding.activityImg, dialogInfos, 10f) + } + @Subscribe(threadMode = ThreadMode.MAIN) fun onFirstRechargeEvent(event: FirstChargeEvent) { gameBinding.ivFirstChargeEnter.visibility = View.GONE diff --git a/app/src/main/java/com/chwl/app/avroom/presenter/HomePartyPresenter.java b/app/src/main/java/com/chwl/app/avroom/presenter/HomePartyPresenter.java index 8123f1cc7..00b3584a7 100644 --- a/app/src/main/java/com/chwl/app/avroom/presenter/HomePartyPresenter.java +++ b/app/src/main/java/com/chwl/app/avroom/presenter/HomePartyPresenter.java @@ -297,4 +297,50 @@ 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); + } + getMvpView().onShowBanner(bannerInfos); +// 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/chwl/app/avroom/presenter/SingleRoomPresenter.java b/app/src/main/java/com/chwl/app/avroom/presenter/SingleRoomPresenter.java index e6995ec81..b9e26dbd8 100644 --- a/app/src/main/java/com/chwl/app/avroom/presenter/SingleRoomPresenter.java +++ b/app/src/main/java/com/chwl/app/avroom/presenter/SingleRoomPresenter.java @@ -1,7 +1,12 @@ package com.chwl.app.avroom.presenter; +import android.annotation.SuppressLint; + import com.chwl.app.avroom.view.ISingleRoomView; +import com.chwl.app.treasure_box.widget.GoldBoxHelper; +import com.chwl.app.utils.UserUtils; +import com.chwl.core.home.bean.BannerInfo; /** *

@@ -11,4 +16,50 @@ import com.chwl.app.avroom.view.ISingleRoomView; */ 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); + } + getMvpView().onShowBanner(bannerInfos); +// 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/chwl/app/avroom/view/IHomePartyView.java b/app/src/main/java/com/chwl/app/avroom/view/IHomePartyView.java index 0580c4352..6d92197c5 100644 --- a/app/src/main/java/com/chwl/app/avroom/view/IHomePartyView.java +++ b/app/src/main/java/com/chwl/app/avroom/view/IHomePartyView.java @@ -21,4 +21,5 @@ 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/chwl/app/avroom/view/ISingleRoomView.java b/app/src/main/java/com/chwl/app/avroom/view/ISingleRoomView.java index b4f1e93e5..9b3ef4fc2 100644 --- a/app/src/main/java/com/chwl/app/avroom/view/ISingleRoomView.java +++ b/app/src/main/java/com/chwl/app/avroom/view/ISingleRoomView.java @@ -1,6 +1,10 @@ package com.chwl.app.avroom.view; +import com.chwl.core.home.bean.BannerInfo; + +import java.util.List; + /** *

轰趴房View层

* @@ -8,5 +12,6 @@ package com.chwl.app.avroom.view; * @date 2017/12/8 */ public interface ISingleRoomView extends IBaseRoomView { + void onShowBanner(List dialogInfos); } diff --git a/app/src/module_mini_world/res/layout/fragment_av_room_game.xml b/app/src/module_mini_world/res/layout/fragment_av_room_game.xml index eaeb35cf3..75c980554 100644 --- a/app/src/module_mini_world/res/layout/fragment_av_room_game.xml +++ b/app/src/module_mini_world/res/layout/fragment_av_room_game.xml @@ -164,6 +164,16 @@ app:shaderMode="rightToLeft" app:shaderStartColor="#FA4771" /> + + + +