1.送礼错误处理流程修改 2.贵族礼物标识和礼物tag重叠问题处理

This commit is contained in:
huangjian
2022-01-12 11:59:18 +08:00
parent 45ac600470
commit 9222701dd1
5 changed files with 77 additions and 80 deletions

View File

@@ -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,11 +652,14 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
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))
.doOnError {
if (it is VipLevelNotEnoughException) {
dialogManager.showOkDialog("尚未达到赠送${giftInfo.giftName}所需贵族等级,所需贵族等级:${giftInfo.giftVipInfo?.vipName}")
}
}
.subscribe { throwable, _ ->
if (throwable != null) {
callback.onFail()
@@ -671,10 +667,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
callback.onSuccess()
}
}
} else {
dialogManager.showOkDialog("尚未达到赠送${giftInfo.giftName}所需贵族等级,所需贵族等级:${giftInfo.giftVipInfo?.vipName}")
callback.onFail()
}
if (AvRoomDataManager.get().isCpRoom) {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.Event.roomcp_gift_open_click, "礼物面板按钮")

View File

@@ -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,13 +55,17 @@ public class GiftAction extends BaseAction implements GiftDialog.OnGiftDialogBtn
@Override
public void onSendGiftBtnClick(GiftInfo giftInfo, ArrayList<MicMemberInfo> 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();
}
if (throwable instanceof VipLevelNotEnoughException) {
new DialogManager(getActivity()).showOkDialog("尚未达到赠送" +
giftInfo.getGiftName() +
"所需贵族等级,所需贵族等级:" +
giftInfo.getGiftVipInfo().getVipName());
}
})
.flatMap(serviceResult -> GiftToolbox.sendGiftPrivateChatMessage(serviceResult.getData()))
.subscribe(imMessage -> {
@@ -76,13 +77,7 @@ public class GiftAction extends BaseAction implements GiftDialog.OnGiftDialogBtn
callback.onSuccess();
}
});
} else {
new DialogManager(getActivity()).showOkDialog("尚未达到赠送" +
giftInfo.getGiftName() +
"所需贵族等级,所需贵族等级:" +
giftInfo.getGiftVipInfo().getVipName());
callback.onFail();
}
}
@Override

View File

@@ -9,6 +9,7 @@
type="com.yizhuan.erban.ui.gift.dialog.GiftInfoVm" />
<import type="android.view.View" />
<import type="android.text.TextUtils" />
</data>
<RelativeLayout
@@ -16,7 +17,7 @@
android:layout_width="match_parent"
android:layout_height="105dp"
android:gravity="center"
tools:layout_width="75dp">
tools:layout_width="100dp">
<View
android:id="@+id/view_room_gift_select"
@@ -67,6 +68,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="center"
android:layout_marginTop="4dp"
android:orientation="horizontal">
@@ -105,6 +107,17 @@
android:src="@drawable/icon_gift_effect"
android:visibility="@{item.isShowEffect ? View.VISIBLE : View.GONE}"
tools:visibility="visible" />
<ImageView
android:id="@+id/iv_noble_tag"
nomalUrl="@{item.vipIcon}"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_marginEnd="@dimen/dp_3"
android:adjustViewBounds="true"
android:visibility="@{TextUtils.isEmpty(item.vipIcon) ? View.GONE : View.VISIBLE}"
tools:src="@drawable/icon_gift_effect" />
</LinearLayout>
<TextView
@@ -120,16 +133,6 @@
android:textSize="@dimen/sp_9"
android:visibility="@{item.isKnap ? View.VISIBLE : View.GONE}" />
<ImageView
android:id="@+id/iv_noble_tag"
nomalUrl="@{item.vipIcon}"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_3"
android:layout_marginEnd="@dimen/dp_3"
android:adjustViewBounds="true"
tools:src="@drawable/ic_tag_1" />
<ImageView
android:id="@+id/iv_vip_locked"

View File

@@ -1,15 +1,15 @@
package com.yizhuan.xchat_android_core.gift;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_ALL_MIC_LUCKY_GIFT;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_LUCKY_GIFT;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_MULTI_LUCK_GIFT;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import androidx.annotation.Nullable;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
@@ -17,7 +17,6 @@ import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.base.BaseModel;
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo;
import com.yizhuan.xchat_android_core.gift.bean.GiftList;
import com.yizhuan.xchat_android_core.gift.bean.GiftListInfo;
import com.yizhuan.xchat_android_core.gift.bean.GiftMultiReceiverInfo;
import com.yizhuan.xchat_android_core.gift.bean.GiftSendType;
@@ -38,11 +37,8 @@ import com.yizhuan.xchat_android_core.initial.InitialModel;
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.noble.NobleInfo;
import com.yizhuan.xchat_android_core.pay.PayModel;
import com.yizhuan.xchat_android_core.radish.RadishModel;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.face.IFaceCore;
import com.yizhuan.xchat_android_core.room.giftvalue.bean.GiftValueCommonUpdate;
import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg;
import com.yizhuan.xchat_android_core.user.UserModel;
@@ -50,6 +46,7 @@ import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption;
import com.yizhuan.xchat_android_core.utils.net.RadishNotEnoughException;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_core.utils.net.VipLevelNotEnoughException;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
import com.yizhuan.xchat_android_library.utils.ListUtils;
@@ -70,12 +67,6 @@ import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_ALL_MIC_LUCKY_GIFT;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_LUCKY_GIFT;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_MULTI_LUCK_GIFT;
import androidx.annotation.Nullable;
/**
* Created by yudi
@@ -402,7 +393,10 @@ public class GiftModel extends BaseModel implements IGiftModel {
if (serviceResult.getCode() == BalanceNotEnoughExeption.code) {
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent().setEvent(RoomEvent.RECHARGE));
return Single.error(new BalanceNotEnoughExeption(serviceResult.getMessage()));
} else if (RadishNotEnoughException.code == serviceResult.getCode()) {
}
else if (serviceResult.getCode() == VipLevelNotEnoughException.code) {
return Single.error(new VipLevelNotEnoughException(serviceResult.getMessage()));
}else if (RadishNotEnoughException.code == serviceResult.getCode()) {
//萝卜不足
IMNetEaseManager.get().getChatRoomEventObservable().onNext(
new RoomEvent().setEvent(RoomEvent.RADISH_NOT_ENOUGH));

View File

@@ -0,0 +1,12 @@
package com.yizhuan.xchat_android_core.utils.net;
/**
* Created by huangmeng1 on 2018/5/14.
*/
public class VipLevelNotEnoughException extends Exception {
public final static int code = 8535;//VIP等级不足
public VipLevelNotEnoughException(String message) {
super(message);
}
}