From 9a39bb2b54804096002f6220321cf878ae3ee255 Mon Sep 17 00:00:00 2001 From: huangjian Date: Fri, 31 Dec 2021 17:13:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B5=E6=97=8F=E8=A1=A8=E6=83=85=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=B4=B5=E6=97=8Flogo=E5=92=8C=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamicface/DynamicFaceAdapter.java | 26 ++++++++++------- .../widget/dynamicface/DynamicFaceDialog.java | 18 ++++++++---- app/src/main/res/layout/list_item_face.xml | 18 ++++++++++-- .../room/face/DynamicFaceModel.java | 28 ++++++++++--------- .../room/face/FaceInfo.java | 11 ++++++++ gradle.properties | 4 +-- 6 files changed, 73 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceAdapter.java b/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceAdapter.java index becd9fde1..6270f5ad7 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceAdapter.java @@ -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 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; } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceDialog.java b/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceDialog.java index 9c3c96645..e1ab67203 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceDialog.java +++ b/app/src/main/java/com/yizhuan/erban/ui/widget/dynamicface/DynamicFaceDialog.java @@ -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 faceInfos) { + if (faceInfos == null) { + LogUtils.d("faceInfos==null"); + } else { + LogUtils.d("faceInfos.size()" + faceInfos.size()); + } List pagerView = new ArrayList<>(); List> 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(); } } diff --git a/app/src/main/res/layout/list_item_face.xml b/app/src/main/res/layout/list_item_face.xml index a35ec593f..92abb99a5 100644 --- a/app/src/main/res/layout/list_item_face.xml +++ b/app/src/main/res/layout/list_item_face.xml @@ -21,9 +21,10 @@ + + + + \ No newline at end of file diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/face/DynamicFaceModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/face/DynamicFaceModel.java index d8cfc97db..801c27b89 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/room/face/DynamicFaceModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/face/DynamicFaceModel.java @@ -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 diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/face/FaceInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/face/FaceInfo.java index 623152c6d..cc6576b23 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/room/face/FaceInfo.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/face/FaceInfo.java @@ -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{" + diff --git a/gradle.properties b/gradle.properties index 6e6904b2b..af71e1499 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,5 +23,5 @@ only_arm64=false channel_file=channel.txt -version_name=4.0.0 -version_code=400 \ No newline at end of file +version_name=4.1.0 +version_code=410 \ No newline at end of file