1.坑位刷新逻辑优化(头饰闪烁问题)
2.修复看不到旧版本头饰的问题(相亲之前的版本)
This commit is contained in:
@@ -40,6 +40,7 @@ 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.ActivityUtil;
|
||||
import com.yizhuan.xchat_android_core.utils.LogUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.CommonUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
@@ -58,11 +59,10 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
private OnMicroItemClickListener onMicroItemClickListener;
|
||||
|
||||
protected Context context;
|
||||
private int mTagHeight;
|
||||
|
||||
public BaseMicroViewAdapter(Context context) {
|
||||
this.context = context;
|
||||
mTagHeight = context.getResources().getDimensionPixelOffset(R.dimen.tag_height);
|
||||
setHasStableIds(true);
|
||||
}
|
||||
|
||||
public void setOnMicroItemClickListener(OnMicroItemClickListener onMicroItemClickListener) {
|
||||
@@ -152,18 +152,10 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
this.position = position;
|
||||
RoomMicInfo roomMicInfo = info.mRoomMicInfo;
|
||||
MicMemberInfo chatRoomMember = info.mChatRoomMember;
|
||||
// 清除动画
|
||||
ivHalo.setBackground(null);
|
||||
ivHalo.clearAnimation();
|
||||
// 清除头饰
|
||||
ivHeadWear.setImageDrawable(null);
|
||||
ivHeadWear.clearAnimation();
|
||||
if (ivCharmLevelTag != null) {
|
||||
ivCharmLevelTag.setVisibility(View.GONE);
|
||||
}
|
||||
GlideApp.with(context).clear(ivHeadWear);
|
||||
//设置一个tag,用于解决第一次进房间,空坑位显示头饰的问题
|
||||
ivHeadWear.setTag(R.id.mic_item_head_wear, null);
|
||||
|
||||
if (roomMicInfo == null) {
|
||||
ivUpImage.setVisibility(View.VISIBLE);
|
||||
ivLockImage.setVisibility(View.GONE);
|
||||
@@ -174,9 +166,9 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//显示,先展示人,无视坑的锁
|
||||
if (chatRoomMember != null) {
|
||||
LogUtils.d(chatRoomMember.toString());
|
||||
ivLockImage.setVisibility(View.GONE);
|
||||
ivMuteImage.setVisibility(roomMicInfo.isMicMute() ? View.VISIBLE : View.GONE);
|
||||
|
||||
@@ -188,12 +180,21 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
// 加载贵族
|
||||
updateNobleView(chatRoomMember);
|
||||
} else {
|
||||
ivHeadWear.setVisibility(View.GONE);
|
||||
ivUpImage.setVisibility(View.VISIBLE);
|
||||
ivAvatar.setVisibility(View.GONE);
|
||||
ivCharmLevelTag.setVisibility(View.GONE);
|
||||
setDefalutText(position);
|
||||
}
|
||||
} else {
|
||||
// 清除动画
|
||||
ivHalo.setBackground(null);
|
||||
ivHalo.clearAnimation();
|
||||
// 清除头饰
|
||||
GlideApp.with(context).clear(ivHeadWear);
|
||||
ivHeadWear.clearAnimation();
|
||||
ivHeadWear.setImageDrawable(null);
|
||||
ivHeadWear.setVisibility(View.GONE);
|
||||
//锁坑
|
||||
ivMuteImage.setVisibility(roomMicInfo.isMicMute() ? View.VISIBLE : View.GONE);
|
||||
if (roomMicInfo.isMicLock()) {
|
||||
@@ -250,14 +251,20 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
String nobleHeadWear = (String) NobleUtil.getResource(NobleResourceType.KEY_HEAD_WEAR, chatRoomMember);
|
||||
if (!TextUtils.isEmpty(headWear)) {
|
||||
// 头饰
|
||||
ivHeadWear.setVisibility(View.VISIBLE);
|
||||
ivHeadWear.setTag(R.id.mic_item_head_wear, headWear);
|
||||
NobleUtil.loadMicHeadWear(headWear, ivHeadWear, R.id.mic_item_head_wear, headWear);
|
||||
//只有头饰发生改变才更新,防止闪烁
|
||||
if (!headWear.equals(ivHeadWear.getTag(R.id.mic_item_head_wear))) {
|
||||
ivHeadWear.setTag(R.id.mic_item_head_wear, headWear);
|
||||
NobleUtil.loadMicHeadWear(headWear, ivHeadWear, R.id.mic_item_head_wear, headWear);
|
||||
}
|
||||
} else if (!TextUtils.isEmpty(nobleHeadWear)) {
|
||||
// 头饰
|
||||
ivHeadWear.setVisibility(View.VISIBLE);
|
||||
NobleUtil.loadResource(nobleHeadWear, ivHeadWear);
|
||||
}
|
||||
else {
|
||||
ivHeadWear.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -270,6 +270,7 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
JsonObject valueJsonObj = jsonParser.parse(entry.value).getAsJsonObject();
|
||||
if (valueJsonObj != null) {
|
||||
chatRoomMember = mGson.fromJson(valueJsonObj,MicMemberInfo.class);
|
||||
accounts.add(chatRoomMember.getAccount());
|
||||
roomQueueInfo.mChatRoomMember = chatRoomMember;
|
||||
}
|
||||
AvRoomDataManager.get().mMicQueueMemberMap.put(Integer.valueOf(entry.key), roomQueueInfo);
|
||||
|
@@ -6,12 +6,13 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* Created by
|
||||
* on 2017/10/25.
|
||||
*/
|
||||
|
||||
@ToString
|
||||
@Data
|
||||
public class MicMemberInfo {
|
||||
@SerializedName("uid")
|
||||
|
Reference in New Issue
Block a user