用户信息相关页面增加贵族等级标识

This commit is contained in:
huangjian
2021-12-30 18:22:47 +08:00
parent 58807aac5e
commit 0738ac3ca5
32 changed files with 317 additions and 145 deletions

View File

@@ -237,7 +237,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
gameMainBinding.rvGame.setVisibility(View.GONE);
gameMainBinding.ivChangeGameArrow.setImageResource(R.drawable.ic_room_arrow_type_below);
} else {
if (roomInfo.getRoomModeType() != RoomModeType.NORMAL_MODE) {
if (!isShowChangeGame()) {
SingleToastUtil.showToast("请关闭其他模式再切换游戏!");
return;
}

View File

@@ -33,6 +33,7 @@ import com.yizhuan.erban.ui.relation.FansListActivity;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
import com.yizhuan.erban.ui.widget.higuide.TuTuGuideHelper;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.erban.vip.VipMainActivity;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
@@ -195,6 +196,8 @@ public class MeFragment extends BaseFragment implements View.OnClickListener {
String star = StarUtils.getConstellation(new Date(mUserInfo.getBirth()));
mBinding.tvConstellation.setText(star);
setUserLevel(mUserInfo.getUserLevelVo());
VipHelper.loadVipIcon(mBinding.ivVipIcon, mUserInfo.getUserVipInfoVO());
}
}

View File

@@ -13,9 +13,11 @@ import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.erban.ui.user.UserInfoActivity;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.widget.NobleAvatarView;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.tutu.room_chat.activity.NimRoomP2PMessageActivity;
import com.yizhuan.xchat_android_core.noble.NobleUtil;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.StringExtensionKt;
/**
* @author chenran
@@ -50,15 +52,12 @@ public class FriendListAdapter extends BaseQuickAdapter<UserInfo, BaseViewHolder
protected void convert(BaseViewHolder helper, UserInfo item) {
if (item == null) return;
helper.setText(R.id.tv_userName, item.getNick())
helper.setText(R.id.tv_userName, StringExtensionKt.subAndReplaceDot(item.getNick(),8))
.setText(R.id.tv_user_desc, item.getUserDesc() != null ?
item.getUserDesc()
: helper.itemView.getContext().getResources().getString(R.string.msg_no_user_desc))
// .setVisible(R.id.view_line, helper.getLayoutPosition() != getItemCount() - 1)
// .setVisible(R.id.tv_find_him, attentionInfo.getUserInRoom() != null && type == AbstractSelectFriendAction.TYPE_NORMAL)
// .setVisible(R.id.tv_send, isSend)
;
: helper.itemView.getContext().getResources().getString(R.string.msg_no_user_desc));
VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon),item.getUserVipInfoVO());
VipHelper.loadVipNickColor(helper.getView(R.id.tv_userName), item.getUserVipInfoVO(),"#FF333333");
NobleAvatarView nobleAvatarView = helper.getView(R.id.noble_avatar_view);
nobleAvatarView.setSize(55, 75, 15);
nobleAvatarView.setData(item.getAvatar(), item.getNobleUsers());

View File

@@ -16,6 +16,7 @@ import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.RecentContact;
import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.level.UserLevelVo;
import com.yizhuan.xchat_android_core.noble.NobleInfo;
import com.yizhuan.xchat_android_core.noble.NobleUtil;
@@ -64,6 +65,7 @@ public class CommonRecentViewHolder extends RecentViewHolder {
mIvNobleHeadWear = holder.getView(R.id.noble_head_wear);
mIvNobleLevel = holder.getView(R.id.iv_noble_level);
mIvNobleBadge = holder.getView(R.id.iv_user_badge);
ivVipIcon = holder.getView(R.id.iv_vip_icon);
MessageBubbleView.attach(this.tvUnread, new BubbleMessageTouchListener.BubbleDisappearListener() {
@Override
@@ -161,34 +163,11 @@ public class CommonRecentViewHolder extends RecentViewHolder {
} else {
ivUserGender.setImageResource(R.drawable.ic_gender_female);
}
if (userInfo.getNobleInfo() != null)
setNobleData(userInfo.getNobleUsers());
// ivUserOfficialView.setVisibility(userInfo.isOfficial() ? VISIBLE : GONE);
VipHelper.loadVipIcon(ivVipIcon,userInfo.getUserVipInfoVO());
VipHelper.loadVipNickColor(tvNickname, userInfo.getUserVipInfoVO(),"#FF333333");
});
}
private void setNobleData(NobleInfo nobleInfo) {
if (nobleInfo != null) {
mIvNobleHeadWear.setVisibility(VISIBLE);
mIvNobleBadge.setVisibility(VISIBLE);
String headWear = nobleInfo.getHeadWear();
if (TextUtils.isEmpty(headWear)) {
mIvNobleHeadWear.setVisibility(INVISIBLE);
mIvNobleBadge.setVisibility(nobleInfo.getLevel() > 0 ? VISIBLE : GONE);
NobleUtil.loadResource(NobleUtil.getBadgeByLevel(nobleInfo.getLevel()), mIvNobleBadge);
} else {
mIvNobleBadge.setVisibility(GONE);
NobleUtil.loadResource(headWear, mIvNobleHeadWear);
}
String badgeByLevel = NobleUtil.getBadgeByLevel(nobleInfo.getLevel());
if (!TextUtils.isEmpty(badgeByLevel)) {
mIvNobleBadge.setVisibility(VISIBLE);
NobleUtil.loadResource(badgeByLevel, mIvNobleBadge);
}
} else {
mIvNobleHeadWear.setVisibility(INVISIBLE);
mIvNobleBadge.setVisibility(GONE);
}
}
}

View File

@@ -42,6 +42,7 @@ public abstract class RecentViewHolder extends RecyclerViewHolder<BaseQuickAdapt
protected AppCompatImageView mIvNobleBadge;
protected AppCompatImageView ivCharmLevel;
protected AppCompatImageView ivUserGender;
protected ImageView ivVipIcon;
protected TextView tvNickname;

View File

@@ -1,6 +1,7 @@
package com.yizhuan.erban.ui.relation.adapter;
import androidx.appcompat.widget.AppCompatImageView;
import android.text.TextUtils;
import android.view.View;
@@ -10,9 +11,11 @@ import com.yizhuan.erban.R;
import com.yizhuan.erban.friend.action.AbstractSelectFriendAction;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.widget.NobleAvatarView;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.noble.NobleUtil;
import com.yizhuan.xchat_android_core.user.bean.AttentionInfo;
import com.yizhuan.xchat_android_core.utils.StringExtensionKt;
import java.util.List;
@@ -23,6 +26,7 @@ import java.util.List;
public class AttentionListAdapter extends BaseQuickAdapter<AttentionInfo, BaseViewHolder> {
private int type = AbstractSelectFriendAction.TYPE_NORMAL;
private onClickListener rylListener;
public AttentionListAdapter(List<AttentionInfo> attentionInfoList) {
super(R.layout.attention_item_new, attentionInfoList);
@@ -37,7 +41,7 @@ public class AttentionListAdapter extends BaseQuickAdapter<AttentionInfo, BaseVi
if (attentionInfo == null) return;
boolean isSend = (type == AbstractSelectFriendAction.TYPE_WEAR ||
type == AbstractSelectFriendAction.TYPE_CAR);
baseViewHolder.setText(R.id.tv_userName, attentionInfo.getNick())
baseViewHolder.setText(R.id.tv_userName, StringExtensionKt.subAndReplaceDot(attentionInfo.getNick(),8))
.setText(R.id.tv_user_desc, attentionInfo.getUserDesc() != null ?
attentionInfo.getUserDesc()
: baseViewHolder.itemView.getContext().getResources().getString(R.string.msg_no_user_desc))
@@ -72,6 +76,9 @@ public class AttentionListAdapter extends BaseQuickAdapter<AttentionInfo, BaseVi
ivGender.setImageResource(R.drawable.ic_gender_female);
}
VipHelper.loadVipIcon(baseViewHolder.getView(R.id.iv_vip_icon), attentionInfo.getUserVipInfoVO());
VipHelper.loadVipNickColor(baseViewHolder.getView(R.id.tv_userName), attentionInfo.getUserVipInfoVO(), "#FF333333");
baseViewHolder.getView(R.id.iv_user_official).setVisibility(attentionInfo.isOfficial() ? View.VISIBLE : View.GONE);
AppCompatImageView ivNobleLevel = baseViewHolder.getView(R.id.iv_noble_level);
@@ -106,7 +113,9 @@ public class AttentionListAdapter extends BaseQuickAdapter<AttentionInfo, BaseVi
}
}
private onClickListener rylListener;
public void setRylListener(onClickListener onClickListener) {
rylListener = onClickListener;
}
public interface onClickListener {
void rylListeners(AttentionInfo attentionInfo);
@@ -115,8 +124,4 @@ public class AttentionListAdapter extends BaseQuickAdapter<AttentionInfo, BaseVi
void sendListener(AttentionInfo attentionInfo);
}
public void setRylListener(onClickListener onClickListener) {
rylListener = onClickListener;
}
}

View File

@@ -12,9 +12,11 @@ import com.yizhuan.erban.R;
import com.yizhuan.erban.friend.action.AbstractSelectFriendAction;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.widget.NobleAvatarView;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.im.friend.IMFriendModel;
import com.yizhuan.xchat_android_core.noble.NobleUtil;
import com.yizhuan.xchat_android_core.user.bean.FansInfo;
import com.yizhuan.xchat_android_core.utils.StringExtensionKt;
import java.util.List;
@@ -50,7 +52,7 @@ public class FansViewAdapter extends BaseQuickAdapter<FansInfo, BaseViewHolder>
@Override
protected void convert(BaseViewHolder baseViewHolder, final FansInfo fansInfo) {
if (fansInfo == null) return;
baseViewHolder.setText(R.id.tv_userName, fansInfo.getNick())
baseViewHolder.setText(R.id.tv_userName, StringExtensionKt.subAndReplaceDot(fansInfo.getNick(),8))
.setText(R.id.tv_user_desc, fansInfo.getUserDesc() != null ?
fansInfo.getUserDesc()
: baseViewHolder.itemView.getContext().getResources().getString(R.string.msg_no_user_desc))
@@ -93,6 +95,9 @@ public class FansViewAdapter extends BaseQuickAdapter<FansInfo, BaseViewHolder>
ivGender.setImageResource(R.drawable.ic_gender_female);
}
VipHelper.loadVipIcon(baseViewHolder.getView(R.id.iv_vip_icon), fansInfo.getUserVipInfoVO());
VipHelper.loadVipNickColor(baseViewHolder.getView(R.id.tv_userName), fansInfo.getUserVipInfoVO(), "#FF333333");
// 官字
baseViewHolder.getView(R.id.iv_user_official).setVisibility(fansInfo.isOfficial() ? View.VISIBLE : View.GONE);

View File

@@ -48,6 +48,7 @@ import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.widget.ButtonItem;
import com.yizhuan.erban.ui.widget.ObservableScrollView;
import com.yizhuan.erban.utils.RegexUtil;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_constants.XChatConstants;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.community.bean.WorldDynamicBean;
@@ -293,6 +294,8 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
if (AuthModel.get().getCurrentUid() != userInfo.getUid()) {
PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe();
}
VipHelper.loadVipIcon(mBinding.ivVipIcon, userInfo.getUserVipInfoVO());
}
}

View File

@@ -34,6 +34,7 @@ import com.yizhuan.erban.common.widget.dialog.DialogManager;
import com.yizhuan.erban.ui.user.UserInfoActivity;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.utils.RegexUtil;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_constants.XChatConstants;
import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.auth.AuthModel;
@@ -118,6 +119,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
*/
private ImageView ivAvatarBg;
private ImageView ivBadge;
private ImageView ivVipIcon;
private TextView nick;
private ImageView ivGender;
private TextView erbanId;
@@ -151,6 +153,8 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
private ViewItem findHimView;
private TextView tvSelectHim;
private View attentView;
private String avatarBg;
public UserInfoDialog(Context context, long uid, List<ViewItem> buttons, boolean isInRoom) {
super(context, R.style.ErbanUserInfoDialog);
@@ -187,7 +191,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
nick = findViewById(R.id.nick);
erbanId = findViewById(R.id.tv_erban_id);
ivGender = findViewById(R.id.iv_gender);
ivVipIcon = findViewById(R.id.iv_vip_icon);
fansNumber = findViewById(R.id.fans_number);
flexbox = findViewById(R.id.flexbox);
@@ -299,7 +303,6 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
}
}
/**
* @param isVisiable ture则表示上麦的网格布局可见
*/
@@ -310,8 +313,6 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
findViewById(R.id.ll_bottom_buttons).setVisibility(isVisiable ? View.GONE : View.VISIBLE);
}
private View attentView;
private void updateAttentView() {
TextView textView = attentView.findViewById(R.id.text);
textView.setText(isAttention ? "已关注Ta" : "关注Ta");
@@ -487,7 +488,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
erbanId.setText("大鹅号:" + userInfo.getErbanNo());
ivGender.setImageResource(
userInfo.getGender() == 1 ? R.drawable.ic_gender_male : R.drawable.ic_gender_female);
VipHelper.loadVipIcon(ivVipIcon, userInfo.getUserVipInfoVO());
// 设置粉丝数量
fansNumber.setText(userInfo.getFansNum() + "粉丝");
@@ -640,8 +641,6 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
});
}
private String avatarBg;
private void updateNobleView() {
// 防止访问数据库和网络同时刷新出现图标跳动
NobleInfo nobleInfo = userInfo.getNobleInfo();
@@ -1043,7 +1042,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
return;
}
if (AvRoomDataManager.get().isSelfGamePlaying()){
if (AvRoomDataManager.get().isSelfGamePlaying()) {
SingleToastUtil.showToast("游戏中不可以主动下麦!");
return;
}
@@ -1312,7 +1311,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
}
}
if (AvRoomDataManager.get().isGamePlaying(uid)){
if (AvRoomDataManager.get().isGamePlaying(uid)) {
new DialogManager(context).showOkCancelWithTitleDialog("抱Ta下麦后默认该玩家退出游戏,是否继续?",
(DialogManager.LambdaOkDialogListener) () -> {
kickDownMicCode();

View File

@@ -0,0 +1,38 @@
package com.yizhuan.erban.vip;
import android.graphics.Color;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.xchat_android_core.utils.TextUtils;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
public class VipHelper {
public static void loadVipIcon(@NonNull ImageView ivVipIcon, @Nullable UserVipInfo vipInfo) {
if (vipInfo == null || TextUtils.isEmptyText(vipInfo.getVipIcon())) {
ivVipIcon.setVisibility(View.GONE);
} else {
ivVipIcon.setVisibility(View.VISIBLE);
ImageLoadUtils.loadImage(ivVipIcon.getContext(), vipInfo.getVipIcon(), ivVipIcon);
}
}
public static void loadVipNickColor(@NonNull TextView tvNick, @Nullable UserVipInfo vipInfo, String defaultColor) {
try {
if (vipInfo == null || TextUtils.isEmptyText(vipInfo.getFriendNickColour())) {
tvNick.setTextColor(Color.parseColor(defaultColor));
} else {
tvNick.setTextColor(Color.parseColor(vipInfo.getFriendNickColour()));
}
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
}

View File

@@ -59,11 +59,24 @@
android:background="@drawable/bg_secondary_radius_10"
android:padding="@dimen/dp_15">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginStart="3dp"
android:layout_marginEnd="@dimen/dp_20"
android:layout_marginBottom="6dp"
android:drawablePadding="@dimen/space_normal"
@@ -73,8 +86,9 @@
android:textColor="@color/text_title_white"
android:textSize="15dp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_vip_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginStart="0dp"
tools:drawableRight="@drawable/ic_gender_male"
tools:text="King天地天地" />
@@ -100,6 +114,7 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_3"
android:adjustViewBounds="true"
android:visibility="visible"
tools:src="@mipmap/ic_user_level" />
@@ -108,6 +123,7 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_marginEnd="3dp"
android:adjustViewBounds="true"
android:visibility="visible"
tools:src="@drawable/ic_user_charm_level" />
@@ -156,6 +172,7 @@
android:layout_marginStart="5dp"
android:background="@drawable/shape_58559d"
android:gravity="center"
android:includeFontPadding="false"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:textColor="@color/white"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rly"
android:layout_width="match_parent"
android:layout_height="71dp"
@@ -22,11 +22,21 @@
android:layout_weight="1"
android:orientation="vertical">
<com.google.android.flexbox.FlexboxLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flexDirection="row"
app:flexWrap="nowrap">
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginEnd="3dp"
android:adjustViewBounds="true"
android:visibility="gone"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_userName"
@@ -37,19 +47,17 @@
android:lines="1"
android:textColor="@color/text_title_white"
android:textSize="15sp"
tools:text="我的我的我的我的我的我的"
app:layout_flexShrink="1"
/>
tools:text="我的我的我的我的..." />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_gender"
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_width="21dp"
android:layout_height="14dp"
android:layout_marginEnd="2dp"
tools:src="@drawable/ic_gender_female"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:src="@drawable/ic_gender_female"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_user_official"
@@ -58,9 +66,7 @@
android:layout_marginEnd="2dp"
android:src="@mipmap/ic_user_official_13dp"
android:visibility="gone"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_noble_level"
@@ -69,9 +75,7 @@
android:layout_marginEnd="4dp"
android:visibility="gone"
tools:src="@mipmap/ic_user_level_king"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_user_level"
@@ -81,9 +85,7 @@
android:scaleType="fitCenter"
android:visibility="gone"
tools:src="@mipmap/ic_user_level"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_charm_level"
@@ -93,11 +95,9 @@
android:scaleType="fitCenter"
android:visibility="gone"
tools:src="@mipmap/ic_user_level"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
</com.google.android.flexbox.FlexboxLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_user_desc"
@@ -133,7 +133,6 @@
tools:visibility="visible" />
</FrameLayout>
</LinearLayout>

View File

@@ -81,13 +81,23 @@
android:gravity="center_vertical"
android:maxWidth="165dp">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:visibility="gone"
android:layout_marginEnd="3dp"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="3dp"
android:ellipsize="end"
android:maxWidth="111dp"
android:maxWidth="100dp"
android:maxLength="10"
android:maxLines="1"
android:textColor="@color/white"
@@ -96,8 +106,8 @@
<ImageView
android:id="@+id/iv_gender"
android:layout_width="@dimen/dp_13"
android:layout_height="@dimen/dp_13"
android:layout_width="@dimen/dp_21"
android:layout_height="@dimen/dp_14"
android:layout_marginEnd="@dimen/dp_3"
android:scaleType="fitCenter"
android:src="@drawable/ic_gender_female" />

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rly"
android:layout_width="match_parent"
android:layout_height="71dp"
@@ -22,11 +22,21 @@
android:layout_weight="1"
android:orientation="vertical">
<com.google.android.flexbox.FlexboxLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flexDirection="row"
app:flexWrap="nowrap">
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginEnd="3dp"
android:adjustViewBounds="true"
android:visibility="gone"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_userName"
@@ -37,19 +47,16 @@
android:lines="1"
android:textColor="@color/text_title_white"
android:textSize="15sp"
tools:text="我的我的我的我的我的我的"
app:layout_flexShrink="1"
/>
tools:text="我的我的我的我的我的我的" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_gender"
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_width="21dp"
android:layout_height="14dp"
android:layout_marginEnd="2dp"
tools:src="@drawable/ic_gender_female"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:src="@drawable/ic_gender_female"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_user_official"
@@ -58,9 +65,7 @@
android:layout_marginEnd="2dp"
android:src="@mipmap/ic_user_official_13dp"
android:visibility="gone"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_noble_level"
@@ -69,9 +74,7 @@
android:layout_marginEnd="2dp"
android:visibility="gone"
tools:src="@mipmap/ic_user_level_king"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_user_level"
@@ -81,9 +84,7 @@
android:scaleType="fitCenter"
android:visibility="gone"
tools:src="@mipmap/ic_user_level"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_charm_level"
@@ -93,11 +94,9 @@
android:scaleType="fitCenter"
android:visibility="gone"
tools:src="@mipmap/ic_user_level"
tools:visibility="visible"
app:layout_flexShrink="0"
/>
tools:visibility="visible" />
</com.google.android.flexbox.FlexboxLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_user_desc"

View File

@@ -100,10 +100,23 @@
app:layout_constraintStart_toEndOf="@id/iv_user_head"
app:layout_constraintTop_toTopOf="@id/iv_user_head">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_user_name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_user_name"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_user_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="3dp"
android:drawablePadding="5dp"
android:ellipsize="end"
android:maxLines="1"
@@ -112,9 +125,10 @@
android:textSize="@dimen/sp_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_vip_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_default="wrap"
app:layout_goneMarginStart="0dp"
tools:text="党移动地下党" />
<LinearLayout
@@ -123,7 +137,7 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="@id/tv_user_name"
app:layout_constraintStart_toStartOf="@id/iv_vip_icon"
app:layout_constraintTop_toBottomOf="@id/tv_user_name">
@@ -160,7 +174,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:gravity="center_vertical"
app:layout_constraintStart_toStartOf="@id/tv_user_name"
app:layout_constraintStart_toStartOf="@id/iv_vip_icon"
app:layout_constraintTop_toBottomOf="@id/ll_id">
<androidx.appcompat.widget.AppCompatImageView

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="71dp"
@@ -22,11 +22,21 @@
android:layout_weight="1"
android:orientation="vertical">
<com.google.android.flexbox.FlexboxLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flexDirection="row"
app:flexWrap="nowrap">
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginEnd="3dp"
android:adjustViewBounds="true"
android:visibility="gone"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_userName"
@@ -37,16 +47,15 @@
android:lines="1"
android:textColor="@color/text_title_white"
android:textSize="15sp"
app:layout_flexShrink="1"
tools:text="我的我的我的我的我的我的" />
tools:text="我的我的我的我的..." />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_gender"
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_width="21dp"
android:layout_height="14dp"
android:layout_marginEnd="2dp"
tools:src="@drawable/ic_gender_female"
app:layout_flexShrink="0"
tools:src="@drawable/ic_gender_female"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
@@ -54,9 +63,9 @@
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_marginEnd="2dp"
app:layout_flexShrink="0"
android:src="@mipmap/ic_user_official_13dp"
android:visibility="visible"
app:layout_flexShrink="0"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
@@ -64,8 +73,8 @@
android:layout_width="17dp"
android:layout_height="17dp"
android:layout_marginEnd="2dp"
app:layout_flexShrink="0"
android:visibility="gone"
app:layout_flexShrink="0"
tools:src="@mipmap/ic_user_level_king"
tools:visibility="visible" />
@@ -75,8 +84,8 @@
android:layout_height="@dimen/dp_19"
android:layout_marginEnd="2dp"
android:scaleType="fitCenter"
app:layout_flexShrink="0"
android:visibility="gone"
app:layout_flexShrink="0"
tools:src="@mipmap/ic_user_level"
tools:visibility="visible" />
@@ -91,7 +100,7 @@
tools:src="@mipmap/ic_user_level"
tools:visibility="visible" />
</com.google.android.flexbox.FlexboxLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_user_desc"

View File

@@ -50,6 +50,16 @@
android:layout_height="wrap_content"
android:gravity="center_vertical">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:adjustViewBounds="true"
android:visibility="gone"
android:layout_marginEnd="3dp"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_nickname"
android:layout_width="wrap_content"
@@ -67,8 +77,8 @@
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_user_gender"
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_width="21dp"
android:layout_height="14dp"
android:layout_marginEnd="5dp"
android:scaleType="centerInside"
android:visibility="visible"

View File

@@ -13,6 +13,7 @@ import com.yizhuan.erban.UIHelper;
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2;
import com.yizhuan.erban.utils.RegexUtil;
import com.yizhuan.erban.utils.TimeUiUtils;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.community.bean.Comment;
import com.yizhuan.xchat_android_library.utils.ListUtils;
@@ -33,6 +34,7 @@ public class CommentAdapter extends BaseQuickAdapter<Comment, BaseViewHolder> {
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_avatar), item.getAvatar());
TextView tvNick = helper.getView(R.id.tv_nick);
tvNick.setText(RegexUtil.getPrintableString(item.getNick()));
VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon), item.getUserVipInfoVO());
int endIcon = 0;
if (item.isLandLordFlag()) {
endIcon = R.drawable.icon_dy_dynamic_publisher;

View File

@@ -12,6 +12,7 @@ import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2;
import com.yizhuan.erban.utils.RegexUtil;
import com.yizhuan.erban.utils.SpannableBuilder;
import com.yizhuan.erban.utils.TimeUiUtils;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.community.bean.comment.Reply;
/**
@@ -32,6 +33,7 @@ public class CommentReplyAdapter extends BaseQuickAdapter<Reply, BaseViewHolder>
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_avatar), item.getAvatar(), true);
TextView tvNick = helper.getView(R.id.tv_nick);
tvNick.setText(RegexUtil.getPrintableString(item.getNick()));
VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon), item.getUserVipInfoVO());
int endIcon = 0;
if (item.isLandLordFlag()) {
endIcon = R.drawable.icon_dy_dynamic_publisher;

View File

@@ -17,6 +17,7 @@ import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.utils.RegexUtil;
import com.yizhuan.erban.utils.TimeUiUtils;
import com.yizhuan.erban.vip.VipHelper;
import com.yizhuan.xchat_android_core.user.bean.BaseUserInfo;
import com.yizhuan.xchat_android_library.widget.ShapeConstrainLayout;
@@ -32,6 +33,8 @@ public class DynamicNickDetailWidget extends ShapeConstrainLayout {
TextView tvNick;
@BindView(R.id.iv_gender)
ImageView ivGender;
@BindView(R.id.iv_vip_icon)
ImageView ivVipIcon;
@BindView(R.id.tv_age)
TextView tvAge;
@BindView(R.id.ll_gender_age)
@@ -108,6 +111,8 @@ public class DynamicNickDetailWidget extends ShapeConstrainLayout {
} else {
inOfficialMask.setVisibility(View.GONE);
}
VipHelper.loadVipIcon(ivVipIcon, info.getUserVipInfoVO());
}
public void setTime(long time) {

View File

@@ -14,33 +14,47 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginStart="@dimen/dp_20"
android:adjustViewBounds="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
app:layout_constraintStart_toEndOf="@id/iv_avatar"
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginStart="3dp"
android:drawablePadding="@dimen/dp_5"
android:ellipsize="end"
android:maxWidth="180dp"
android:singleLine="true"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_13"
app:layout_constraintStart_toEndOf="@id/iv_avatar"
app:layout_constraintStart_toEndOf="@id/iv_vip_icon"
app:layout_constraintTop_toTopOf="@id/iv_avatar"
app:layout_constraintVertical_chainStyle="packed"
app:layout_goneMarginStart="20dp"
tools:text="炮猫昵称" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_15"
android:gravity="center"
android:textColor="@color/text_secondary_4f516a"
android:textSize="@dimen/sp_11"
android:layout_marginEnd="@dimen/dp_15"
app:layout_constraintTop_toTopOf="@id/tv_nick"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:text="刚刚" />
<com.netease.nim.uikit.business.session.widget.NimEmojiTextView

View File

@@ -15,18 +15,32 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginStart="10.5dp"
android:adjustViewBounds="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
app:layout_constraintStart_toEndOf="@id/iv_avatar"
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10.5dp"
app:layout_goneMarginStart="10.5dp"
android:layout_marginStart="3dp"
android:drawablePadding="@dimen/dp_5"
android:ellipsize="end"
android:maxWidth="180dp"
android:singleLine="true"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_13"
app:layout_constraintStart_toEndOf="@id/iv_avatar"
app:layout_constraintStart_toEndOf="@id/iv_vip_icon"
app:layout_constraintTop_toTopOf="@id/iv_avatar"
app:layout_constraintVertical_chainStyle="packed"
tools:text="炮猫昵称" />

View File

@@ -5,6 +5,18 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:src="@drawable/ic_user_charm_level"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_nick"
android:layout_width="wrap_content"
@@ -13,9 +25,11 @@
android:ellipsize="end"
android:maxWidth="120dp"
android:singleLine="true"
android:layout_marginStart="3dp"
app:layout_goneMarginStart="0dp"
android:textColor="@color/text_title_white"
android:textSize="@dimen/dp_15"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_vip_icon"
app:layout_constraintTop_toTopOf="parent"
tools:text="炮猫昵称" />
@@ -68,7 +82,7 @@
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@mipmap/ic_user_official_13dp"
app:layout_constraintStart_toStartOf="@id/tv_nick"
app:layout_constraintStart_toStartOf="@id/iv_vip_icon"
app:layout_constraintTop_toBottomOf="@id/tv_nick" />
<ImageView

View File

@@ -7,14 +7,6 @@
android:focusable="true"
android:background="@drawable/bg_common_touch_while">
<!--<View-->
<!--android:id="@+id/top_line"-->
<!--android:layout_width="fill_parent"-->
<!--android:layout_height="1px"-->
<!--android:layout_alignParentBottom="true"-->
<!--android:layout_marginStart="70dp"-->
<!--android:background="@color/color_gray_d9d9d9" />-->
<RelativeLayout
android:id="@+id/rl_user_avatar"
android:layout_width="wrap_content"
@@ -111,20 +103,18 @@
tools:ignore="SpUsage" />
</LinearLayout>
<TextView
android:id="@+id/tv_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/center_view"
android:layout_marginStart="10dp"
android:layout_toStartOf="@+id/tv_date_time"
android:layout_toEndOf="@id/rl_user_avatar"
android:layout_marginStart="10dp"
android:ellipsize="end"
android:includeFontPadding="false"
android:maxEms="12"
android:maxLines="1"
android:includeFontPadding="false"
android:singleLine="true"
android:text=""
android:textColor="@color/color_black_333333"
@@ -132,8 +122,6 @@
tools:ignore="SpUsage"
tools:text="你好啊啊啊啊啊啊啊啊" />
<com.netease.nim.uikit.common.ui.draggablebubbles.BubbleView
android:id="@+id/unread_number_tip"
android:layout_width="wrap_content"
@@ -195,4 +183,5 @@
android:layout_alignStart="@+id/content_layout"
android:layout_alignEnd="@+id/tv_date_time"
/>
</RelativeLayout>

View File

@@ -3,11 +3,14 @@ package com.yizhuan.xchat_android_core.user.bean;
import com.yizhuan.xchat_android_core.level.UserLevelVo;
import com.yizhuan.xchat_android_core.noble.NobleInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* Created by Administrator on 2017/7/8 0008.
@@ -55,6 +58,10 @@ public class AttentionInfo implements Serializable {
//1普通账号2官方账号3机器账号
private int defUser;
private UserVipInfo userVipInfoVO;
private String userInfoCardPic;
/**
* 判断是否为官方
* @return

View File

@@ -1,5 +1,7 @@
package com.yizhuan.xchat_android_core.user.bean;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import java.io.Serializable;
import lombok.Getter;
@@ -55,6 +57,8 @@ public class BaseUserInfo implements Serializable {
private String micDecorate;
private UserInfo.NamePlate nameplate;
private UserVipInfo userVipInfoVO;
/**
* 判断是否为官方账号
* @return

View File

@@ -2,6 +2,7 @@ package com.yizhuan.xchat_android_core.user.bean;
import com.yizhuan.xchat_android_core.level.UserLevelVo;
import com.yizhuan.xchat_android_core.noble.NobleInfo;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import java.io.Serializable;
@@ -29,6 +30,10 @@ public class FansInfo implements Serializable {
//1普通账号2官方账号3机器账号
private int defUser;
private UserVipInfo userVipInfoVO;
private String userInfoCardPic;
/**
* 判断是否为官方
* @return

View File

@@ -15,6 +15,7 @@ import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
import com.yizhuan.xchat_android_core.level.UserLevelVo;
import com.yizhuan.xchat_android_core.noble.NobleInfo;
import com.yizhuan.xchat_android_core.utils.StarUtils;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import java.io.Serializable;
import java.util.ArrayList;
@@ -203,6 +204,14 @@ public class UserInfo implements Serializable {
@Setter
private int gameStatus;
@Getter
@Setter
private UserVipInfo userVipInfoVO;
@Getter
@Setter
private String userInfoCardPic;
public Location getUserExpand() {
return userExpand;
}

View File

@@ -0,0 +1,9 @@
package com.yizhuan.xchat_android_core.vip
import java.io.Serializable
data class UserVipInfo(
val vipIcon: String = "",
val vipLevel: String = "",
val friendNickColour: String = "",
) : Serializable

View File

@@ -2,6 +2,7 @@ package com.yizhuan.xchat_android_core.community.bean;
import com.yizhuan.xchat_android_core.community.bean.comment.Reply;
import com.yizhuan.xchat_android_core.community.bean.comment.ReplyResult;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import com.yizhuan.xchat_android_library.utils.ListUtils;
@@ -44,6 +45,8 @@ public class Comment {
private String cacheNextReplyId;
private UserVipInfo userVipInfoVO;
public boolean isEmptyReply() {
return replyInfo == null || ListUtils.isListEmpty(replyInfo.getReplyList());
}

View File

@@ -5,6 +5,7 @@ import android.text.TextUtils;
import com.yizhuan.xchat_android_core.user.bean.BaseUserInfo;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import java.io.Serializable;
import java.util.ArrayList;

View File

@@ -1,5 +1,7 @@
package com.yizhuan.xchat_android_core.community.bean.comment;
import com.yizhuan.xchat_android_core.vip.UserVipInfo;
import lombok.Data;
/**
@@ -30,5 +32,7 @@ public class Reply {
private int replyCount;
private UserVipInfo userVipInfoVO;
}