feat:恢复房间banner入口

This commit is contained in:
Max
2023-12-13 21:01:36 +08:00
parent 5d9ff675a7
commit 3937aac9d9
9 changed files with 198 additions and 0 deletions

View File

@@ -464,6 +464,65 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
}
}
fun initRoomAct(
rollPagerView: RollPagerView,
dialogInfo: List<BannerInfo>,
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()

View File

@@ -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<IHomePartyView, Home
updateQueuingMicBtn();
updatePkScoreBoard();
initRoomPkOrder(AvRoomDataManager.get().showPkBeginTime, AvRoomDataManager.get().pkBeginTime);
getMvpPresenter().getBannerList();
}
@Override
@@ -954,6 +956,12 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
return pkMicQueueDialog != null && pkMicQueueDialog.isShowing();
}
@Override
public void onShowBanner(List<BannerInfo> bannerInfos) {
initRoomAct(gameBinding.activityImg, bannerInfos, 11f);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onFirstRechargeEvent(FirstChargeEvent event) {
gameBinding.ivFirstChargeEnter.setVisibility(View.GONE);

View File

@@ -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<ISingleRoomView?, SingleRoomPresente
@SuppressLint("CheckResult")
override fun initiate() {
super.initiate()
mvpPresenter?.getBannerList()
// initSpeedyMessage(gameBinding.flSpeedyMessage)
fansTeamViewModel.loadFansTeamInitInfo()
@@ -239,6 +241,10 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
}
}
override fun onShowBanner(dialogInfos: List<BannerInfo>) {
initRoomAct(gameBinding.activityImg, dialogInfos, 10f)
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onFirstRechargeEvent(event: FirstChargeEvent) {
gameBinding.ivFirstChargeEnter.visibility = View.GONE

View File

@@ -297,4 +297,50 @@ public class HomePartyPresenter extends BaseRoomPresenter<IHomePartyView> {
.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);
}
});
}
}

View File

@@ -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;
/**
* <p> </p>
@@ -11,4 +16,50 @@ import com.chwl.app.avroom.view.ISingleRoomView;
*/
public class SingleRoomPresenter extends BaseRoomPresenter<ISingleRoomView> {
@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);
}
});
}
}

View File

@@ -21,4 +21,5 @@ public interface IHomePartyView extends IBaseRoomView {
*/
void onGiftValueChangeMic(int micPosition, String uId, boolean isInviteUpMic, RoomInfo roomInfo);
void onShowBanner(List<BannerInfo> bannerInfos);
}

View File

@@ -1,6 +1,10 @@
package com.chwl.app.avroom.view;
import com.chwl.core.home.bean.BannerInfo;
import java.util.List;
/**
* <p> 轰趴房View层 </p>
*
@@ -8,5 +12,6 @@ package com.chwl.app.avroom.view;
* @date 2017/12/8
*/
public interface ISingleRoomView extends IBaseRoomView {
void onShowBanner(List<BannerInfo> dialogInfos);
}

View File

@@ -164,6 +164,16 @@
app:shaderMode="rightToLeft"
app:shaderStartColor="#FA4771" />
<com.chwl.app.ui.widget.rollviewpager.RollPagerView
android:id="@+id/activity_img"
android:layout_width="65dp"
android:layout_height="70dp"
android:layout_below="@id/micro_view"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="16dp"
app:rollviewpager_hint_gravity="center" />
<ImageView
android:id="@+id/iv_first_charge_enter"
android:layout_width="65dp"

View File

@@ -220,6 +220,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/barrier_micro" />
<com.chwl.app.ui.widget.rollviewpager.RollPagerView
android:id="@+id/activity_img"
android:layout_width="65dp"
android:layout_height="75dp"
android:layout_below="@id/barrier_micro"
android:layout_marginTop="20dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/barrier_micro"
app:rollviewpager_hint_gravity="center" />
<RelativeLayout
android:id="@+id/input_layout"
android:layout_width="0dp"