贵族礼物增加贵族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 {
val userInfo = UserModel.get().cacheLoginUserInfo
val currentLevel =
if (userInfo == null) 0 else if (userInfo.nobleInfo == null) 0 else userInfo.nobleInfo.level
OpenNobleDialog(mContext, currentLevel, giftInfo.level, "送该礼物").show()
dialogManager.showOkDialog("尚未达到赠送${giftInfo.giftName}所需贵族等级,所需贵族等级:${giftInfo.giftVipInfo?.vipName}")
callback.onFail()
}
if (AvRoomDataManager.get().isCpRoom) {

View File

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

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

View File

@@ -9,6 +9,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
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.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_centerVertical="true"
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:textSize="@dimen/sp_14" />

View File

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

View File

@@ -86,7 +86,7 @@
<string name="bill_title">账单</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>

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

View File

@@ -81,5 +81,6 @@ public class GiftInfo implements Serializable {
private int vipLevel;
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(
val vipIcon: String = "",
val vipLevel: String = "",
val vipLevel: Int = 0,
val friendNickColour: String = "",
) : Serializable