贵族礼物增加贵族logo和锁

This commit is contained in:
huangjian
2021-12-31 16:13:57 +08:00
parent 9dd17f3440
commit 0c9bf6b764
12 changed files with 84 additions and 37 deletions

View File

@@ -680,10 +680,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
} }
}) })
} else { } else {
val userInfo = UserModel.get().cacheLoginUserInfo dialogManager.showOkDialog("尚未达到赠送${giftInfo.giftName}所需贵族等级,所需贵族等级:${giftInfo.giftVipInfo?.vipName}")
val currentLevel =
if (userInfo == null) 0 else if (userInfo.nobleInfo == null) 0 else userInfo.nobleInfo.level
OpenNobleDialog(mContext, currentLevel, giftInfo.level, "送该礼物").show()
callback.onFail() callback.onFail()
} }
if (AvRoomDataManager.get().isCpRoom) { if (AvRoomDataManager.get().isCpRoom) {

View File

@@ -1,12 +1,16 @@
package com.yizhuan.erban.ui.gift.dialog; package com.yizhuan.erban.ui.gift.dialog;
import android.content.Context; import android.content.Context;
import androidx.databinding.ObservableBoolean; import androidx.databinding.ObservableBoolean;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo; import com.yizhuan.xchat_android_core.gift.bean.GiftInfo;
import com.yizhuan.xchat_android_core.gift.bean.SimpleVipInfo;
import com.yizhuan.xchat_android_library.bindinglist.BaseItem; import com.yizhuan.xchat_android_library.bindinglist.BaseItem;
/** /**
@@ -50,10 +54,9 @@ public class GiftInfoVm extends BaseItem<GiftInfo> {
*/ */
public boolean isExclusive = false; public boolean isExclusive = false;
@Override public boolean isLocked = false;
public GiftInfo data() {
return super.data(); public String vipIcon;
}
public GiftInfoVm(Context context, GiftInfo data, boolean select, boolean isKnap) { public GiftInfoVm(Context context, GiftInfo data, boolean select, boolean isKnap) {
super(context, data); super(context, data);
@@ -66,7 +69,6 @@ public class GiftInfoVm extends BaseItem<GiftInfo> {
radishDrawable = context.getResources().getDrawable(R.drawable.icon_radish_transparent); radishDrawable = context.getResources().getDrawable(R.drawable.icon_radish_transparent);
radishDrawableSelected = context.getResources().getDrawable(R.drawable.icon_radish_transparent_selected); radishDrawableSelected = context.getResources().getDrawable(R.drawable.icon_radish_transparent_selected);
goldText.set(String.valueOf(data.getGoldPrice())); goldText.set(String.valueOf(data.getGoldPrice()));
// goldText.set(context.getResources().getString(R.string.how_much_radish, data.getGoldPrice()));
} }
this.isKnap.set(isKnap); this.isKnap.set(isKnap);
updateCount(); updateCount();
@@ -80,10 +82,18 @@ public class GiftInfoVm extends BaseItem<GiftInfo> {
R.drawable.ic_tag_6 : nobleId == 7 ? R.drawable.ic_tag_7 : 0; R.drawable.ic_tag_6 : nobleId == 7 ? R.drawable.ic_tag_7 : 0;
nobleDrawable = context.getResources().getDrawable(drawableId); nobleDrawable = context.getResources().getDrawable(drawableId);
} }
isShowNew = data.isHasLatest() && nobleId == 0; isShowNew = data.isHasLatest();
isShowLimit = data.isHasTimeLimit() && nobleId == 0; isShowLimit = data.isHasTimeLimit();
isShowEffect = data.isHasEffect() && nobleId == 0; isShowEffect = data.isHasEffect();
isExclusive = data.isRoomExclude() && nobleId == 0; isExclusive = data.isRoomExclude();
SimpleVipInfo vipInfo = data.getGiftVipInfo();
isLocked = vipInfo != null && VipHelper.getMyVipLevel() < vipInfo.getVipLevel();
vipIcon = vipInfo == null ? "" : vipInfo.getVipIcon();
}
@Override
public GiftInfo data() {
return super.data();
} }
@Override @Override

View File

@@ -5,6 +5,7 @@ import android.annotation.SuppressLint;
import com.netease.nim.uikit.business.session.actions.BaseAction; import com.netease.nim.uikit.business.session.actions.BaseAction;
import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper;
import com.yizhuan.erban.R; 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.GiftDialog;
import com.yizhuan.erban.ui.widget.dialog.OpenNobleDialog; import com.yizhuan.erban.ui.widget.dialog.OpenNobleDialog;
import com.yizhuan.xchat_android_core.gift.GiftModel; import com.yizhuan.xchat_android_core.gift.GiftModel;
@@ -33,12 +34,12 @@ import java.util.List;
public class GiftAction extends BaseAction implements GiftDialog.OnGiftDialogBtnClickListener { public class GiftAction extends BaseAction implements GiftDialog.OnGiftDialogBtnClickListener {
transient private GiftDialog giftDialog;
public GiftAction() { public GiftAction() {
super(R.drawable.icon_gift_action, R.string.gift_action); super(R.drawable.icon_gift_action, R.string.gift_action);
} }
transient private GiftDialog giftDialog;
@Override @Override
public void onClick() { public void onClick() {
if (giftDialog == null) { if (giftDialog == null) {
@@ -76,9 +77,10 @@ public class GiftAction extends BaseAction implements GiftDialog.OnGiftDialogBtn
} }
}); });
} else { } else {
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); new DialogManager(getActivity()).showOkDialog("尚未达到赠送" +
int currentLevel = userInfo == null ? 0 : userInfo.getNobleInfo() == null ? 0 : userInfo.getNobleInfo().getLevel(); giftInfo.getGiftName() +
new OpenNobleDialog(getActivity(), currentLevel, giftInfo.getLevel(), "送该礼物").show(); "所需贵族等级,所需贵族等级:" +
giftInfo.getGiftVipInfo().getVipName());
callback.onFail(); callback.onFail();
} }
} }

View File

@@ -9,6 +9,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.yizhuan.erban.ui.utils.ImageLoadUtils; import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.TextUtils; import com.yizhuan.xchat_android_core.utils.TextUtils;
import com.yizhuan.xchat_android_core.vip.UserVipInfo; import com.yizhuan.xchat_android_core.vip.UserVipInfo;
@@ -35,4 +37,10 @@ public class VipHelper {
} }
} }
public static int getMyVipLevel() {
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
if (userInfo == null) return 0;
return userInfo.getUserVipInfoVO() == null ? 0 : userInfo.getUserVipInfoVO().getVipLevel();
}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -272,7 +272,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:text="0钻石" android:drawableEnd="@drawable/ic_gift_diamond"
android:drawablePadding="3dp"
android:gravity="center"
android:includeFontPadding="false"
android:text="0"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />

View File

@@ -32,7 +32,8 @@
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_18" /> android:layout_marginTop="@dimen/dp_18"
android:alpha="@{item.isLocked?0.5f:1f}" />
<TextView <TextView
android:id="@+id/gift_name" android:id="@+id/gift_name"
@@ -42,10 +43,10 @@
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:text="@{item.data().giftName}" android:text="@{item.data().giftName}"
tools:text="123"
android:textColor="@{item.isSelect ? @color/color_ffb606 : @color/white}" android:textColor="@{item.isSelect ? @color/color_ffb606 : @color/white}"
android:textSize="@dimen/dp_10" android:textSize="@dimen/dp_10"
tools:ignore="SpUsage" /> tools:ignore="SpUsage"
tools:text="123" />
<TextView <TextView
android:id="@+id/gift_gold" android:id="@+id/gift_gold"
@@ -121,12 +122,25 @@
<ImageView <ImageView
android:id="@+id/iv_noble_tag" 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"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/dp_5" android:layout_alignParentBottom="true"
android:layout_marginEnd="@dimen/dp_5" android:layout_marginEnd="2dp"
android:src="@{item.nobleDrawable}" android:layout_marginBottom="2dp"
tools:src="@drawable/ic_tag_1" /> android:src="@drawable/ic_vip_locked"
android:visibility="@{item.isLocked ? View.VISIBLE : View.GONE}" />
</RelativeLayout> </RelativeLayout>
</layout> </layout>

View File

@@ -86,7 +86,7 @@
<string name="bill_title">账单</string> <string name="bill_title">账单</string>
<string name="bill_gift_gold_num">账户余额: %.0f钻石</string> <string name="bill_gift_gold_num">账户余额: %.0f钻石</string>
<string name="gold_num_text">%.0f钻石</string> <string name="gold_num_text">%.0f</string>
<string name="red_packet_withdraw">红包提现</string> <string name="red_packet_withdraw">红包提现</string>

View File

@@ -25,6 +25,7 @@ import com.yizhuan.xchat_android_core.gift.bean.GiftSource;
import com.yizhuan.xchat_android_core.gift.bean.GiftType; import com.yizhuan.xchat_android_core.gift.bean.GiftType;
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagGifts; import com.yizhuan.xchat_android_core.gift.bean.LuckyBagGifts;
import com.yizhuan.xchat_android_core.gift.bean.MultiGiftReceiveInfo; import com.yizhuan.xchat_android_core.gift.bean.MultiGiftReceiveInfo;
import com.yizhuan.xchat_android_core.gift.bean.SimpleVipInfo;
import com.yizhuan.xchat_android_core.gift.event.UpdateKnapEvent; import com.yizhuan.xchat_android_core.gift.event.UpdateKnapEvent;
import com.yizhuan.xchat_android_core.gift.exception.GiftOutOfDateException; import com.yizhuan.xchat_android_core.gift.exception.GiftOutOfDateException;
import com.yizhuan.xchat_android_core.gift.toolbox.GiftToolbox; import com.yizhuan.xchat_android_core.gift.toolbox.GiftToolbox;
@@ -49,6 +50,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.BalanceNotEnoughExeption;
import com.yizhuan.xchat_android_core.utils.net.RadishNotEnoughException; 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.RxHelper;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import com.yizhuan.xchat_android_library.net.rxnet.RxNet; import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
import com.yizhuan.xchat_android_library.utils.ListUtils; import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
@@ -500,17 +502,16 @@ public class GiftModel extends BaseModel implements IGiftModel {
@Override @Override
public boolean canUseNobleGiftOrNot(GiftInfo giftInfo) { public boolean canUseNobleGiftOrNot(GiftInfo giftInfo) {
if (giftInfo == null) return false; if (giftInfo == null) return false;
boolean nobleFace = giftInfo.isNobleGift(); SimpleVipInfo simpleVipInfo = giftInfo.getGiftVipInfo();
if (!nobleFace) return true; if (simpleVipInfo == null || simpleVipInfo.getVipLevel() == 0) return true;
long currentUid = AuthModel.get().getCurrentUid();
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
// 如果没有贵族信息则不能发 if (userInfo == null) {
if (currentUid == 0 || userInfo == null || userInfo.getNobleInfo() == null) {
return false; return false;
} }
NobleInfo nobleInfo = userInfo.getNobleInfo(); UserVipInfo userVipInfo = userInfo.getUserVipInfoVO();
int level = nobleInfo.getLevel(); int level = userVipInfo == null ? 0 : userVipInfo.getVipLevel();
return level >= giftInfo.getLevel(); return level >= simpleVipInfo.getVipLevel();
} }
@Override @Override

View File

@@ -81,5 +81,6 @@ public class GiftInfo implements Serializable {
private int vipLevel; private int vipLevel;
private String vipIcon; private String vipIcon;
private SimpleVipInfo giftVipInfo;
} }

View File

@@ -0,0 +1,10 @@
package com.yizhuan.xchat_android_core.gift.bean;
import lombok.Data;
@Data
public class SimpleVipInfo {
private String vipIcon;
private String vipName;
private int vipLevel;
}

View File

@@ -4,6 +4,6 @@ import java.io.Serializable
data class UserVipInfo( data class UserVipInfo(
val vipIcon: String = "", val vipIcon: String = "",
val vipLevel: String = "", val vipLevel: Int = 0,
val friendNickColour: String = "", val friendNickColour: String = "",
) : Serializable ) : Serializable