贵族表情增加贵族logo和锁

This commit is contained in:
huangjian
2021-12-31 17:13:46 +08:00
parent 0c9bf6b764
commit 9a39bb2b54
6 changed files with 73 additions and 32 deletions

View File

@@ -10,7 +10,10 @@ import android.widget.TextView;
import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.gift.bean.SimpleVipInfo;
import com.yizhuan.xchat_android_core.room.face.FaceInfo;
import com.yizhuan.xchat_android_core.utils.TextUtils;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
import java.io.File;
@@ -26,15 +29,15 @@ public class DynamicFaceAdapter extends BaseAdapter implements View.OnClickListe
private Context context;
private OnFaceItemClickListener onFaceItemClickListener;
public void setOnFaceItemClickListener(OnFaceItemClickListener onFaceItemClickListener) {
this.onFaceItemClickListener = onFaceItemClickListener;
}
public DynamicFaceAdapter(Context context, List<FaceInfo> faceInfoList) {
this.faceInfoList = faceInfoList;
this.context = context;
}
public void setOnFaceItemClickListener(OnFaceItemClickListener onFaceItemClickListener) {
this.onFaceItemClickListener = onFaceItemClickListener;
}
@Override
public int getCount() {
if (faceInfoList == null) {
@@ -65,6 +68,7 @@ public class DynamicFaceAdapter extends BaseAdapter implements View.OnClickListe
holder.faceName = (TextView) convertView.findViewById(R.id.face_name);
holder.container = convertView.findViewById(R.id.face_layout);
holder.ivNobleTag = convertView.findViewById(R.id.iv_noble_tag);
holder.ivVipLocked = convertView.findViewById(R.id.iv_vip_locked);
convertView.setTag(holder);
} else {
holder = (FaceViewHolder) convertView.getTag();
@@ -75,15 +79,16 @@ public class DynamicFaceAdapter extends BaseAdapter implements View.OnClickListe
File file = new File(faceInfo.getFacePath(faceInfo.getIconImageIndex()));
ImageLoadUtils.loadImage(BasicConfig.INSTANCE.getAppContext(), file, holder.faceIcon);
holder.faceName.setText(faceInfo.getCNName());
int nobleId = faceInfo.getNobleId();
if (nobleId == 0) {
SimpleVipInfo vipInfo = faceInfo.getFaceVipInfo();
boolean isLocked = vipInfo != null && VipHelper.getMyVipLevel() < vipInfo.getVipLevel();
holder.ivVipLocked.setVisibility(isLocked ? View.VISIBLE : View.GONE);
holder.faceIcon.setAlpha(isLocked ? 0.5f : 1f);
String vipIcon = vipInfo == null ? "" : vipInfo.getVipIcon();
if (TextUtils.isEmptyText(vipIcon)) {
// 普通表情
holder.ivNobleTag.setImageDrawable(null);
} else {
int drawableId = nobleId == 1 ? R.drawable.ic_tag_1 : nobleId == 2 ? R.drawable.ic_tag_2 : nobleId == 3 ?
R.drawable.ic_tag_3 : nobleId == 4 ? R.drawable.ic_tag_4 : nobleId == 5 ? R.drawable.ic_tag_5 : nobleId == 6 ?
R.drawable.ic_tag_6 : nobleId == 7 ? R.drawable.ic_tag_7 : 0;
holder.ivNobleTag.setImageResource(drawableId);
ImageLoadUtils.loadImage(context, vipIcon, holder.ivNobleTag);
}
return convertView;
@@ -106,5 +111,6 @@ public class DynamicFaceAdapter extends BaseAdapter implements View.OnClickListe
private TextView faceName;
private View container;
private ImageView ivNobleTag;
private ImageView ivVipLocked;
}
}

View File

@@ -21,6 +21,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.yizhuan.erban.R;
import com.yizhuan.erban.common.widget.dialog.DialogManager;
import com.yizhuan.erban.ui.widget.dialog.OpenNobleDialog;
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
import com.yizhuan.erban.vip.VipMainActivity;
@@ -30,6 +31,7 @@ import com.yizhuan.xchat_android_core.room.face.DynamicFaceModel;
import com.yizhuan.xchat_android_core.room.face.FaceInfo;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.LogUtils;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
@@ -118,6 +120,11 @@ public class DynamicFaceDialog extends BottomSheetDialog
}
private void updateFace(List<FaceInfo> faceInfos) {
if (faceInfos == null) {
LogUtils.d("faceInfos==null");
} else {
LogUtils.d("faceInfos.size()" + faceInfos.size());
}
List<View> pagerView = new ArrayList<>();
List<List<FaceInfo>> lists = resolveData(faceInfos);
int size = lists.size();
@@ -278,12 +285,13 @@ public class DynamicFaceDialog extends BottomSheetDialog
boolean canUseNobleFaceOrNot = DynamicFaceModel.get().canUseNobleFaceOrNot(faceInfo);
if (canUseNobleFaceOrNot) {
DynamicFaceModel.get().sendFace(faceInfo);
} else {
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
int currentLevel = userInfo == null ? 0 : userInfo.getNobleInfo() == null ? 0 : userInfo.getNobleInfo().getLevel();
new OpenNobleDialog(context, currentLevel, faceInfo.getNobleId(), "发送该表情").show();
dismiss();
} else if (faceInfo.getFaceVipInfo() != null) {
new DialogManager(context).showOkDialog("尚未达到发送" +
faceInfo.getCNName() +
"所需贵族等级,所需贵族等级:" +
faceInfo.getFaceVipInfo().getVipName());
}
dismiss();
}
}

View File

@@ -21,9 +21,10 @@
<ImageView
android:id="@+id/iv_noble_tag"
android:layout_width="22dp"
android:layout_height="11dp"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_alignParentRight="true"
android:adjustViewBounds="true"
tools:src="@drawable/ic_tag_1" />
<TextView
@@ -37,5 +38,18 @@
android:textSize="@dimen/font_small"
tools:text="表情名字"
tools:textColor="#000" />
<ImageView
android:id="@+id/iv_vip_locked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="2dp"
android:layout_marginBottom="2dp"
android:src="@drawable/ic_vip_locked"
android:visibility="gone" />
</RelativeLayout>
</LinearLayout>

View File

@@ -17,6 +17,7 @@ import com.yizhuan.xchat_android_core.base.BaseModel;
import com.yizhuan.xchat_android_core.bean.ProgressInfo;
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo;
import com.yizhuan.xchat_android_core.bean.response.RequestError;
import com.yizhuan.xchat_android_core.gift.bean.SimpleVipInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.FaceAttachment;
import com.yizhuan.xchat_android_core.initial.InitialModel;
@@ -31,6 +32,8 @@ import com.yizhuan.xchat_android_core.room.event.ReceiveFaceEvent;
import com.yizhuan.xchat_android_core.room.queue.bean.MicMemberInfo;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.LogUtils;
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.NetworkUtils;
@@ -145,7 +148,9 @@ public class DynamicFaceModel extends BaseModel implements IDynamicFaceModel {
public void init() {
String offlineEncryptString = DemoCache.readFaceList();
try {
offlineFaceList = new Gson().fromJson(DESUtils.DESAndBase64Decrypt(offlineEncryptString), FaceListInfo.class);
String faceString = DESUtils.DESAndBase64Decrypt(offlineEncryptString);
LogUtils.d(faceString);
offlineFaceList = new Gson().fromJson(faceString, FaceListInfo.class);
} catch (Exception e) {
e.printStackTrace();
}
@@ -397,22 +402,19 @@ public class DynamicFaceModel extends BaseModel implements IDynamicFaceModel {
*/
@Override
public boolean canUseNobleFaceOrNot(FaceInfo faceInfo) {
boolean nobleFace = faceInfo.isNobleFace();
if (!nobleFace) return true;
if (faceInfo == null) return false;
long currentUid = AuthModel.get().getCurrentUid();
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
// 如果没有贵族信息则不能发
if (currentUid == 0 || userInfo == null || userInfo.getNobleInfo() == null) {
/*Toast.makeText(BasicConfig.INSTANCE.getAppContext(), "开通贵族才能发贵族礼物哦!~", Toast.LENGTH_SHORT).show();*/
if (currentUid == 0 || userInfo == null) {
return false;
}
NobleInfo nobleInfo = userInfo.getNobleInfo();
int level = nobleInfo.getLevel();
if (level >= faceInfo.getNobleId()) {
return true;
}
/*Toast.makeText(BasicConfig.INSTANCE.getAppContext(), "贵族等级不够哦!~", Toast.LENGTH_SHORT).show();*/
return false;
SimpleVipInfo simpleVipInfo = faceInfo.getFaceVipInfo();
if (simpleVipInfo == null || simpleVipInfo.getVipLevel() == 0) return true;
UserVipInfo userVipInfo = userInfo.getUserVipInfoVO();
int level = userVipInfo == null ? 0 : userVipInfo.getVipLevel();
return level >= simpleVipInfo.getVipLevel();
}
@Override

View File

@@ -1,6 +1,7 @@
package com.yizhuan.xchat_android_core.room.face;
import com.google.gson.annotations.SerializedName;
import com.yizhuan.xchat_android_core.gift.bean.SimpleVipInfo;
import java.io.Serializable;
@@ -148,6 +149,8 @@ public class FaceInfo implements Serializable {
*/
private boolean isLuckFace;
private SimpleVipInfo faceVipInfo;
/**
* 我们要拼接的是:
* picturesRootDirectory/{表情名字}/表情图片
@@ -312,6 +315,14 @@ public class FaceInfo implements Serializable {
isLuckFace = luckFace;
}
public SimpleVipInfo getFaceVipInfo() {
return faceVipInfo;
}
public void setFaceVipInfo(SimpleVipInfo faceVipInfo) {
this.faceVipInfo = faceVipInfo;
}
@Override
public String toString() {
return "FaceInfo{" +

View File

@@ -23,5 +23,5 @@ only_arm64=false
channel_file=channel.txt
version_name=4.0.0
version_code=400
version_name=4.1.0
version_code=410