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 dad7ccd18..7a7c8ab8d 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 @@ -54,7 +54,6 @@ 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.dialog.OpenNobleDialog import com.yizhuan.erban.ui.widget.dynamicface.DynamicFaceDialog import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView import com.yizhuan.erban.ui.widget.rollviewpager.Util @@ -66,10 +65,8 @@ import com.yizhuan.xchat_android_core.Constants 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.bean.response.ServiceResult import com.yizhuan.xchat_android_core.gift.GiftModel import com.yizhuan.xchat_android_core.gift.bean.GiftInfo -import com.yizhuan.xchat_android_core.gift.bean.GiftMultiReceiverInfo import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.im.custom.bean.RoomFollowOwnerAttachment import com.yizhuan.xchat_android_core.im.custom.bean.RoomFollowOwnerAttachment2 @@ -78,17 +75,13 @@ import com.yizhuan.xchat_android_core.manager.AudioEngineManager import com.yizhuan.xchat_android_core.manager.AvRoomDataManager import com.yizhuan.xchat_android_core.manager.IMNetEaseManager import com.yizhuan.xchat_android_core.manager.RoomEvent -import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel import com.yizhuan.xchat_android_core.mentoring_relationship.event.MentoringStopCountingEvent -import com.yizhuan.xchat_android_core.music.model.PlayerModel 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.RoomInfo import com.yizhuan.xchat_android_core.room.event.RoomClearScreenEvent -import com.yizhuan.xchat_android_core.room.face.FaceInfo import com.yizhuan.xchat_android_core.room.game.GameStatus import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg -import com.yizhuan.xchat_android_core.room.model.MicQueueModel import com.yizhuan.xchat_android_core.room.queue.bean.MicMemberInfo import com.yizhuan.xchat_android_core.share.bean.SessionType import com.yizhuan.xchat_android_core.statistic.StatisticManager @@ -99,13 +92,13 @@ import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil import com.yizhuan.xchat_android_core.user.UserModel import com.yizhuan.xchat_android_core.user.bean.BaseInfo import com.yizhuan.xchat_android_core.user.bean.UserInfo +import com.yizhuan.xchat_android_core.utils.net.VipLevelNotEnoughException import com.yizhuan.xchat_android_library.net.rxnet.utils.RxNetWorkUtils import com.yizhuan.xchat_android_library.rxbus.RxBus import com.yizhuan.xchat_android_library.utils.* import com.yizhuan.xchat_android_library.utils.config.BasicConfig import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable -import io.reactivex.functions.BiConsumer import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -659,22 +652,22 @@ open class BaseRoomFragment?> : for (i in micMemberInfos.indices) { targetUids.add(micMemberInfos[i].account.toLong()) } - val canUseNobleGiftOrNot = GiftModel.get().canUseNobleGiftOrNot(giftInfo) - if (canUseNobleGiftOrNot) { - GiftModel.get() - .sendRoomGift(giftInfo.giftId, targetUids, number, msg, isKnap, isWholdMic) - .compose(bindUntilEvent(FragmentEvent.DESTROY)) - .subscribe { throwable, _ -> - if (throwable != null) { - callback.onFail() - } else { - callback.onSuccess() - } + GiftModel.get() + .sendRoomGift(giftInfo.giftId, targetUids, number, msg, isKnap, isWholdMic) + .compose(bindUntilEvent(FragmentEvent.DESTROY)) + .doOnError { + if (it is VipLevelNotEnoughException) { + dialogManager.showOkDialog("尚未达到赠送${giftInfo.giftName}所需贵族等级,所需贵族等级:${giftInfo.giftVipInfo?.vipName}") } - } else { - dialogManager.showOkDialog("尚未达到赠送${giftInfo.giftName}所需贵族等级,所需贵族等级:${giftInfo.giftVipInfo?.vipName}") - callback.onFail() - } + } + .subscribe { throwable, _ -> + if (throwable != null) { + callback.onFail() + } else { + callback.onSuccess() + } + } + if (AvRoomDataManager.get().isCpRoom) { StatisticManager.Instance() .onEvent(StatisticsProtocol.Event.roomcp_gift_open_click, "礼物面板按钮") diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/actions/GiftAction.java b/app/src/main/java/com/yizhuan/erban/ui/im/actions/GiftAction.java index 599399dd2..45d8db467 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/im/actions/GiftAction.java +++ b/app/src/main/java/com/yizhuan/erban/ui/im/actions/GiftAction.java @@ -7,7 +7,6 @@ import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; import com.yizhuan.erban.R; import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.ui.widget.GiftDialog; -import com.yizhuan.erban.ui.widget.dialog.OpenNobleDialog; import com.yizhuan.xchat_android_core.gift.GiftModel; import com.yizhuan.xchat_android_core.gift.bean.GiftInfo; import com.yizhuan.xchat_android_core.gift.toolbox.GiftToolbox; @@ -18,13 +17,11 @@ import com.yizhuan.xchat_android_core.pay.PayModel; import com.yizhuan.xchat_android_core.room.queue.bean.MicMemberInfo; import com.yizhuan.xchat_android_core.statistic.StatisticManager; import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; -import com.yizhuan.xchat_android_core.user.UserModel; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; import com.yizhuan.xchat_android_core.utils.net.BeanObserver; +import com.yizhuan.xchat_android_core.utils.net.VipLevelNotEnoughException; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import java.util.ArrayList; -import java.util.List; /** * Created by xiaoyu @@ -58,31 +55,29 @@ public class GiftAction extends BaseAction implements GiftDialog.OnGiftDialogBtn @Override public void onSendGiftBtnClick(GiftInfo giftInfo, ArrayList micMemberInfos, int number, String msg, boolean isknap, boolean isWholeMic, GiftDialog.SenGiftCallback callback) { if (giftInfo == null) return; - boolean canUseNobleGiftOrNot = GiftModel.get().canUseNobleGiftOrNot(giftInfo); - if (canUseNobleGiftOrNot) { - GiftModel.get().sendPersonalGift(giftInfo.getGiftId(), micMemberInfos.get(0).getAccount(), number, msg, isknap) - .doOnError(throwable -> { - if (callback != null) { - callback.onFail(); - } - }) - .flatMap(serviceResult -> GiftToolbox.sendGiftPrivateChatMessage(serviceResult.getData())) - .subscribe(imMessage -> { - // 手动更新送礼物的消息 - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - if (callback != null) { - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_PRIVATECHAT_SENDGIFT, - "私聊_送礼物"); - callback.onSuccess(); - } - }); - } else { - new DialogManager(getActivity()).showOkDialog("尚未达到赠送" + - giftInfo.getGiftName() + - "所需贵族等级,所需贵族等级:" + - giftInfo.getGiftVipInfo().getVipName()); - callback.onFail(); - } + GiftModel.get().sendPersonalGift(giftInfo.getGiftId(), micMemberInfos.get(0).getAccount(), number, msg, isknap) + .doOnError(throwable -> { + if (callback != null) { + callback.onFail(); + } + if (throwable instanceof VipLevelNotEnoughException) { + new DialogManager(getActivity()).showOkDialog("尚未达到赠送" + + giftInfo.getGiftName() + + "所需贵族等级,所需贵族等级:" + + giftInfo.getGiftVipInfo().getVipName()); + } + }) + .flatMap(serviceResult -> GiftToolbox.sendGiftPrivateChatMessage(serviceResult.getData())) + .subscribe(imMessage -> { + // 手动更新送礼物的消息 + MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); + if (callback != null) { + StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_PRIVATECHAT_SENDGIFT, + "私聊_送礼物"); + callback.onSuccess(); + } + }); + } @Override diff --git a/app/src/main/res/layout/list_item_dialog_gift.xml b/app/src/main/res/layout/list_item_dialog_gift.xml index 62a7d4974..cc5c859af 100644 --- a/app/src/main/res/layout/list_item_dialog_gift.xml +++ b/app/src/main/res/layout/list_item_dialog_gift.xml @@ -9,6 +9,7 @@ type="com.yizhuan.erban.ui.gift.dialog.GiftInfoVm" /> + + tools:layout_width="100dp"> @@ -105,6 +107,17 @@ android:src="@drawable/icon_gift_effect" android:visibility="@{item.isShowEffect ? View.VISIBLE : View.GONE}" tools:visibility="visible" /> + + + -