改版消息主页面
@@ -72,7 +72,9 @@ import io.rong.imkit.conversationlist.ConversationListFragment;
|
||||
|
||||
/**
|
||||
* pdlive消息中心
|
||||
* 废弃的
|
||||
*/
|
||||
@Deprecated
|
||||
public class PDLiveConversationListActivity extends AbsActivity implements View.OnClickListener {
|
||||
//菜单
|
||||
private TabButtonGroup mTabButtonGroup;
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
package com.yunbao.main.adapter;
|
||||
|
||||
import android.text.Html;
|
||||
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.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.main.R;
|
||||
|
||||
import io.rong.imkit.conversationlist.ConversationListAdapter;
|
||||
import io.rong.imkit.widget.adapter.ViewHolder;
|
||||
|
||||
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;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
ViewHolder holder = null;
|
||||
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 {
|
||||
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.equals("SEARCH_CHAT")) {
|
||||
type = TYPE_SEARCH_CHAT;
|
||||
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_TITLE")) {
|
||||
type = TYPE_SEARCH_TITLE;
|
||||
}
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
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 {
|
||||
super.onBindViewHolder(holder, position);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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());
|
||||
Spanned spanned = Html.fromHtml(WordUtil.getNewString(R.string.activity_msg_list_include) + "<font color='#FF4874'>" + mDataList.get(position).mConversationContent + "</font>");
|
||||
((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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.yunbao.main.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.lxj.xpopup.core.AttachPopupView;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 聊天界面长按气泡菜单
|
||||
*/
|
||||
public class MsgChatClickDialog extends AttachPopupView implements View.OnClickListener {
|
||||
LinearLayout rootView;
|
||||
List<String> list;
|
||||
OnItemClickListener<String> onItemClickListener;
|
||||
|
||||
public MsgChatClickDialog(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public MsgChatClickDialog setList(List<String> list) {
|
||||
this.list = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MsgChatClickDialog setOnItemClickListener(OnItemClickListener<String> onItemClickListener) {
|
||||
this.onItemClickListener = onItemClickListener;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return R.layout.dialog_msg_chat_click;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isShowUpToTarget() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
isShowUp = true;
|
||||
rootView = findViewById(R.id.rootView);
|
||||
rootView.setGravity(Gravity.CENTER);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
|
||||
params.gravity = Gravity.CENTER;
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
String item = list.get(i);
|
||||
TextView textView = new TextView(getContext());
|
||||
textView.setText(item);
|
||||
textView.setGravity(Gravity.CENTER);
|
||||
textView.setTag(i);
|
||||
textView.setTextColor(Color.WHITE);
|
||||
textView.setLayoutParams(params);
|
||||
textView.setOnClickListener(this);
|
||||
rootView.addView(textView,params);
|
||||
|
||||
TextView tmp = new TextView(getContext());
|
||||
tmp.setLayoutParams(params);
|
||||
tmp.setText(" | ");
|
||||
tmp.setGravity(Gravity.CENTER);
|
||||
tmp.setTextColor(Color.WHITE);
|
||||
rootView.addView(tmp,params);
|
||||
}
|
||||
rootView.removeViewAt(rootView.getChildCount()-1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (onItemClickListener != null) {
|
||||
onItemClickListener.onItemClick(((TextView) v).getText().toString(), (Integer) v.getTag());
|
||||
}
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.yunbao.main.fragment;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yunbao.common.custom.ItemDecoration;
|
||||
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.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.imlib.model.Conversation;
|
||||
|
||||
public class MainMessageChatFragment extends ConversationListFragment {
|
||||
|
||||
@Nullable
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.rc_conversationlist_fragment, container, false);
|
||||
}
|
||||
|
||||
public void setEmptyView(int viewLayoutMsgId) {
|
||||
super.setEmptyView(viewLayoutMsgId);
|
||||
}
|
||||
|
||||
|
||||
public void search(String search) {
|
||||
mAdapter.getData().clear();
|
||||
getContactsList(search);
|
||||
}
|
||||
|
||||
private void getContactsList(String search) {
|
||||
List<BaseUiConversation> list = new ArrayList<>();
|
||||
List<BaseUiConversation> data = 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);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
conversation = new SingleConversation(getContext(), new Conversation());
|
||||
conversation.mCore.setObjectName("SEARCH_USER" + search);
|
||||
conversation.mCore.setConversationTitle(search + "|" + i);
|
||||
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
|
||||
conversation.mCore.setPortraitUrl("https://downs.yaoulive.com/girltwo.png");
|
||||
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) {
|
||||
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 (int i = 0; i < 3; i++) {
|
||||
conversation = new SingleConversation(getContext(), new Conversation());
|
||||
conversation.mCore.setObjectName("SEARCH_CHAT");
|
||||
conversation.mCore.setConversationTitle(search + "|" + i);
|
||||
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
|
||||
conversation.mConversationContent = new SpannableString(search);
|
||||
conversation.mCore.setPortraitUrl("https://downs.yaoulive.com/defaultpink.png");
|
||||
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);
|
||||
mAdapter.setDataCollection(list);
|
||||
mAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void onChatList() {
|
||||
mAdapter.getData().clear();
|
||||
subscribeUi();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ConversationListAdapter onResolveAdapter() {
|
||||
this.mAdapter = new MainConversationListAdapter();
|
||||
return this.mAdapter;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,13 @@
|
||||
package com.yunbao.main.manager.imrongcloud;
|
||||
|
||||
import static android.content.Context.CLIPBOARD_SERVICE;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@@ -13,24 +18,30 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.lxj.xpopup.interfaces.OnSelectListener;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.VipModel;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.InstructorRemarkManager;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.live.activity.PDLIiveChatActivity;
|
||||
import com.yunbao.live.activity.PDLiveConversationActivity;
|
||||
import com.yunbao.live.bean.SearchUserBean;
|
||||
import com.yunbao.live.dialog.PDLIiveChatConversationFragment;
|
||||
import com.yunbao.main.activity.PDLiveConversationListActivity;
|
||||
import com.yunbao.main.dialog.ConversationPopuwWindow;
|
||||
import com.yunbao.main.dialog.MsgChatClickDialog;
|
||||
import com.yunbao.main.utils.PDLiveCustomConversationProvider;
|
||||
import com.yunbao.main.utils.PDLiveMessageProcessor;
|
||||
import com.yunbao.main.utils.PDSightMessageItemProvider;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import io.rong.imkit.IMCenter;
|
||||
@@ -41,6 +52,7 @@ import io.rong.imkit.conversation.extension.RongExtensionManager;
|
||||
import io.rong.imkit.conversation.messgelist.provider.SightMessageItemProvider;
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.conversationlist.provider.PrivateConversationProvider;
|
||||
import io.rong.imkit.model.UiMessage;
|
||||
import io.rong.imkit.userinfo.RongUserInfoManager;
|
||||
import io.rong.imkit.utils.RouteUtils;
|
||||
import io.rong.imkit.widget.adapter.ProviderManager;
|
||||
@@ -48,7 +60,7 @@ import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.UserInfo;
|
||||
import io.rong.sight.SightExtensionModule;
|
||||
|
||||
import com.yunbao.main.R;
|
||||
/**
|
||||
* 会话列表管理
|
||||
*/
|
||||
@@ -269,12 +281,33 @@ public class ConversationIMListManager {
|
||||
public boolean onConversationLongClick(Context context, View view, BaseUiConversation baseUiConversation) {
|
||||
//非指导员都可以点击
|
||||
UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(baseUiConversation.mCore.getTargetId());
|
||||
String[] list;
|
||||
list = new String[]{WordUtil.getNewString(R.string.copy), WordUtil.getNewString(R.string.top)};
|
||||
if (userInfo != null && !TextUtils.isEmpty(userInfo.getExtra())) {
|
||||
IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
|
||||
if (!TextUtils.equals(model.getIsAdmin(), "1")) {
|
||||
new ConversationPopuwWindow((Activity) context)
|
||||
/* new ConversationPopuwWindow((Activity) context)
|
||||
.setIsAdmin(baseUiConversation.mCore.getTargetId())
|
||||
.show(view);
|
||||
.show(view);*/
|
||||
new XPopup.Builder(context)
|
||||
.atView(view)
|
||||
.hasShadowBg(false)
|
||||
.positionByWindowCenter(true)
|
||||
.isCenterHorizontal(true)
|
||||
.asCustom(new MsgChatClickDialog(context)
|
||||
.setList(Arrays.asList(list))
|
||||
.setOnItemClickListener(new OnItemClickListener<String>() {
|
||||
@Override
|
||||
public void onItemClick(String bean, int position) {
|
||||
if (bean.equals(WordUtil.getNewString(R.string.top))) {
|
||||
// copyText(baseUiConversation,context);
|
||||
setConversationToTop(targetId);
|
||||
} else if(bean.equals(WordUtil.getNewString(R.string.delete))){
|
||||
delete(baseUiConversation.mCore.getTargetId());
|
||||
}
|
||||
}
|
||||
}))
|
||||
.show();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,5 +401,23 @@ public class ConversationIMListManager {
|
||||
public String getTargetId() {
|
||||
return targetId;
|
||||
}
|
||||
private void copyText(UiMessage uiMessage,Context context) {
|
||||
ClipboardManager cm = (ClipboardManager) context.getSystemService(CLIPBOARD_SERVICE);
|
||||
ClipData clipData = ClipData.newPlainText("text", uiMessage.getContentSpannable());
|
||||
cm.setPrimaryClip(clipData);
|
||||
}
|
||||
|
||||
private void delete(String userId) {
|
||||
IMCenter.getInstance().removeConversation(Conversation.ConversationType.PRIVATE, userId, new RongIMClient.ResultCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean aBoolean) {
|
||||
ToastUtil.show("删除成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ErrorCode errorCode) {
|
||||
ToastUtil.show(errorCode.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.yunbao.main.utils;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -16,7 +17,10 @@ import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.main.R;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import io.rong.imkit.config.RongConfigCenter;
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
@@ -61,68 +65,29 @@ public class PDLiveCustomConversationProvider extends BaseConversationProvider {
|
||||
if ((userInfo != null && !TextUtils.isEmpty(userInfo.getExtra()))) {
|
||||
IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
|
||||
//指导员对话逻辑
|
||||
if ((model != null && TextUtils.equals(model.getIsAdmin(), "1")) ) {
|
||||
RelativeLayout conversationItem = holder.getView(R.id.rc_conversation_item);
|
||||
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) conversationItem.getLayoutParams();
|
||||
params.height = DpUtil.dp2px(110);
|
||||
conversationItem.setLayoutParams(params);
|
||||
holder.setOnClickListener(R.id.img_administrator, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
RouteUtil.forwardUserHome(holder.getContext(), targetId, 0);
|
||||
}
|
||||
});
|
||||
holder.setBackgroundRes(R.id.administrator_layout, R.mipmap.img_news_instructor_bg);
|
||||
holder.setBackgroundRes(R.id.rc_conversation_item, R.mipmap.white_bg);
|
||||
holder.setVisible(R.id.rc_conversation_portrait_layout, false);
|
||||
holder.setVisible(R.id.administrator_layout, true);
|
||||
holder.setImageUri(R.id.img_administrator, userInfo.getPortraitUri());
|
||||
holder.setText(R.id.conversation_title, userInfo.getName());
|
||||
if (TextUtils.isEmpty(uiConversation.mConversationContent)){
|
||||
if (uiConversation.mCore.getLatestMessage() instanceof TextMessage) {
|
||||
TextMessage message = (TextMessage) uiConversation.mCore.getLatestMessage();
|
||||
holder.setText(R.id.conversation_content, message.getContent());
|
||||
}
|
||||
}else {
|
||||
holder.setText(R.id.conversation_content,uiConversation.mConversationContent);
|
||||
}
|
||||
|
||||
if (uiConversation.mCore.getUnreadMessageCount() == 0) {
|
||||
holder.setVisible(R.id.conversation_unread, false);
|
||||
} else {
|
||||
holder.setVisible(R.id.conversation_unread, true);
|
||||
holder.setText(R.id.conversation_unread_count, String.valueOf(uiConversation.mCore.getUnreadMessageCount()));
|
||||
}
|
||||
|
||||
holder.setText(R.id.conversation_date, RongDateUtils.getConversationListFormatDate(uiConversation.mCore.getSentTime(), holder.getContext()));
|
||||
} else {
|
||||
View conversationItem = holder.getConvertView();
|
||||
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) conversationItem.getLayoutParams();
|
||||
params.height = DpUtil.dp2px(72);
|
||||
conversationItem.setLayoutParams(params);
|
||||
//非指导员按照原有视图展示
|
||||
holder.setVisible(R.id.rc_conversation_portrait_layout, true);
|
||||
holder.setVisible(R.id.administrator_layout, false);
|
||||
}
|
||||
}
|
||||
ImageView readReceipt = holder.itemView.findViewById(com.yunbao.live.R.id.rc_conversation_read_receipt);
|
||||
ImageView conversationUnread = holder.itemView.findViewById(com.yunbao.live.R.id.rc_conversation_unread_bg);
|
||||
ImageView imgNew = holder.itemView.findViewById(com.yunbao.live.R.id.img_new);
|
||||
if (conversationUnread != null) {
|
||||
Glide.with(holder.getContext()).asDrawable().load(R.mipmap.rc_unread_count_bg_normal).into(conversationUnread);
|
||||
}
|
||||
|
||||
readReceipt.setVisibility(View.VISIBLE);
|
||||
if (RongConfigCenter.featureConfig().isReadReceiptConversationType(Conversation.ConversationType.PRIVATE) &&
|
||||
uiConversation.mCore.getSenderUserId().equals(RongIMClient.getInstance().getCurrentUserId()) &&
|
||||
uiConversation.mCore.getSentStatus().getValue() == Message.SentStatus.READ.getValue() &&
|
||||
!(uiConversation.mCore.getLatestMessage() instanceof RecallNotificationMessage)) {
|
||||
readReceipt.setBackgroundResource(com.yunbao.live.R.mipmap.icon_messagelist_read);
|
||||
//TODO 已读
|
||||
} else if (uiConversation.mCore.getSenderUserId().equals(RongIMClient.getInstance().getCurrentUserId()) &&
|
||||
!(uiConversation.mCore.getLatestMessage() instanceof RecallNotificationMessage)) {
|
||||
readReceipt.setBackgroundResource(com.yunbao.live.R.mipmap.icon_messagelist_unread);
|
||||
//TODO 未读
|
||||
|
||||
} else {
|
||||
holder.setVisible(R.id.rc_conversation_read_receipt, false);
|
||||
}
|
||||
if (uiConversation.mCore.isTop()) {
|
||||
holder.getConvertView().setBackgroundColor(holder.getContext().getResources().getColor(io.rong.imkit.R.color.rc_item_top_color));
|
||||
} else {
|
||||
holder.getConvertView().setBackgroundColor(Color.parseColor("#00000000"));
|
||||
}
|
||||
|
||||
//设置时间
|
||||
String date =new SimpleDateFormat("HH:mm", Locale.getDefault()).format(new Date(uiConversation.mCore.getSentTime()));
|
||||
holder.setText(R.id.rc_conversation_date, date);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,14 @@ package com.yunbao.main.views;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
@@ -38,6 +41,8 @@ import com.yunbao.common.utils.DeviceUtils;
|
||||
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.SVGAViewUtils;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.AbsMainViewHolder;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.live.activity.SystemMessageActivity;
|
||||
@@ -47,6 +52,7 @@ import com.yunbao.live.http.ImHttpUtil;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.activity.MainActivity;
|
||||
import com.yunbao.main.adapter.SystemMessageAdapter;
|
||||
import com.yunbao.main.fragment.MainMessageChatFragment;
|
||||
import com.yunbao.main.manager.imrongcloud.ConversationIMListManager;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@@ -57,14 +63,13 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import io.rong.imkit.conversationlist.ConversationListFragment;
|
||||
|
||||
/**
|
||||
* 消息中心
|
||||
*/
|
||||
public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
|
||||
private ConversationListFragment conversationListFragment;
|
||||
private MainMessageChatFragment conversationListFragment;
|
||||
private FrameLayout container;
|
||||
private SystemMessageAdapter messageAdapter;
|
||||
private TextView textNewsNotice, textNewsInteraction, textNewsOnline, textSystemMessages;
|
||||
@@ -74,6 +79,8 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
private ImageView imgNewsNotice, imgNewsInteraction, imgNewsOnline, imgSystemMessages;
|
||||
private Handler netHandler;
|
||||
private MainActivity mContext;
|
||||
private View contacts;
|
||||
private EditText search;
|
||||
|
||||
private String homeZdyPop;
|
||||
|
||||
@@ -100,6 +107,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
initData();
|
||||
search.setText("");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,6 +125,36 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
imgNewsInteraction = (ImageView) findViewById(R.id.img_news_interaction);
|
||||
imgSystemMessages = (ImageView) findViewById(R.id.img_system_messages);
|
||||
imgNewsOnline = (ImageView) findViewById(R.id.img_news_online);
|
||||
contacts = findViewById(R.id.news_icon_contacts);
|
||||
search = findViewById(R.id.search);
|
||||
contacts.setOnClickListener(view -> {
|
||||
//通讯录
|
||||
});
|
||||
search.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||||
/* if(StringUtil.isEmpty(charSequence.toString())){
|
||||
conversationListFragment.onChatList();
|
||||
}else {
|
||||
conversationListFragment.search(charSequence.toString());
|
||||
}*/
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
if (conversationListFragment == null) return;
|
||||
if (StringUtil.isEmpty(editable.toString())) {
|
||||
conversationListFragment.onChatList();
|
||||
} else {
|
||||
conversationListFragment.search(editable.toString());
|
||||
}
|
||||
}
|
||||
});
|
||||
netHandler = new Handler();
|
||||
|
||||
}
|
||||
@@ -184,6 +222,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
@Override
|
||||
public void run() {
|
||||
netHandler.post(imUserInfoRunnable);
|
||||
IMLoginManager.get(mContext).initChat("1");
|
||||
if (IMLoginManager.get(mContext).hintChat()) {
|
||||
container.setVisibility(View.GONE);
|
||||
ltNodataMsg.setVisibility(View.VISIBLE);
|
||||
@@ -191,7 +230,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
container.setVisibility(View.VISIBLE);
|
||||
ltNodataMsg.setVisibility(View.GONE);
|
||||
//展示会话列表
|
||||
conversationListFragment = new ConversationListFragment();
|
||||
conversationListFragment = new MainMessageChatFragment();
|
||||
FragmentManager manager = ((FragmentActivity) mContext).getSupportFragmentManager();
|
||||
FragmentTransaction transaction = manager.beginTransaction();
|
||||
transaction.replace(R.id.container, conversationListFragment);
|
||||
@@ -240,7 +279,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
}
|
||||
|
||||
}
|
||||
ImgLoader.display(mContext, userBean.getNewImage(), imgNewsNotice);
|
||||
//ImgLoader.display(mContext, userBean.getNewImage(), imgNewsNotice);
|
||||
ViewClicksAntiShake.clicksAntiShake(imgNewsNotice, () -> {
|
||||
MobclickAgent.onEvent(mContext, "information_official_notice", "官方通知");
|
||||
type = userBean.getType();
|
||||
@@ -267,7 +306,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
textNewsInteraction.setText(String.valueOf(numberInt));
|
||||
}
|
||||
}
|
||||
ImgLoader.display(mContext, userBean.getNewImage(), imgNewsInteraction);
|
||||
// ImgLoader.display(mContext, userBean.getNewImage(), imgNewsInteraction);
|
||||
ViewClicksAntiShake.clicksAntiShake(imgNewsInteraction, () -> {
|
||||
MobclickAgent.onEvent(mContext, "information_system_interactive", "互動消息");
|
||||
type = userBean.getType();
|
||||
@@ -294,7 +333,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
textNewsOnline.setText(String.valueOf(numberInt));
|
||||
}
|
||||
}
|
||||
ImgLoader.display(mContext, userBean.getNewImage(), imgNewsOnline);
|
||||
//ImgLoader.display(mContext, userBean.getNewImage(), imgNewsOnline);
|
||||
ViewClicksAntiShake.clicksAntiShake(imgNewsOnline, () -> {
|
||||
MobclickAgent.onEvent(mContext, "information_system_service", "在線客服");
|
||||
type = userBean.getType();
|
||||
@@ -327,7 +366,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
|
||||
textSystemMessages.setText(String.valueOf(numberInt));
|
||||
}
|
||||
}
|
||||
ImgLoader.display(mContext, userBean.getNewImage(), imgSystemMessages);
|
||||
//ImgLoader.display(mContext, userBean.getNewImage(), imgSystemMessages);
|
||||
ViewClicksAntiShake.clicksAntiShake(imgSystemMessages, () -> {
|
||||
MobclickAgent.onEvent(mContext, "information_system_notice", "系统消息");
|
||||
type = userBean.getType();
|
||||
|
||||
9
main/src/main/res/drawable/bg_msg_list_item.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?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>
|
||||
9
main/src/main/res/drawable/bg_msg_list_item_bottom.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?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>
|
||||
8
main/src/main/res/drawable/bg_msg_list_item_centre.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?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>
|
||||
9
main/src/main/res/drawable/bg_msg_list_item_top.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?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>
|
||||
9
main/src/main/res/drawable/bg_msg_list_search.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="235dp" android:height="44dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#ffffffff" />
|
||||
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
12
main/src/main/res/layout/dialog_msg_chat_click.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?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"
|
||||
android:id="@+id/rootView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center"
|
||||
android:background="@mipmap/bg_chat_click"
|
||||
android:orientation="horizontal">
|
||||
|
||||
</LinearLayout>
|
||||
107
main/src/main/res/layout/item_main_msg_search_chat.xml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?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:layout_marginEnd="60dp"
|
||||
android:text="你好,朋友!"
|
||||
android:textColor="#777777"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rc_conversation_title" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
17
main/src/main/res/layout/item_main_msg_search_title.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?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>
|
||||
96
main/src/main/res/layout/item_main_msg_search_user.xml
Normal file
@@ -0,0 +1,96 @@
|
||||
<?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_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>
|
||||
28
main/src/main/res/layout/rc_conversationlist_fragment.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?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>
|
||||
@@ -2,10 +2,15 @@
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/bg_activity_message"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="20dp">
|
||||
|
||||
<FrameLayout
|
||||
android:paddingTop="35dp">
|
||||
<!-- android:background="@mipmap/bg_activity_message" -->
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@@ -13,22 +18,42 @@
|
||||
android:id="@+id/top_noback"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="18dp"
|
||||
android:text="@string/message"
|
||||
android:layout_marginStart="18dp"
|
||||
android:text="@string/activity_msg_title"
|
||||
android:textColor="#ff161616"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/search"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="0.7"
|
||||
android:background="@drawable/bg_msg_list_search"
|
||||
android:drawableStart="@mipmap/ic_home_game_search"
|
||||
android:drawablePadding="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:lines="1"
|
||||
android:hint="@string/activity_msg_search_hint"
|
||||
android:padding="10dp"
|
||||
android:visibility="visible" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/news_icon_clearance"
|
||||
android:layout_width="24dp"
|
||||
android:id="@+id/news_icon_contacts"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="0.1"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginTop="18dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_gravity="end|bottom"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:src="@mipmap/news_icon_clearance"
|
||||
android:visibility="gone" />
|
||||
</FrameLayout>
|
||||
android:src="@mipmap/ic_msg_contacts"
|
||||
android:visibility="visible" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
@@ -46,9 +71,29 @@
|
||||
<ImageView
|
||||
android:id="@+id/img_news_notice"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="99dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/img_news_notice" />
|
||||
android:layout_height="70dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignBottom="@+id/tv_news_notice"
|
||||
android:src="@mipmap/ic_msg_notice" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_news_notice"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="13sp"
|
||||
android:textColor="#333333"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:maxLines="1"
|
||||
app:autoSizeMaxTextSize="13sp"
|
||||
app:autoSizeMinTextSize="5sp"
|
||||
app:autoSizeStepGranularity="1sp"
|
||||
app:autoSizeTextType="uniform"
|
||||
android:gravity="center"
|
||||
android:text="@string/activity_msg_news_notice" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_news_notice"
|
||||
@@ -62,6 +107,7 @@
|
||||
android:text="7"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp"
|
||||
tools:visibility="visible"
|
||||
android:visibility="gone" />
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -75,10 +121,28 @@
|
||||
<ImageView
|
||||
android:id="@+id/img_system_messages"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="99dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/img_system_messages" />
|
||||
|
||||
android:layout_height="70dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignBottom="@+id/tv_system_messages"
|
||||
android:src="@mipmap/ic_msg_interaction" />
|
||||
<TextView
|
||||
android:id="@+id/tv_system_messages"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="13sp"
|
||||
android:textColor="#333333"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:maxLines="1"
|
||||
app:autoSizeMaxTextSize="13sp"
|
||||
app:autoSizeMinTextSize="5sp"
|
||||
app:autoSizeStepGranularity="1sp"
|
||||
app:autoSizeTextType="uniform"
|
||||
android:gravity="center"
|
||||
android:text="@string/activity_msg_system_message" />
|
||||
<TextView
|
||||
android:id="@+id/text_system_messages"
|
||||
android:layout_width="20dp"
|
||||
@@ -102,10 +166,28 @@
|
||||
<ImageView
|
||||
android:id="@+id/img_news_interaction"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="99dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/img_news_interaction" />
|
||||
|
||||
android:layout_height="70dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignBottom="@+id/tv_news_interaction"
|
||||
android:src="@mipmap/ic_msg_message" />
|
||||
<TextView
|
||||
android:id="@+id/tv_news_interaction"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="13sp"
|
||||
android:textColor="#333333"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:maxLines="1"
|
||||
app:autoSizeMaxTextSize="13sp"
|
||||
app:autoSizeMinTextSize="5sp"
|
||||
app:autoSizeStepGranularity="1sp"
|
||||
app:autoSizeTextType="uniform"
|
||||
android:gravity="center"
|
||||
android:text="@string/activity_msg_newts_interaction" />
|
||||
<TextView
|
||||
android:id="@+id/text_news_interaction"
|
||||
android:layout_width="20dp"
|
||||
@@ -129,9 +211,29 @@
|
||||
<ImageView
|
||||
android:id="@+id/img_news_online"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="99dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/img_news_online" />
|
||||
android:layout_height="70dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignBottom="@+id/tv_news_online"
|
||||
android:src="@mipmap/ic_msg_service" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_news_online"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="13sp"
|
||||
android:textColor="#333333"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:maxLines="1"
|
||||
app:autoSizeMaxTextSize="13sp"
|
||||
app:autoSizeMinTextSize="5sp"
|
||||
app:autoSizeStepGranularity="1sp"
|
||||
app:autoSizeTextType="uniform"
|
||||
android:gravity="center"
|
||||
android:text="@string/activity_msg_news_online" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_news_online"
|
||||
@@ -148,6 +250,14 @@
|
||||
android:visibility="gone" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<View
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:background="#FFE9F6"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"/>
|
||||
<!-- 此容器用于动态放置 fragment-->
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
|
||||
BIN
main/src/main/res/mipmap-xxhdpi/bg_chat_click.9.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
main/src/main/res/mipmap-xxhdpi/ic_msg_contacts.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
main/src/main/res/mipmap-xxhdpi/ic_msg_interaction.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
main/src/main/res/mipmap-xxhdpi/ic_msg_message.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
main/src/main/res/mipmap-xxhdpi/ic_msg_notice.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
main/src/main/res/mipmap-xxhdpi/ic_msg_service.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
main/src/main/res/mipmap-xxxhdpi/bg_activity_message.png
Normal file
|
After Width: | Height: | Size: 873 KiB |
@@ -18,5 +18,15 @@
|
||||
<string name="battlepass_exchange_submit_lock">未解鎖</string>
|
||||
<string name="battlepass_reward_item_lock">暫未達到等級</string>
|
||||
<string name="battlepass_reward_item_get">領取成功</string>
|
||||
|
||||
<string name="top">置頂</string>
|
||||
<string name="delete">刪除</string>
|
||||
<string name="activity_msg_title">消息</string>
|
||||
<string name="activity_msg_news_notice">官方通知</string>
|
||||
<string name="activity_msg_system_message">系统通知</string>
|
||||
<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>
|
||||
</resources>
|
||||
@@ -18,5 +18,15 @@
|
||||
<string name="battlepass_exchange_submit_lock">Unlocked</string>
|
||||
<string name="battlepass_reward_item_lock">Not yet reached level</string>
|
||||
<string name="battlepass_reward_item_get">Successfully claimed</string>
|
||||
|
||||
<string name="top">置頂</string>
|
||||
<string name="delete">刪除</string>
|
||||
<string name="activity_msg_title">Information</string>
|
||||
<string name="activity_msg_news_notice">Activities</string>
|
||||
<string name="activity_msg_system_message">Chats</string>
|
||||
<string name="activity_msg_newts_interaction">Messages</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>
|
||||
</resources>
|
||||
|
||||