贵族表情增加贵族logo和锁
This commit is contained in:
@@ -10,7 +10,10 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import com.yizhuan.erban.R;
|
import com.yizhuan.erban.R;
|
||||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
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.room.face.FaceInfo;
|
||||||
|
import com.yizhuan.xchat_android_core.utils.TextUtils;
|
||||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -26,15 +29,15 @@ public class DynamicFaceAdapter extends BaseAdapter implements View.OnClickListe
|
|||||||
private Context context;
|
private Context context;
|
||||||
private OnFaceItemClickListener onFaceItemClickListener;
|
private OnFaceItemClickListener onFaceItemClickListener;
|
||||||
|
|
||||||
public void setOnFaceItemClickListener(OnFaceItemClickListener onFaceItemClickListener) {
|
|
||||||
this.onFaceItemClickListener = onFaceItemClickListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DynamicFaceAdapter(Context context, List<FaceInfo> faceInfoList) {
|
public DynamicFaceAdapter(Context context, List<FaceInfo> faceInfoList) {
|
||||||
this.faceInfoList = faceInfoList;
|
this.faceInfoList = faceInfoList;
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOnFaceItemClickListener(OnFaceItemClickListener onFaceItemClickListener) {
|
||||||
|
this.onFaceItemClickListener = onFaceItemClickListener;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
if (faceInfoList == null) {
|
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.faceName = (TextView) convertView.findViewById(R.id.face_name);
|
||||||
holder.container = convertView.findViewById(R.id.face_layout);
|
holder.container = convertView.findViewById(R.id.face_layout);
|
||||||
holder.ivNobleTag = convertView.findViewById(R.id.iv_noble_tag);
|
holder.ivNobleTag = convertView.findViewById(R.id.iv_noble_tag);
|
||||||
|
holder.ivVipLocked = convertView.findViewById(R.id.iv_vip_locked);
|
||||||
convertView.setTag(holder);
|
convertView.setTag(holder);
|
||||||
} else {
|
} else {
|
||||||
holder = (FaceViewHolder) convertView.getTag();
|
holder = (FaceViewHolder) convertView.getTag();
|
||||||
@@ -75,15 +79,16 @@ public class DynamicFaceAdapter extends BaseAdapter implements View.OnClickListe
|
|||||||
File file = new File(faceInfo.getFacePath(faceInfo.getIconImageIndex()));
|
File file = new File(faceInfo.getFacePath(faceInfo.getIconImageIndex()));
|
||||||
ImageLoadUtils.loadImage(BasicConfig.INSTANCE.getAppContext(), file, holder.faceIcon);
|
ImageLoadUtils.loadImage(BasicConfig.INSTANCE.getAppContext(), file, holder.faceIcon);
|
||||||
holder.faceName.setText(faceInfo.getCNName());
|
holder.faceName.setText(faceInfo.getCNName());
|
||||||
int nobleId = faceInfo.getNobleId();
|
SimpleVipInfo vipInfo = faceInfo.getFaceVipInfo();
|
||||||
if (nobleId == 0) {
|
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);
|
holder.ivNobleTag.setImageDrawable(null);
|
||||||
} else {
|
} else {
|
||||||
int drawableId = nobleId == 1 ? R.drawable.ic_tag_1 : nobleId == 2 ? R.drawable.ic_tag_2 : nobleId == 3 ?
|
ImageLoadUtils.loadImage(context, vipIcon, holder.ivNobleTag);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return convertView;
|
return convertView;
|
||||||
@@ -106,5 +111,6 @@ public class DynamicFaceAdapter extends BaseAdapter implements View.OnClickListe
|
|||||||
private TextView faceName;
|
private TextView faceName;
|
||||||
private View container;
|
private View container;
|
||||||
private ImageView ivNobleTag;
|
private ImageView ivNobleTag;
|
||||||
|
private ImageView ivVipLocked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,7 @@ import android.widget.LinearLayout;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.yizhuan.erban.R;
|
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.dialog.OpenNobleDialog;
|
||||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||||
import com.yizhuan.erban.vip.VipMainActivity;
|
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.room.face.FaceInfo;
|
||||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
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.ListUtils;
|
||||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||||
|
|
||||||
@@ -118,6 +120,11 @@ public class DynamicFaceDialog extends BottomSheetDialog
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateFace(List<FaceInfo> faceInfos) {
|
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<View> pagerView = new ArrayList<>();
|
||||||
List<List<FaceInfo>> lists = resolveData(faceInfos);
|
List<List<FaceInfo>> lists = resolveData(faceInfos);
|
||||||
int size = lists.size();
|
int size = lists.size();
|
||||||
@@ -278,12 +285,13 @@ public class DynamicFaceDialog extends BottomSheetDialog
|
|||||||
boolean canUseNobleFaceOrNot = DynamicFaceModel.get().canUseNobleFaceOrNot(faceInfo);
|
boolean canUseNobleFaceOrNot = DynamicFaceModel.get().canUseNobleFaceOrNot(faceInfo);
|
||||||
if (canUseNobleFaceOrNot) {
|
if (canUseNobleFaceOrNot) {
|
||||||
DynamicFaceModel.get().sendFace(faceInfo);
|
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();
|
dismiss();
|
||||||
|
} else if (faceInfo.getFaceVipInfo() != null) {
|
||||||
|
new DialogManager(context).showOkDialog("尚未达到发送" +
|
||||||
|
faceInfo.getCNName() +
|
||||||
|
"所需贵族等级,所需贵族等级:" +
|
||||||
|
faceInfo.getFaceVipInfo().getVipName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -21,9 +21,10 @@
|
|||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/iv_noble_tag"
|
android:id="@+id/iv_noble_tag"
|
||||||
android:layout_width="22dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="11dp"
|
android:layout_height="15dp"
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
|
android:adjustViewBounds="true"
|
||||||
tools:src="@drawable/ic_tag_1" />
|
tools:src="@drawable/ic_tag_1" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@@ -37,5 +38,18 @@
|
|||||||
android:textSize="@dimen/font_small"
|
android:textSize="@dimen/font_small"
|
||||||
tools:text="表情名字"
|
tools:text="表情名字"
|
||||||
tools:textColor="#000" />
|
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>
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@@ -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.ProgressInfo;
|
||||||
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo;
|
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo;
|
||||||
import com.yizhuan.xchat_android_core.bean.response.RequestError;
|
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.CustomAttachment;
|
||||||
import com.yizhuan.xchat_android_core.im.custom.bean.FaceAttachment;
|
import com.yizhuan.xchat_android_core.im.custom.bean.FaceAttachment;
|
||||||
import com.yizhuan.xchat_android_core.initial.InitialModel;
|
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.room.queue.bean.MicMemberInfo;
|
||||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
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.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.NetworkUtils;
|
import com.yizhuan.xchat_android_library.utils.NetworkUtils;
|
||||||
@@ -145,7 +148,9 @@ public class DynamicFaceModel extends BaseModel implements IDynamicFaceModel {
|
|||||||
public void init() {
|
public void init() {
|
||||||
String offlineEncryptString = DemoCache.readFaceList();
|
String offlineEncryptString = DemoCache.readFaceList();
|
||||||
try {
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -397,22 +402,19 @@ public class DynamicFaceModel extends BaseModel implements IDynamicFaceModel {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean canUseNobleFaceOrNot(FaceInfo faceInfo) {
|
public boolean canUseNobleFaceOrNot(FaceInfo faceInfo) {
|
||||||
boolean nobleFace = faceInfo.isNobleFace();
|
if (faceInfo == null) return false;
|
||||||
if (!nobleFace) return true;
|
|
||||||
long currentUid = AuthModel.get().getCurrentUid();
|
long currentUid = AuthModel.get().getCurrentUid();
|
||||||
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
||||||
// 如果没有贵族信息则不能发
|
|
||||||
if (currentUid == 0 || userInfo == null || userInfo.getNobleInfo() == null) {
|
if (currentUid == 0 || userInfo == null) {
|
||||||
/*Toast.makeText(BasicConfig.INSTANCE.getAppContext(), "开通贵族才能发贵族礼物哦!~", Toast.LENGTH_SHORT).show();*/
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
NobleInfo nobleInfo = userInfo.getNobleInfo();
|
SimpleVipInfo simpleVipInfo = faceInfo.getFaceVipInfo();
|
||||||
int level = nobleInfo.getLevel();
|
if (simpleVipInfo == null || simpleVipInfo.getVipLevel() == 0) return true;
|
||||||
if (level >= faceInfo.getNobleId()) {
|
|
||||||
return true;
|
UserVipInfo userVipInfo = userInfo.getUserVipInfoVO();
|
||||||
}
|
int level = userVipInfo == null ? 0 : userVipInfo.getVipLevel();
|
||||||
/*Toast.makeText(BasicConfig.INSTANCE.getAppContext(), "贵族等级不够哦!~", Toast.LENGTH_SHORT).show();*/
|
return level >= simpleVipInfo.getVipLevel();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
package com.yizhuan.xchat_android_core.room.face;
|
package com.yizhuan.xchat_android_core.room.face;
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yizhuan.xchat_android_core.gift.bean.SimpleVipInfo;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@@ -148,6 +149,8 @@ public class FaceInfo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private boolean isLuckFace;
|
private boolean isLuckFace;
|
||||||
|
|
||||||
|
private SimpleVipInfo faceVipInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 我们要拼接的是:
|
* 我们要拼接的是:
|
||||||
* picturesRootDirectory/{表情名字}/表情图片
|
* picturesRootDirectory/{表情名字}/表情图片
|
||||||
@@ -312,6 +315,14 @@ public class FaceInfo implements Serializable {
|
|||||||
isLuckFace = luckFace;
|
isLuckFace = luckFace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SimpleVipInfo getFaceVipInfo() {
|
||||||
|
return faceVipInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFaceVipInfo(SimpleVipInfo faceVipInfo) {
|
||||||
|
this.faceVipInfo = faceVipInfo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "FaceInfo{" +
|
return "FaceInfo{" +
|
||||||
|
@@ -23,5 +23,5 @@ only_arm64=false
|
|||||||
|
|
||||||
channel_file=channel.txt
|
channel_file=channel.txt
|
||||||
|
|
||||||
version_name=4.0.0
|
version_name=4.1.0
|
||||||
version_code=400
|
version_code=410
|
Reference in New Issue
Block a user