房间铭牌bugfix

This commit is contained in:
oujunhui
2020-05-26 16:47:19 +08:00
parent 9ed7f5f68c
commit 1f0cf1e274
17 changed files with 168 additions and 54 deletions

View File

@@ -321,7 +321,7 @@ public class MicroViewAdapter extends BaseMicroViewAdapter {
if (!TextUtils.isEmpty(fixedWord) && !TextUtils.isEmpty(iconPic)) {
inOfficialMask.setVisibility(View.VISIBLE);
tvOfficialMask.setText(fixedWord);
ImageLoadUtils.loadImage(context,iconPic, ivOfficialMask);
NobleUtil.loadResource(iconPic, ivOfficialMask);
} else {
inOfficialMask.setVisibility(View.GONE);

View File

@@ -188,6 +188,26 @@ public class OnlineUserAdapter extends BaseMultiItemQuickAdapter<OnlineChatMembe
inOfficialMask.setVisibility(View.GONE);
}
// 铭牌
String namePlateWord = NobleUtil.getLevel(UserInfo.NAMEPLATE_WORD, onlineChatMember.chatRoomMember);
String namePlatePic = NobleUtil.getLevel(UserInfo.NAMEPLATE_PIC, onlineChatMember.chatRoomMember);
View inNamePlate = baseViewHolder.getView(R.id.in_nameplate);
if (!TextUtils.isEmpty(namePlateWord) && !TextUtils.isEmpty(namePlatePic)) {
inNamePlate.setVisibility(View.VISIBLE);
TextView tvOfficialMask = inNamePlate.findViewById(R.id.tv_official_mask);
if (tvOfficialMask != null) {
tvOfficialMask.setText(namePlateWord);
}
ImageView ivOfficialMask = inNamePlate.findViewById(R.id.iv_official_mask);
if (ivOfficialMask != null) {
ImageLoadUtils.loadImage(mContext, namePlatePic, ivOfficialMask);
}
} else {
inOfficialMask.setVisibility(View.GONE);
}
AppCompatImageView ivUserLevel = baseViewHolder.getView(R.id.iv_noble_level);
String resource = (String) NobleUtil.getResource(NobleResourceType.KEY_BADGE, onlineChatMember.chatRoomMember);
if (TextUtils.isEmpty(resource)) {

View File

@@ -71,7 +71,7 @@ public class RoomContributeFragment extends BaseMvpFragment<IRoomContributeListV
@Override
public void onSetListener() {
mRefreshLayout.setEnableLoadmore(false);
mRefreshLayout.setEnableLoadmore(true);
mRefreshLayout.setOnRefreshLoadmoreListener(new OnRefreshLoadmoreListener() {
@Override
public void onLoadmore(RefreshLayout refreshLayout) {

View File

@@ -1563,14 +1563,23 @@ public class MessageView extends FrameLayout {
// 官方主播认证
String tvOfficialMask = NobleUtil.getLevel(UserInfo.OAC_NAME, chatRoomMessage);
String ivOfficialMask = NobleUtil.getLevel(UserInfo.OAC_ICON, chatRoomMessage);
if (!TextUtils.isEmpty(tvOfficialMask) && !TextUtils.isEmpty(ivOfficialMask)) { // extension != null 表示自己
text.appendBgAndContent(ivOfficialMask, tvOfficialMask, SizeUtils.dp2px(tvContent.getContext(), 62),
if (!TextUtils.isEmpty(tvOfficialMask) && !TextUtils.isEmpty(ivOfficialMask) && extension != null) { // extension != null 表示自己
text.appendBgAndContent(ivOfficialMask, tvOfficialMask, SizeUtils.dp2px(tvContent.getContext(), 59),
SizeUtils.dp2px(tvContent.getContext(), 15));
}
text.append(userLevel, expLevelWidth, expLevelHeight)
.append(extension == null ? "" : RegexUtil.getPrintableString(extension.getSenderNick()), new ForegroundColorSpan(greyColor))
.append("" + chatRoomMessage.getContent(), new ForegroundColorSpan(getResources().getColor(R.color.white)));
//等级
text.append(userLevel, expLevelWidth, expLevelHeight);
//铭牌
String tvNamePlate = NobleUtil.getNamePlate(UserInfo.NAMEPLATE_WORD, chatRoomMessage);
String ivNamePlate = NobleUtil.getNamePlate(UserInfo.NAMEPLATE_PIC, chatRoomMessage);
if (!TextUtils.isEmpty(tvNamePlate) && !TextUtils.isEmpty(ivNamePlate)) { // extension != null 表示自己
text.appendBgAndContent(ivNamePlate, tvNamePlate, SizeUtils.dp2px(tvContent.getContext(), 62),
SizeUtils.dp2px(tvContent.getContext(), 15));
}
text.append(extension == null ? "" : RegexUtil.getPrintableString(extension.getSenderNick()), new ForegroundColorSpan(greyColor))
.append("" + chatRoomMessage.getContent(), new ForegroundColorSpan(getResources().getColor(R.color.white)))
;
tvContent.setText(text.build());
}
@@ -2155,12 +2164,19 @@ public class MessageView extends FrameLayout {
String tvOfficialMask = NobleUtil.getLevel(UserInfo.OAC_NAME, chatRoomMessage);
String ivOfficialMask = NobleUtil.getLevel(UserInfo.OAC_ICON, chatRoomMessage);
if (!TextUtils.isEmpty(tvOfficialMask) && !TextUtils.isEmpty(ivOfficialMask) && extension != null) { // extension != null 表示自己
text.appendBgAndContent(ivOfficialMask, tvOfficialMask, SizeUtils.dp2px(tvContent.getContext(), 62),
text.appendBgAndContent(ivOfficialMask, tvOfficialMask, SizeUtils.dp2px(tvContent.getContext(), 59),
SizeUtils.dp2px(tvContent.getContext(), 15));
}
text.append(userLevel, expLevelWidth, expLevelHeight)
.append(extension == null ? "" : RegexUtil.getPrintableString(extension.getSenderNick()),
text.append(userLevel, expLevelWidth, expLevelHeight);
String tvNamePlate = NobleUtil.getNamePlate(UserInfo.NAMEPLATE_WORD, chatRoomMessage);
String ivNamePlate = NobleUtil.getNamePlate(UserInfo.NAMEPLATE_PIC, chatRoomMessage);
if (!TextUtils.isEmpty(tvNamePlate) && !TextUtils.isEmpty(ivNamePlate)) { // extension != null 表示自己
text.appendBgAndContent(ivNamePlate, tvNamePlate, SizeUtils.dp2px(tvContent.getContext(), 62),
SizeUtils.dp2px(tvContent.getContext(), 15));
}
text.append(extension == null ? "" : RegexUtil.getPrintableString(extension.getSenderNick()),
new ForegroundColorSpan(greyColor),
new OriginalDrawStatusClickSpan() {
@Override

View File

@@ -84,7 +84,7 @@ public class HomePlayAdapter extends BaseQuickAdapter<HomePlayInfo, BaseViewHold
.error(R.drawable.ic_home_play_empty)
.into(userFive);
helper.getView(R.id.ll_join).setOnClickListener(v -> AVRoomActivity.start(mContext,item.getUid()));
helper.getView(R.id.root_view).setOnClickListener(v -> AVRoomActivity.start(mContext,item.getUid()));
}
}

View File

@@ -243,9 +243,11 @@ public class GameHomeFragment extends BaseMvpFragment<IMainFragmentView, MainFra
public void run() {
int position = mBinding.llIndicator.getTop();
mBinding.stickyScrollView.scrollTo(0,position);//ScreenUtil.dip2px(100)
mBinding.magicIndicatorBottom.onPageSelected(InitialModel.get().getDefaultHomeTab());
mBinding.viewPagerBottom.setCurrentItem(InitialModel.get().getDefaultHomeTab());
// mBinding.rvFollowRoom.setVisibility(View.VISIBLE);
}
}, 2000);
}, 1800);
mBinding.rvFollowRoom.setVisibility(View.VISIBLE);
}
@@ -277,16 +279,16 @@ public class GameHomeFragment extends BaseMvpFragment<IMainFragmentView, MainFra
*/
private void initTitleTab() {
List<Integer> fragmentPos = new ArrayList<>();
fragmentPos.add(TAB_TYPE_DYNAMIC);
fragmentPos.add(TAB_TYPE_PLAY);
fragmentPos.add(TAB_TYPE_DYNAMIC);
List<String> tagList = new ArrayList<>();
mFragmentsBottom = new ArrayList<>();
tagList.add(getResources().getString(R.string.home_tab_dynamic));
tagList.add(getResources().getString(R.string.home_tab_caht));
tagList.add(getResources().getString(R.string.home_tab_dynamic));
mFragmentsBottom.add(HomeDynamicFragment.newInstance());
mFragmentsBottom.add(HomePlayFragment.newInstance());
mFragmentsBottom.add(HomeDynamicFragment.newInstance());
CommonNavigator commonNavigator = new CommonNavigator(getContext());
MainMagicIndicatorAdapter magicIndicatorAdapter = new MainMagicIndicatorAdapter(getContext(), tagList, false);
@@ -300,11 +302,10 @@ public class GameHomeFragment extends BaseMvpFragment<IMainFragmentView, MainFra
mBinding.viewPagerBottom.addOnPageChangeListener(new OnPageSelectedListener() {
@Override
public void onPageSelected(int position) {
}
});
mBinding.magicIndicatorBottom.onPageSelected(InitialModel.get().getDefaultHomeTab());
mBinding.viewPagerBottom.setCurrentItem(InitialModel.get().getDefaultHomeTab());
ViewPagerHelper.bind(mBinding.magicIndicatorBottom, mBinding.viewPagerBottom);
scrollToView();

View File

@@ -21,6 +21,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.flexbox.FlexboxLayout;
import com.netease.nim.uikit.common.util.media.ImageUtil;
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
@@ -73,6 +74,7 @@ import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
import com.yizhuan.xchat_android_library.utils.ImageUtils;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
@@ -123,6 +125,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
private AppCompatImageView ivNewUser;
private AppCompatImageView mIvGoodNumber;
private AppCompatImageView mIvUserLevel;
private AppCompatImageView ivNamePlateView;
private AppCompatImageView mIvUserCharm;
private LinearLayout llFamily;
private TextView tvFamilyNameLabel;
@@ -130,6 +133,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
private FlexboxLayout flexbox;
private View inOfficialMask;
private View inNamePlate;
private long myUid;
private Disposable subscribe;
@@ -186,6 +190,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
flexbox = findViewById(R.id.flexbox);
inOfficialMask = findViewById(R.id.in_official_mask);
inNamePlate = findViewById(R.id.in_nameplate);
ivAvatarHeadWear = findViewById(R.id.iv_avatar_head_wear);
ivBadge = findViewById(R.id.iv_badge);
@@ -471,11 +476,18 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
ImageLoadUtils.loadImage(context, userLevelVo.getCharmUrl(), mIvUserCharm);
}
}
//铭牌
if (!TextUtils.isEmpty(userInfo.getNameplatePic()) && !TextUtils.isEmpty(userInfo.getNameplateWord())){
setNamePlate(userInfo.getNameplatePic(),userInfo.getNameplateWord());
}else {
setNamePlate(null,null);
}
// 改变贵族
updateNobleView();
if (!TextUtils.isEmpty(userInfo.getNameplateWord()) && !TextUtils.isEmpty(userInfo.getNameplatePic())) {
setOfficialMask(userInfo.getNameplateWord(), userInfo.getNameplatePic());
UserInfo.NamePlate namePlate = userInfo.getNameplate();
if (namePlate != null) {
setOfficialMask(namePlate.getFixedWord(), namePlate.getIconPic());
} else {
setOfficialMask(null, null);
}
@@ -528,6 +540,27 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
}
}
private void setNamePlate(String nameplatePic, String nameplateWord) {
if (!TextUtils.isEmpty(nameplateWord) && !TextUtils.isEmpty(nameplatePic)) {
inNamePlate.setVisibility(View.VISIBLE);
inNamePlate.setVisibility(View.VISIBLE);
TextView tvNamePlate;
tvNamePlate = inNamePlate.findViewById(R.id.tv_official_mask);
if (tvNamePlate != null) {
tvNamePlate.setText(nameplateWord);
}
ImageView ivNamePlate;
ivNamePlate = inNamePlate.findViewById(R.id.iv_official_mask);
if (ivNamePlate != null) {
ImageLoadUtils.loadImage(context,nameplatePic, ivNamePlate);
}
} else {
inNamePlate.setVisibility(View.GONE);
}
}
private void setOfficialMask(String name, String icon) {
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(icon)) {
inOfficialMask.setVisibility(View.VISIBLE);
@@ -541,7 +574,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
ImageView ivOfficialMask;
ivOfficialMask = inOfficialMask.findViewById(R.id.iv_official_mask);
if (ivOfficialMask != null) {
ImageLoadUtils.loadImage(context, userInfo.getNameplatePic(), ivOfficialMask);
NobleUtil.loadResource(icon, ivOfficialMask);
}
} else {

View File

@@ -119,7 +119,14 @@
tools:src="@mipmap/ic_user_level_king"
tools:visibility="visible" />
<include
android:id="@+id/in_official_mask"
layout="@layout/layout_official_mask"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_15"
android:layout_gravity="center"
android:layout_marginEnd="5.5dp"
android:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_user_level"
@@ -142,34 +149,15 @@
android:visibility="gone"
tools:src="@mipmap/ic_user_level"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_user_nameplate"
android:layout_width="wrap_content"
android:layout_marginEnd="@dimen/dp_3"
android:layout_height="@dimen/dp_15"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:visibility="gone"
tools:src="@mipmap/ic_user_level"
tools:visibility="visible" />
<LinearLayout
<include
android:id="@+id/in_nameplate"
layout="@layout/layout_official_mask"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_15"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
>
<include
android:id="@+id/in_official_mask"
layout="@layout/layout_official_mask"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible" />
</LinearLayout>
android:layout_gravity="center"
android:layout_marginEnd="5.5dp"
android:visibility="visible" />
</LinearLayout>

View File

@@ -10,6 +10,7 @@
android:paddingStart="@dimen/dp_15"
android:paddingBottom="@dimen/dp_15"
android:paddingEnd="@dimen/dp_15"
android:id="@+id/root_view"
android:background="@drawable/bg_corner_shadow_12">

View File

@@ -108,11 +108,23 @@
android:id="@+id/iv_user_charm"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_15"
android:layout_marginEnd="5.5dp"
android:adjustViewBounds="true"
tools:src="@mipmap/ic_user_level"
android:visibility="visible"
tools:visibility="visible" />
<include
android:id="@+id/in_nameplate"
layout="@layout/layout_official_mask"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_15"
android:layout_gravity="center"
android:layout_marginEnd="5.5dp"
android:layout_toEndOf="@id/noble_avatar_view"
android:visibility="gone"
tools:visibility="visible" />
</LinearLayout>

View File

@@ -10,7 +10,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_F9F9F9"
android:paddingBottom="@dimen/dp_60"/>
android:paddingBottom="@dimen/dp_50"/>
</com.yizhuan.erban.common.widget.StatusLayout>

View File

@@ -51,6 +51,7 @@ import com.yizhuan.xchat_android_core.bean.attachmsg.RoomQueueMsgAttachment;
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo;
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
import com.yizhuan.xchat_android_core.decoration.nameplate.bean.NamePlateInfo;
import com.yizhuan.xchat_android_core.exception.ErrorThrowable;
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
import com.yizhuan.xchat_android_core.family.event.FamilyMineEvent;
@@ -400,6 +401,17 @@ public final class IMNetEaseManager {
}, true);
}
public Map<String, Object> toMap(Map<String, Object> map, String namePlateWord,String namePlatePic) {
if (map == null) {
map = new HashMap<>();
}
map.put(UserInfo.NAMEPLATE_WORD, namePlateWord);
map.put(UserInfo.NAMEPLATE_PIC, namePlatePic);
return map;
}
/**
* 更新本人在聊天室内的信息
*/
@@ -435,6 +447,9 @@ public final class IMNetEaseManager {
if (headWearInfo != null && headWearInfo.getStatus() == HeadWearInfo.STATUS_IN_USED) {
valueMap = headWearInfo.toMap(valueMap);
}
valueMap = toMap(valueMap,userInfo.getNameplateWord(),userInfo.getNameplatePic());
if (valueMap != null && valueMap.size() > 0) {
map.put(String.valueOf(userInfo.getUid()), valueMap);
}

View File

@@ -1,6 +1,11 @@
package com.yizhuan.xchat_android_core.decoration.nameplate.bean;
import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class NamePlateInfo {

View File

@@ -724,6 +724,12 @@ public class NobleUtil {
return extension.get(type).toString();
}
public static String getNamePlate(String type, ChatRoomMessage chatRoomMessage) {
Map<String, Object> extension = ExtensionUtil.getExtension(chatRoomMessage, ExtensionUtil.getAccount(chatRoomMessage));
if (extension == null || extension.get(type) == null) return "";
return extension.get(type).toString();
}
/**
* 是否为官方
*

View File

@@ -98,6 +98,18 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
return instance;
}
private Map<String, Object> toMap(Map<String, Object> map, String namePlateWord, String namePlatePic) {
if (map == null) {
map = new HashMap<>();
}
map.put(UserInfo.NAMEPLATE_WORD, namePlateWord);
map.put(UserInfo.NAMEPLATE_PIC, namePlatePic);
return map;
}
/**
* 进入云信聊天室
*
@@ -127,6 +139,9 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
if (carInfo != null) {
valueMap = carInfo.toMap(valueMap, carInfo);
}
valueMap = toMap(valueMap,userInfo.getNameplateWord(),userInfo.getNameplatePic());
//多个判断头饰不过期才传pic
if (headWearInfo != null && headWearInfo.getStatus() == HeadWearInfo.STATUS_IN_USED) {
valueMap = headWearInfo.toMap(valueMap);

View File

@@ -269,6 +269,8 @@ public class UserInfo implements Serializable {
public static String HAS_PRETTY = "hasPrettyErbanNo";
public static String OAC_NAME = "officialAnchorCertificationName";
public static String OAC_ICON = "officialAnchorCertificationIcon";
public static String NAMEPLATE_WORD = "inRoomNameplateWord";
public static String NAMEPLATE_PIC= "inRoomNameplatePic";
@Getter
@Setter
@@ -548,9 +550,9 @@ public class UserInfo implements Serializable {
map.put(HAS_PRETTY, userInfo.isHasPrettyErbanNo());
// 官方认证文本,图标
if (!TextUtils.isEmpty(userInfo.getNameplateWord()) && !TextUtils.isEmpty(userInfo.getNameplatePic())) {
map.put(OAC_NAME, userInfo.getNameplateWord());
map.put(OAC_ICON, userInfo.getNameplatePic());
if (userInfo.getNameplate() != null) {
map.put(OAC_NAME, userInfo.getNameplate().getFixedWord());
map.put(OAC_ICON, userInfo.getNameplate().getIconPic());
} else {
map.put(OAC_NAME, "");
map.put(OAC_ICON, "");

View File

@@ -21,5 +21,5 @@ with_jenkins=false
#\u6253\u652F\u6301x86\u7684\u6A21\u62DF\u5668\u5305\u4F7F\u7528
ndk_abi_filters=arm
version_name=1.0.1
version_code=101
version_name=1.0.3
version_code=103