直播间消息列表
This commit is contained in:
@@ -1,351 +0,0 @@
|
||||
package com.yunbao.main.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.yunbao.common.bean.MainMessageChatListTimer;
|
||||
import com.yunbao.common.dialog.DebugDialog;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnRecyclerListRefreshListener;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.message.content.MessageChatCardContent;
|
||||
import com.yunbao.common.utils.AppManager;
|
||||
import com.yunbao.common.utils.DateFormatUtil;
|
||||
import com.yunbao.common.utils.ListUtils;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.ViewUtils;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.main.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.rong.imkit.IMCenter;
|
||||
import io.rong.imkit.conversationlist.ConversationListAdapter;
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.conversationlist.model.SingleConversation;
|
||||
import io.rong.imkit.utils.RouteUtils;
|
||||
import io.rong.imkit.widget.adapter.ViewHolder;
|
||||
import io.rong.imkit.widget.refresh.listener.OnRefreshListener;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.Message;
|
||||
import io.rong.imlib.model.MessageContent;
|
||||
import io.rong.message.TextMessage;
|
||||
|
||||
public class MainConversationListAdapter extends ConversationListAdapter {
|
||||
public static final int TYPE_SEARCH_TITLE = 500;
|
||||
public static final int TYPE_SEARCH_USER = 510;
|
||||
public static final int TYPE_SEARCH_CHAT = 520;
|
||||
private List<BaseUiConversation> srcList;
|
||||
private Context mContext;
|
||||
private boolean isChat = true;
|
||||
private OnRecyclerListRefreshListener<List<BaseUiConversation>> onRefreshListener;
|
||||
private Map<String, Integer> timerMap = new HashMap<>();
|
||||
|
||||
public MainConversationListAdapter(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
}
|
||||
|
||||
public void setOnRefreshListener(OnRecyclerListRefreshListener<List<BaseUiConversation>> onRefreshListener) {
|
||||
this.onRefreshListener = onRefreshListener;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
ViewHolder holder = null;
|
||||
if (mContext == null) {
|
||||
mContext = parent.getContext();
|
||||
}
|
||||
if (viewType == TYPE_SEARCH_TITLE) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_title, parent, false);
|
||||
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
||||
} else if (viewType == TYPE_SEARCH_USER) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_user, parent, false);
|
||||
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
||||
} else if (viewType == TYPE_SEARCH_CHAT) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_chat, parent, false);
|
||||
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
||||
} else if (viewType != -200) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rc_conversationlist_item, parent, false);
|
||||
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
||||
} else {
|
||||
holder = super.onCreateViewHolder(parent, viewType);
|
||||
}
|
||||
return holder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
int type = super.getItemViewType(position);
|
||||
if (mDataList.size() > position) {
|
||||
String objectName = mDataList.get(position).mCore.getObjectName();
|
||||
if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_USER")) {
|
||||
type = TYPE_SEARCH_USER;
|
||||
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_CHAT")) {
|
||||
type = TYPE_SEARCH_CHAT;
|
||||
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_TITLE")) {
|
||||
type = TYPE_SEARCH_TITLE;
|
||||
}
|
||||
} else if (mDataList.isEmpty() || isEmpty() || srcList.isEmpty()) {
|
||||
type = -200;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
if (isEmpty() || mDataList.isEmpty()) {
|
||||
bindEmpty(holder, position);
|
||||
return;
|
||||
}
|
||||
if (getItemViewType(position) == TYPE_SEARCH_USER) {
|
||||
bindUser(holder, position);
|
||||
} else if (getItemViewType(position) == TYPE_SEARCH_CHAT) {
|
||||
bindChat(holder, position);
|
||||
} else if (getItemViewType(position) == TYPE_SEARCH_TITLE) {
|
||||
bindTitle(holder, position);
|
||||
} else if (getItemViewType(position) != -200) {
|
||||
super.onBindViewHolder(holder, position);
|
||||
}
|
||||
if (getItemViewType(position) != -200) {
|
||||
bindDefault(holder, position);
|
||||
}
|
||||
}
|
||||
|
||||
private void bindDefault(ViewHolder holder, int position) {
|
||||
BaseUiConversation conversation = mDataList.get(position);
|
||||
Log.i("列表", "bindDefault: 用户头像:" + conversation.mCore.getPortraitUrl());
|
||||
Log.i("列表", "bindDefault: 用户名字:" + conversation.mCore.getConversationTitle());
|
||||
ImgLoader.display(holder.getContext(), conversation.mCore.getPortraitUrl(), holder.getView(R.id.rc_conversation_portrait));
|
||||
holder.setText(R.id.rc_conversation_title, conversation.mCore.getConversationTitle());
|
||||
if (conversation.mCore.getSentTime() != -1 && holder.getView(R.id.rc_conversation_date) != null) {
|
||||
holder.setText(R.id.rc_conversation_date, DateFormatUtil.getDateTimeString(conversation.mCore.getSentTime(), true, holder.getContext()));
|
||||
holder.getView(R.id.rc_conversation_date).setVisibility(View.VISIBLE);
|
||||
} else if (holder.getView(R.id.rc_conversation_date) != null) {
|
||||
holder.getView(R.id.rc_conversation_date).setVisibility(View.GONE);
|
||||
}
|
||||
if (holder.getView(R.id.rc_conversation_live_status) == null || IMLoginManager.get(holder.getContext()).getAnchorB() != 1) {
|
||||
return;
|
||||
}
|
||||
Integer timer = timerMap.get(mDataList.get(position).mCore.getTargetId());
|
||||
if (timer == null) {
|
||||
holder.getView(R.id.rc_conversation_live_status).setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
if (timer >= 10) {
|
||||
holder.setText(R.id.rc_conversation_live_status,
|
||||
String.format(WordUtil.getNewString(R.string.message_chat_msg_look_live), timer)
|
||||
);
|
||||
holder.getView(R.id.rc_conversation_live_status).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.getView(R.id.rc_conversation_live_status).setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void bindEmpty(ViewHolder holder, int position) {
|
||||
if (isChat) {
|
||||
ViewUtils.findViewById(holder.itemView, R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_message_not_chat_list);
|
||||
ViewUtils.findViewById(holder.itemView, R.id.textView, TextView.class).setText(R.string.not_data_message_chat_list);
|
||||
} else {
|
||||
ViewUtils.findViewById(holder.itemView, R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_message_not_search);
|
||||
ViewUtils.findViewById(holder.itemView, R.id.textView, TextView.class).setText(R.string.not_data_message_chat_list_search);
|
||||
}
|
||||
}
|
||||
|
||||
public void onFinish() {
|
||||
if (onRefreshListener != null) {
|
||||
Log.i("聊天数据源", "设置数据源: " + mDataList.size());
|
||||
onRefreshListener.onFinish(mDataList);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDataCollection(List<BaseUiConversation> data) {
|
||||
List<BaseUiConversation> tmp = new ArrayList<>();
|
||||
Log.i("聊天数据源", "setDataCollection: " + data.hashCode());
|
||||
List<String> urls = new ArrayList<>();
|
||||
if (srcList == null) {
|
||||
srcList = new ArrayList<>();
|
||||
}
|
||||
mDataList.clear();
|
||||
if (mContext == null)
|
||||
mContext = AppManager.getInstance().getLastActivity();
|
||||
for (BaseUiConversation item : data) {
|
||||
if (urls.contains(item.mCore.getTargetId())) continue;
|
||||
if (item.mConversationContent != null && item.mConversationContent.toString().contains("_method_")) {
|
||||
IMCenter.getInstance().deleteMessages(Conversation.ConversationType.PRIVATE,
|
||||
item.mCore.getTargetId(),
|
||||
new int[]{item.mCore.getLatestMessageId()},
|
||||
new RongIMClient.ResultCallback<Boolean>() {
|
||||
public void onSuccess(Boolean aBoolean) {
|
||||
Log.i("PDMessageInterceptor", "onSuccess: 删除成功:" + aBoolean + " " + item.mCore.getLatestMessageId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ErrorCode errorCode) {
|
||||
Log.i("PDMessageInterceptor", "onSuccess: 删除失败:" + errorCode);
|
||||
}
|
||||
}
|
||||
);
|
||||
IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, item.mCore.getTargetId(), null);
|
||||
}
|
||||
urls.add(item.mCore.getTargetId());
|
||||
Log.i("聊天数据源", item.mCore.getConversationTitle() + "|" + item.mCore.getPortraitUrl() + "|" + item.mCore.getTargetId());
|
||||
BaseUiConversation cn = new SingleConversation(mContext, item.mCore);
|
||||
srcList.add(cn);
|
||||
|
||||
if (item.mCore.getConversationType() == Conversation.ConversationType.PRIVATE) {
|
||||
if (item.mCore.getLatestMessage() instanceof MessageChatCardContent) {
|
||||
item.mConversationContent = new SpannableString(WordUtil.getNewString(R.string.activity_msg_chat_list_card));
|
||||
}
|
||||
}
|
||||
tmp.add(item);
|
||||
}
|
||||
// ToastUtil.showDebug("消息数:"+data.size());
|
||||
super.setDataCollection(tmp);
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
mDataList.clear();
|
||||
if (srcList != null) {
|
||||
srcList.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public List<BaseUiConversation> getSrcList() {
|
||||
if (srcList == null) {
|
||||
srcList = new ArrayList<>();
|
||||
}
|
||||
return srcList;
|
||||
}
|
||||
|
||||
private void bindTitle(ViewHolder holder, int position) {
|
||||
holder.setText(R.id.title, mDataList.get(position).mCore.getObjectName().replace("SEARCH_TITLE", ""));
|
||||
}
|
||||
|
||||
|
||||
private void bindUser(ViewHolder holder, int position) {
|
||||
ImgLoader.display(holder.getContext(), mDataList.get(position).mCore.getPortraitUrl(), holder.getView(R.id.rc_conversation_portrait));
|
||||
String title = mDataList.get(position).mCore.getConversationTitle();
|
||||
String key = mDataList.get(position).mCore.getObjectName().replace("SEARCH_USER", "");
|
||||
title = title.replace(key, "<font color='#FF4874'>" + key + "</font>");
|
||||
Spanned spanned = Html.fromHtml(title);
|
||||
((TextView) holder.getView(R.id.rc_conversation_title)).setText(spanned);
|
||||
int type = mDataList.get(position).mCore.getMentionedCount();
|
||||
holder.getView(R.id.itemDecorationTop).setVisibility(View.GONE);
|
||||
holder.getView(R.id.itemDecorationBottom).setVisibility(View.GONE);
|
||||
if (type == 1) {
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item_top);
|
||||
holder.getView(R.id.itemDecorationBottom).setVisibility(View.VISIBLE);
|
||||
} else if (type == 2) {
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item_bottom);
|
||||
} else if (type == 3) {
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item);
|
||||
} else {
|
||||
holder.getView(R.id.itemDecorationBottom).setVisibility(View.VISIBLE);
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item_centre);
|
||||
}
|
||||
ViewClicksAntiShake.clicksAntiShake(holder.itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
RouteUtils.routeToConversationActivity(holder.itemView.getContext(), mDataList.get(position).mCore.getConversationType(), mDataList.get(position).mCore.getTargetId());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void bindChat(ViewHolder holder, int position) {
|
||||
ImgLoader.display(holder.getContext(), mDataList.get(position).mCore.getPortraitUrl(), holder.getView(R.id.rc_conversation_portrait));
|
||||
holder.setText(R.id.rc_conversation_title, mDataList.get(position).mCore.getConversationTitle());
|
||||
String title = mDataList.get(position).mConversationContent.toString();
|
||||
String key = mDataList.get(position).mCore.getObjectName().replace("SEARCH_CHAT", "");
|
||||
title = title.replace(key, "<font color='#FF4874'>" + key + "</font>");
|
||||
Spanned spanned = Html.fromHtml(WordUtil.getNewString(R.string.activity_msg_list_include) + title);
|
||||
((TextView) holder.getView(R.id.rc_conversation_content)).setText(spanned);
|
||||
int type = mDataList.get(position).mCore.getMentionedCount();
|
||||
holder.getView(R.id.itemDecorationTop).setVisibility(View.GONE);
|
||||
holder.getView(R.id.itemDecorationBottom).setVisibility(View.GONE);
|
||||
if (type == 1) {
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item_top);
|
||||
holder.getView(R.id.itemDecorationBottom).setVisibility(View.VISIBLE);
|
||||
} else if (type == 2) {
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item_bottom);
|
||||
} else if (type == 3) {
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item);
|
||||
} else {
|
||||
holder.getView(R.id.itemDecorationBottom).setVisibility(View.VISIBLE);
|
||||
holder.itemView.setBackgroundResource(R.drawable.bg_msg_list_item_centre);
|
||||
}
|
||||
ViewClicksAntiShake.clicksAntiShake(holder.itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
RouteUtils.routeToConversationActivity(holder.itemView.getContext(), mDataList.get(position).mCore.getConversationType(), mDataList.get(position).mCore.getTargetId());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setChat() {
|
||||
isChat = true;
|
||||
}
|
||||
|
||||
public void setSearch() {
|
||||
isChat = false;
|
||||
}
|
||||
|
||||
public void setTimerMap(Map<String, Integer> timerMap) {
|
||||
this.timerMap.putAll(timerMap);
|
||||
this.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public int getMessageId(String senderUserId) {
|
||||
for (int i = 0; i < mDataList.size(); i++) {
|
||||
if (mDataList.get(i).mCore.getTargetId().equals(senderUserId)) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public void update(Message bean, int id) {
|
||||
RongIMClient.getInstance().getUnreadCount(Conversation.ConversationType.PRIVATE, bean.getTargetId(), new RongIMClient.ResultCallback<Integer>() {
|
||||
@Override
|
||||
public void onSuccess(Integer integer) {
|
||||
BaseUiConversation conversation = mDataList.get(id);
|
||||
conversation.mCore.setSentTime(bean.getSentTime());
|
||||
conversation.mCore.setUnreadMessageCount(integer);
|
||||
conversation.mConversationContent = new SpannableString(((TextMessage) bean.getContent()).getContent());
|
||||
mDataList.set(id, conversation);
|
||||
notifyItemChanged(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ErrorCode e) {
|
||||
BaseUiConversation conversation = mDataList.get(id);
|
||||
conversation.mCore.setSentTime(bean.getSentTime());
|
||||
conversation.mConversationContent = new SpannableString(((TextMessage) bean.getContent()).getContent());
|
||||
mDataList.set(id, conversation);
|
||||
notifyItemChanged(id);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,144 +0,0 @@
|
||||
package com.yunbao.main.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.MainMessageChatListTimer;
|
||||
import com.yunbao.common.dialog.DebugDialog;
|
||||
import com.yunbao.common.event.MessageIMEvent;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnRecyclerListRefreshListener;
|
||||
import com.yunbao.common.manager.base.ACache;
|
||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||
import com.yunbao.common.utils.SpUtil;
|
||||
import com.yunbao.main.adapter.MainConversationListAdapter;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.widget.refresh.SmartRefreshLayout;
|
||||
import io.rong.imlib.RongCoreClient;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.Message;
|
||||
import io.rong.imlib.model.ReceivedProfile;
|
||||
import io.rong.message.TextMessage;
|
||||
|
||||
public abstract class AbsMainMessageChatListFragment extends Fragment {
|
||||
RecyclerView recyclerView;
|
||||
MainConversationListAdapter mAdapter;
|
||||
SmartRefreshLayout refreshLayout;
|
||||
|
||||
public void setAdapter(MainConversationListAdapter mAdapter) {
|
||||
this.mAdapter = mAdapter;
|
||||
}
|
||||
|
||||
|
||||
public abstract void onChatList();
|
||||
|
||||
public abstract void search(String string);
|
||||
|
||||
public abstract void updateList();
|
||||
|
||||
public void onTest() {
|
||||
}
|
||||
|
||||
public void onRefreshFinished() {
|
||||
if (refreshLayout != null) {
|
||||
refreshLayout.finishRefresh(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void onLoadMoreFinished() {
|
||||
if (refreshLayout != null) {
|
||||
refreshLayout.finishLoadMore(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
updateList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
private static long lastTime;
|
||||
private static boolean isNet = false;
|
||||
Map<String, BaseUiConversation> map = new HashMap<>();
|
||||
|
||||
public void loadLiveLookTime(List<BaseUiConversation> srcList, OnRecyclerListRefreshListener<Map<String, Integer>> onRefreshListener) {
|
||||
/* if (System.currentTimeMillis() - lastTime > 200 || isNet) {
|
||||
for (BaseUiConversation conversation : srcList) {
|
||||
if (map.containsKey(conversation.mCore.getTargetId())) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
lastTime = System.currentTimeMillis();
|
||||
isNet = true;
|
||||
List<String> uids = new ArrayList<>();
|
||||
for (BaseUiConversation conversation : srcList) {
|
||||
map.put(conversation.mCore.getTargetId(), conversation);
|
||||
if (conversation.mCore.getConversationType() == Conversation.ConversationType.PRIVATE) {
|
||||
uids.add(conversation.mCore.getTargetId());
|
||||
}
|
||||
}
|
||||
LiveNetManager.get(getContext())
|
||||
.getIsLook(String.join(",", uids), new HttpCallback<>() {
|
||||
@Override
|
||||
public void onSuccess(List<MainMessageChatListTimer> data) {
|
||||
Map<String, Integer> timerMap = new HashMap<>();
|
||||
for (MainMessageChatListTimer timer : data) {
|
||||
timerMap.put(timer.getUid(), timer.getTime());
|
||||
}
|
||||
onRefreshListener.onFinish(timerMap);
|
||||
isNet = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
isNet = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void sendMessage(io.rong.imlib.model.Message bean) {
|
||||
int id1 = mAdapter.getMessageId(bean.getSenderUserId());
|
||||
int id2 = mAdapter.getMessageId(bean.getTargetId());
|
||||
if (id1 != -1) {
|
||||
mAdapter.update(bean, id1);
|
||||
}
|
||||
if (id2 != -1) {
|
||||
mAdapter.update(bean, id2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,177 +0,0 @@
|
||||
package com.yunbao.main.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.adapter.MainConversationListAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.rong.common.rlog.RLog;
|
||||
import io.rong.imkit.conversationlist.ConversationListAdapter;
|
||||
import io.rong.imkit.conversationlist.ConversationListFragment;
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.conversationlist.model.SingleConversation;
|
||||
import io.rong.imkit.event.Event;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.SearchConversationResult;
|
||||
|
||||
public class MainMessageChatFragment extends ConversationListFragment {
|
||||
|
||||
private static final String TAG = "融云列表";
|
||||
int listHashCode = 0;
|
||||
|
||||
@Nullable
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
Log.i(TAG, "onCreateView: 创建融云");
|
||||
return inflater.inflate(R.layout.rc_conversationlist_fragment, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
Log.i(TAG, "onViewCreated:创建融云页面");
|
||||
mConversationListViewModel.getConversationListLiveData().observe(this.getViewLifecycleOwner(), new Observer<List<BaseUiConversation>>() {
|
||||
|
||||
|
||||
@Override
|
||||
public void onChanged(List<BaseUiConversation> uiConversations) {
|
||||
if (listHashCode != uiConversations.hashCode()) {
|
||||
listHashCode = uiConversations.hashCode();
|
||||
((MainConversationListAdapter) mAdapter).onFinish();
|
||||
}
|
||||
}
|
||||
});
|
||||
mConversationListViewModel.getRefreshEventLiveData().observe(this.getViewLifecycleOwner(), new Observer<Event.RefreshEvent>() {
|
||||
@Override
|
||||
public void onChanged(Event.RefreshEvent refreshEvent) {
|
||||
listHashCode = 0;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void setEmptyView(int viewLayoutMsgId) {
|
||||
super.setEmptyView(viewLayoutMsgId);
|
||||
}
|
||||
|
||||
public void setEmptyView(View view) {
|
||||
super.setEmptyView(view);
|
||||
}
|
||||
|
||||
|
||||
public void search(String search) {
|
||||
((MainConversationListAdapter) mAdapter).setSearch();
|
||||
getContactsList(search);
|
||||
}
|
||||
|
||||
public MainConversationListAdapter getAdapter() {
|
||||
return (MainConversationListAdapter) mAdapter;
|
||||
}
|
||||
|
||||
private void getContactsList(String search) {
|
||||
List<BaseUiConversation> list = new ArrayList<>();
|
||||
List<String> uidList = new ArrayList<>();
|
||||
|
||||
BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation());
|
||||
conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_contacts));
|
||||
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
|
||||
list.add(conversation);
|
||||
|
||||
List<BaseUiConversation> data = new ArrayList<>();
|
||||
System.err.println(" ----------------------->" + mAdapter.getData().size());
|
||||
for (BaseUiConversation cn : ((MainConversationListAdapter) mAdapter).getSrcList()) {
|
||||
System.err.println(" ----------------------->" + cn.mCore.getConversationTitle() + "|" + cn.mCore.getSenderUserName());
|
||||
if (StringUtil.isEmpty(cn.mCore.getConversationTitle())) continue;
|
||||
if (uidList.contains(cn.mCore.getTargetId())) continue;
|
||||
uidList.add(cn.mCore.getTargetId());
|
||||
if (cn.mCore.getConversationTitle().contains(search)) {
|
||||
conversation = new SingleConversation(getContext(), new Conversation());
|
||||
conversation.mCore.setObjectName("SEARCH_USER" + search);
|
||||
conversation.mCore.setConversationTitle(cn.mCore.getConversationTitle());
|
||||
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
|
||||
conversation.mCore.setPortraitUrl(cn.mCore.getPortraitUrl());
|
||||
conversation.mCore.setTargetId(cn.mCore.getTargetId());
|
||||
conversation.mCore.setSenderUserId(cn.mCore.getSenderUserId());
|
||||
data.add(conversation);
|
||||
}
|
||||
}
|
||||
if (data.size() == 1) {
|
||||
data.get(0).mCore.setMentionedCount(3);
|
||||
} else if (data.size() != 0) {
|
||||
data.get(0).mCore.setMentionedCount(1);
|
||||
data.get(data.size() - 1).mCore.setMentionedCount(2);
|
||||
} else {
|
||||
list.remove(list.size() - 1);
|
||||
}
|
||||
list.addAll(data);
|
||||
getChatRecordList(list, search);
|
||||
}
|
||||
|
||||
private void getChatRecordList(List<BaseUiConversation> list, String search) {
|
||||
Conversation.ConversationType[] conversationTypes = {Conversation.ConversationType.PRIVATE};
|
||||
String[] messageTypeObjectNames = {"RC:TxtMsg"};
|
||||
|
||||
RongIMClient.getInstance().searchConversations(search, conversationTypes, messageTypeObjectNames, new RongIMClient.ResultCallback<List<SearchConversationResult>>() {
|
||||
@Override
|
||||
public void onSuccess(List<SearchConversationResult> searchConversationResults) {
|
||||
BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation());
|
||||
conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_chat_records));
|
||||
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
|
||||
list.add(conversation);
|
||||
List<BaseUiConversation> data = new ArrayList<>();
|
||||
for (SearchConversationResult result : searchConversationResults) {
|
||||
BaseUiConversation cn = new SingleConversation(getContext(), result.getConversation());
|
||||
cn.mCore.setObjectName("SEARCH_CHAT" + search);
|
||||
data.add(cn);
|
||||
}
|
||||
if (data.size() == 1) {
|
||||
data.get(0).mCore.setMentionedCount(3);
|
||||
} else if (data.size() != 0) {
|
||||
data.get(0).mCore.setMentionedCount(1);
|
||||
data.get(data.size() - 1).mCore.setMentionedCount(2);
|
||||
} else {
|
||||
list.remove(list.size() - 1);
|
||||
}
|
||||
list.addAll(data);
|
||||
mAdapter.setDataCollection(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ErrorCode e) {
|
||||
ToastUtil.show("搜索出错了:" + e.getMessage());
|
||||
mAdapter.setDataCollection(list);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void onChatList() {
|
||||
if(mConversationListViewModel==null)return;
|
||||
((MainConversationListAdapter) mAdapter).setChat();
|
||||
((MainConversationListAdapter) mAdapter).clear();
|
||||
System.out.println(">!>!>!>!!>"+mConversationListViewModel);
|
||||
subscribeUi();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ConversationListAdapter onResolveAdapter() {
|
||||
this.mAdapter = new MainConversationListAdapter(getContext());
|
||||
return this.mAdapter;
|
||||
}
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package com.yunbao.main.fragment;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.yunbao.common.interfaces.OnRecyclerListRefreshListener;
|
||||
import com.yunbao.common.manager.InstructorRemarkManager;
|
||||
import com.yunbao.common.utils.AppManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.live.R;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
|
||||
public class MainMessageChatListFragment extends AbsMainMessageChatListFragment {
|
||||
private static final String TAG = "MainMessageChatListFragment";
|
||||
private Context mContext;
|
||||
|
||||
public MainMessageChatListFragment() {
|
||||
this.mContext = AppManager.getInstance().getMainActivity();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_main_message_chat_list, container, false);
|
||||
}
|
||||
|
||||
MainMessageChatFragment conversationListFragment;
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
Log.i(TAG, "onViewCreated: 准备创建融云");
|
||||
conversationListFragment = new MainMessageChatFragment();
|
||||
setAdapter(conversationListFragment.getAdapter());
|
||||
FragmentManager manager = ((FragmentActivity) mContext).getSupportFragmentManager();
|
||||
FragmentTransaction transaction = manager.beginTransaction();
|
||||
transaction.replace(R.id.container, conversationListFragment);
|
||||
transaction.commit();
|
||||
//自定义空数据背景View
|
||||
//conversationListFragment.setEmptyView(emptyView);
|
||||
conversationListFragment.setEmptyView(R.layout.view_layout_msg);
|
||||
conversationListFragment.getAdapter().setOnRefreshListener(new OnRecyclerListRefreshListener<List<BaseUiConversation>>() {
|
||||
@Override
|
||||
public void onFinish(List<BaseUiConversation> baseUiConversations) {
|
||||
InstructorRemarkManager.get(mContext).getNetInstructorRemark();
|
||||
loadLiveLookTime(baseUiConversations, new OnRecyclerListRefreshListener<Map<String, Integer>>() {
|
||||
@Override
|
||||
public void onFinish(Map<String, Integer> stringIntegerMap) {
|
||||
conversationListFragment.getAdapter().setTimerMap(stringIntegerMap);
|
||||
updateList();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void onChatList() {
|
||||
if (conversationListFragment == null) {
|
||||
return;
|
||||
}
|
||||
conversationListFragment.onChatList();
|
||||
}
|
||||
|
||||
public void search(String string) {
|
||||
if (conversationListFragment == null) {
|
||||
return;
|
||||
}
|
||||
conversationListFragment.search(string);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateList() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,10 +10,9 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.yunbao.common.bean.MessageChatUserBean;
|
||||
import com.yunbao.common.fragment.AbsMainMessageChatListFragment;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnRecyclerListRefreshListener;
|
||||
@@ -23,7 +22,7 @@ import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.adapter.MainConversationListAdapter;
|
||||
import com.yunbao.common.adapter.MainConversationListAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -32,11 +31,9 @@ import java.util.Map;
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.conversationlist.model.SingleConversation;
|
||||
import io.rong.imkit.userinfo.RongUserInfoManager;
|
||||
import io.rong.imkit.userinfo.UserDataProvider;
|
||||
import io.rong.imkit.utils.RouteUtils;
|
||||
import io.rong.imkit.widget.adapter.BaseAdapter;
|
||||
import io.rong.imkit.widget.adapter.ViewHolder;
|
||||
import io.rong.imkit.widget.refresh.SmartRefreshLayout;
|
||||
import io.rong.imkit.widget.refresh.api.RefreshLayout;
|
||||
import io.rong.imkit.widget.refresh.listener.OnLoadMoreListener;
|
||||
import io.rong.imkit.widget.refresh.listener.OnRefreshListener;
|
||||
|
||||
@@ -10,9 +10,9 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.MessageChatUserBean;
|
||||
import com.yunbao.common.fragment.AbsMainMessageChatListFragment;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnRecyclerListRefreshListener;
|
||||
@@ -21,7 +21,7 @@ import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.adapter.MainConversationListAdapter;
|
||||
import com.yunbao.common.adapter.MainConversationListAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -33,7 +33,6 @@ import io.rong.imkit.userinfo.RongUserInfoManager;
|
||||
import io.rong.imkit.utils.RouteUtils;
|
||||
import io.rong.imkit.widget.adapter.BaseAdapter;
|
||||
import io.rong.imkit.widget.adapter.ViewHolder;
|
||||
import io.rong.imkit.widget.refresh.SmartRefreshLayout;
|
||||
import io.rong.imkit.widget.refresh.api.RefreshLayout;
|
||||
import io.rong.imkit.widget.refresh.listener.OnLoadMoreListener;
|
||||
import io.rong.imkit.widget.refresh.listener.OnRefreshListener;
|
||||
|
||||
@@ -6,8 +6,6 @@ import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Handler;
|
||||
import android.text.Editable;
|
||||
import android.text.InputFilter;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
@@ -35,10 +33,6 @@ import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.dialog.DebugDialog;
|
||||
import com.yunbao.common.manager.base.ACache;
|
||||
import com.yunbao.common.utils.DateFormatUtil;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.MobclickAgent;
|
||||
import com.yunbao.common.bean.ImUserInfoModel;
|
||||
@@ -68,8 +62,8 @@ import com.yunbao.main.R;
|
||||
import com.yunbao.main.activity.MainActivity;
|
||||
import com.yunbao.main.adapter.SystemMessageAdapter;
|
||||
import com.yunbao.main.dialog.MsgMoreDialog;
|
||||
import com.yunbao.main.fragment.AbsMainMessageChatListFragment;
|
||||
import com.yunbao.main.fragment.MainMessageChatListFragment;
|
||||
import com.yunbao.common.fragment.AbsMainMessageChatListFragment;
|
||||
import com.yunbao.common.fragment.MainMessageChatListFragment;
|
||||
import com.yunbao.main.fragment.MainMessageChatListSystemFragment;
|
||||
import com.yunbao.main.fragment.MainMessageChatListUserFragment;
|
||||
import com.yunbao.main.manager.imrongcloud.ConversationIMListManager;
|
||||
@@ -89,7 +83,6 @@ import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -207,7 +200,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
|
||||
private void initFragment() {
|
||||
fragmentList = new ArrayList<>();
|
||||
fragmentList.add(new MainMessageChatListFragment());
|
||||
fragmentList.add(new MainMessageChatListFragment(AppManager.getInstance().getMainActivity()));
|
||||
fragmentList.add(new MainMessageChatListSystemFragment());
|
||||
fragmentList.add(new MainMessageChatListUserFragment());
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="344dp" android:height="60dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#ffffffff" />
|
||||
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="344dp" android:height="60dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#ffffffff" />
|
||||
<corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="344dp" android:height="60dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#ffffffff" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="344dp" android:height="60dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#ffffffff" />
|
||||
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,120 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/rc_conversation_item"
|
||||
android:layout_width="match_parent"
|
||||
android:background="@drawable/bg_msg_list_item"
|
||||
android:layout_height="@dimen/rc_conversation_item_height">
|
||||
<View
|
||||
android:id="@+id/itemDecorationTop"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#FFE9F6"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:id="@+id/itemDecorationBottom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#FFE9F6"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/constraintLayout5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rc_conversation_portrait_rl"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginStart="@dimen/rc_margin_size_12"
|
||||
android:layout_marginTop="@dimen/rc_margin_size_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.yunbao.common.views.weight.ClipPathCircleImage
|
||||
android:id="@+id/rc_conversation_portrait"
|
||||
android:layout_width="54dp"
|
||||
android:layout_height="54dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@mipmap/beauty_jingbai" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rc_conversation_unread"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentEnd="true">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rc_conversation_unread_bg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@drawable/rc_unread_count_bg_normal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_unread_count"
|
||||
style="@style/TextStyle.Alignment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:text="15"
|
||||
android:textColor="@color/rc_white_color"
|
||||
android:textSize="@dimen/rc_font_auxiliary_size" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/rc_margin_size_12"
|
||||
android:layout_marginTop="@dimen/rc_margin_size_16"
|
||||
android:layout_marginEnd="@dimen/rc_margin_size_12"
|
||||
android:text="张三"
|
||||
android:textColor="@color/rc_text_main_color"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="你好,朋友!"
|
||||
android:textColor="#777777"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toStartOf="@+id/btn"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rc_conversation_title" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn"
|
||||
android:layout_width="68dp"
|
||||
android:layout_height="37dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
tools:text="关注"
|
||||
android:textAllCaps="false"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:background="@drawable/bg_msg_address_book_user_btn_mutual"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#333333"
|
||||
android:textSize="13sp"
|
||||
tools:text="TextView" />
|
||||
</LinearLayout>
|
||||
@@ -1,109 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/rc_conversation_item"
|
||||
android:background="@drawable/bg_msg_list_item"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/rc_conversation_item_height">
|
||||
|
||||
<View
|
||||
android:id="@+id/itemDecorationTop"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#FFE9F6"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:id="@+id/itemDecorationBottom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#FFE9F6"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/constraintLayout5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/itemDecorationBottom"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/itemDecorationTop">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rc_conversation_portrait_rl"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginStart="@dimen/rc_margin_size_12"
|
||||
android:layout_marginTop="@dimen/rc_margin_size_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.yunbao.common.views.weight.ClipPathCircleImage
|
||||
android:id="@+id/rc_conversation_portrait"
|
||||
android:layout_width="54dp"
|
||||
android:layout_height="54dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@mipmap/beauty_jingbai" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rc_conversation_unread"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rc_conversation_unread_bg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@drawable/rc_unread_count_bg_normal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_unread_count"
|
||||
style="@style/TextStyle.Alignment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:text="15"
|
||||
android:textColor="@color/rc_white_color"
|
||||
android:textSize="@dimen/rc_font_auxiliary_size" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="你好,朋友!"
|
||||
android:visibility="gone"
|
||||
android:textColor="#777777"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toStartOf="@+id/rc_conversation_title"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rc_conversation_title" />
|
||||
<TextView
|
||||
android:id="@+id/rc_conversation_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/rc_margin_size_12"
|
||||
android:text="张三1234567890-"
|
||||
android:textColor="@color/rc_text_main_color"
|
||||
android:textSize="@dimen/rc_font_secondary_size"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/rc_conversationlist_notice_container"
|
||||
layout="@layout/rc_conversationlist_notice_view"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<io.rong.imkit.widget.refresh.SmartRefreshLayout
|
||||
android:id="@+id/rc_refresh"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rc_conversation_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never"
|
||||
tools:listitem="@layout/rc_conversationlist_item" />
|
||||
</io.rong.imkit.widget.refresh.SmartRefreshLayout>
|
||||
</LinearLayout>
|
||||
@@ -301,7 +301,6 @@
|
||||
android:id="@+id/indicator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="37dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/line" />
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
<string name="activity_msg_newts_interaction">互動消息</string>
|
||||
<string name="activity_msg_news_online">在線客服</string>
|
||||
<string name="activity_msg_search_hint">搜索</string>
|
||||
<string name="activity_msg_list_include">包含:</string>
|
||||
<string name="activity_msg_list_title_contacts">聯繫人</string>
|
||||
<string name="activity_msg_list_title_chat_records">聊天記錄</string>
|
||||
<string name="activity_msg_addressbook_layout_title">通訊錄</string>
|
||||
<string name="activity_msg_addressbook_search_hint">搜索昵稱</string>
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
<string name="activity_msg_newts_interaction">Chats</string>
|
||||
<string name="activity_msg_news_online">Service</string>
|
||||
<string name="activity_msg_search_hint">Search</string>
|
||||
<string name="activity_msg_list_include">Include:</string>
|
||||
<string name="activity_msg_list_title_contacts">Contacts</string>
|
||||
<string name="activity_msg_list_title_chat_records">Chat Records</string>
|
||||
<string name="activity_msg_addressbook_layout_title">Address Book</string>
|
||||
<string name="activity_msg_addressbook_search_hint">Search</string>
|
||||
|
||||
Reference in New Issue
Block a user