This commit is contained in:
2023-10-05 18:29:45 +08:00
parent d82f89f11c
commit 15d230e084
38 changed files with 930 additions and 126 deletions

View File

@@ -1,8 +1,6 @@
package com.shayu.onetoone;
import android.os.Handler;
import android.os.Looper;
import android.os.Process;
@@ -12,16 +10,22 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.facebook.FacebookSdk;
import com.shayu.onetoone.activity.fragments.message.ChatMessageFragment;
import com.shayu.onetoone.activity.message.ChatActivity;
import com.shayu.onetoone.bean.MessageChatTipsContent;
import com.shayu.onetoone.provider.CustomConversationProvider;
import com.shayu.onetoone.provider.MessageChatTipsItemProvider;
import com.shayu.onetoone.utils.NeverCrashUtils;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
import java.util.ArrayList;
import io.rong.imkit.RongIM;
import io.rong.imkit.config.RongConfigCenter;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
@@ -65,26 +69,35 @@ public class AppContext extends CommonAppContext {
ARouter.printStackTrace();
ARouter.init(this);
ProviderManager<BaseUiConversation> providerManager = RongConfigCenter.conversationListConfig().getProviderManager();
providerManager.replaceProvider(PrivateConversationProvider.class, new CustomConversationProvider());
ArrayList<Class<? extends MessageContent>> myMessages = new ArrayList<>();
myMessages.add(MessageChatTipsContent.class);
RongIMClient.registerMessageType(myMessages);
RongConfigCenter.conversationConfig().addMessageProvider(new InstructorSendRewardProvider(getApplicationContext()));
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatTipsItemProvider(getApplicationContext()));
String appKey = "pvxdm17jpd3hr";
boolean enablePush = true;
RongIM.init(this, appKey, enablePush);
RongIM.setConnectionStatusListener(new RongIMClient.ConnectionStatusListener() {
@Override
public void onChanged(ConnectionStatus status) {
Log.i("融云", "onChanged: "+status.getMessage());
Log.i("融云", "onChanged: " + status.getMessage());
}
});
ProviderManager<BaseUiConversation> providerManager = RongConfigCenter.conversationListConfig().getProviderManager();
providerManager.replaceProvider(PrivateConversationProvider.class,new CustomConversationProvider());
RongcloudIMManager.initRongIM(this);
RongConfigCenter.conversationConfig().addMessageProvider(new InstructorSendRewardProvider(getApplicationContext()));
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
@Override
public boolean onReceived(Message message, int left, boolean hasPackage, boolean offline) {
TextMessage content = (TextMessage) message.getContent();
ToastUtil.show("收到:"+content.getContent());
ToastUtil.show("收到:" + content.getContent());
return false;
}
});

View File

@@ -6,15 +6,47 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.angcyo.tablayout.DslTabLayout;
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.home.HotFragment;
import com.shayu.onetoone.activity.fragments.home.RecommendFragment;
import com.shayu.onetoone.activity.fragments.message.MsgFriendFragment;
import com.shayu.onetoone.activity.fragments.message.MsgMessageFragment;
import java.util.ArrayList;
import java.util.List;
/**
* 交友主页面
*/
public class FriendsFragment extends BaseFragment {
List<BaseFragment> fragments = new ArrayList<>();
@Override
public void initView(View itemView) {
ViewPager2 viewPager2 = itemView.findViewById(R.id.viewPager);
DslTabLayout tabLayout = itemView.findViewById(R.id.dslTabLayout);
ViewPager2Delegate.Companion.install(viewPager2, tabLayout, false);
fragments.add(new RecommendFragment());//消息 - 消息
fragments.add(new HotFragment()); //消息 - 好友
viewPager2.setAdapter(new FragmentStateAdapter(this) {
@NonNull
@Override
public Fragment createFragment(int position) {
return fragments.get(position);
}
@Override
public int getItemCount() {
return fragments.size();
}
});
}
@Override

View File

@@ -5,27 +5,52 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import com.shayu.onetoone.R;
import com.yunbao.common.fragment.BaseFragment;
import com.shayu.onetoone.activity.fragments.BaseFragment;
import com.shayu.onetoone.adapter.HomeHotListAdapter;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
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;
import io.rong.imkit.widget.refresh.wrapper.RongRefreshHeader;
public class HotFragment extends BaseFragment {
SmartRefreshLayout mRefreshLayout;
SwipeRecyclerView recyclerView;
HomeHotListAdapter adapter;
@Override
public View createView(LayoutInflater inflater, ViewGroup container) {
public void initView(View itemView) {
recyclerView = itemView.findViewById(R.id.recyclerView);
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
adapter=new HomeHotListAdapter(getContext());
recyclerView.setAdapter(adapter);
mRefreshLayout.setNestedScrollingEnabled(false);
mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext()));
mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext()));
mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
onConversationListRefresh(refreshLayout);
}
});
this.mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
onConversationListLoadMore();
}
});
}
private void onConversationListLoadMore() {
}
private void onConversationListRefresh(RefreshLayout refreshLayout) {
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_hot, container, false);
}
@Override
protected void initVariables(Bundle bundle) {
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
}
@Override
protected void loadData() {
}
}

View File

@@ -5,27 +5,54 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import com.shayu.onetoone.R;
import com.yunbao.common.fragment.BaseFragment;
import com.shayu.onetoone.activity.fragments.BaseFragment;
import com.shayu.onetoone.adapter.HomeRecommendListAdapter;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
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;
import io.rong.imkit.widget.refresh.wrapper.RongRefreshHeader;
public class RecommendFragment extends BaseFragment {
SmartRefreshLayout mRefreshLayout;
SwipeRecyclerView recyclerView;
HomeRecommendListAdapter adapter;
@Override
public View createView(LayoutInflater inflater, ViewGroup container) {
public void initView(View itemView) {
recyclerView = itemView.findViewById(R.id.recyclerView);
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
adapter=new HomeRecommendListAdapter(getContext());
recyclerView.setAdapter(adapter);
mRefreshLayout.setNestedScrollingEnabled(false);
mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext()));
mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext()));
mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
onConversationListRefresh(refreshLayout);
}
});
this.mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
onConversationListLoadMore();
}
});
}
private void onConversationListLoadMore() {
}
private void onConversationListRefresh(RefreshLayout refreshLayout) {
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_recommend, container, false);
}
@Override
protected void initVariables(Bundle bundle) {
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
}
@Override
protected void loadData() {
}
}

View File

@@ -8,11 +8,10 @@ import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.FileProvider;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.MessageChatTipsContent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.interfaces.ImageResultCallback;
import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.ToastUtil;
@@ -24,7 +23,6 @@ import java.util.Date;
import io.rong.imkit.IMCenter;
import io.rong.imkit.conversation.ConversationFragment;
import io.rong.imlib.IRongCallback;
import io.rong.imlib.ISendMessageCallback;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.Message;
@@ -49,6 +47,27 @@ public class ChatMessageFragment extends ConversationFragment {
cameraUtil = new ProcessImageUtil(getActivity(), "com.shayu.onetoone.fileprovider");
mSendBtn.setOnClickListener(v -> sendText());
img.setOnClickListener(v -> cameraUtil.getImageByCamera());
initCamera();
call.setOnClickListener(v -> {
MessageChatTipsContent bean= MessageChatTipsContent.obtain("【安全提示】為保障您的權益,慶提高警惕,不要輕易添加或提供第三方聯繫方式");
IMCenter.getInstance().insertOutgoingMessage(conversationType, targetId, Message.SentStatus.SENT, bean, System.currentTimeMillis(), new RongIMClient.ResultCallback<Message>() {
@Override
public void onSuccess(Message message) {
ToastUtil.show("成功");
}
@Override
public void onError(RongIMClient.ErrorCode e) {
ToastUtil.show("失败:"+e.getMessage());
System.out.println("失败:"+e.getMessage());
}
});
});
}
private void initCamera() {
cameraUtil.setImageResultCallback(new ImageResultCallback() {
@Override
public void beforeCamera() {

View File

@@ -9,7 +9,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -17,21 +16,17 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.BaseFragment;
import com.shayu.onetoone.adapter.MsgMessageRecyclerViewAdapter;
import com.shayu.onetoone.bean.MsgMessageBean;
import com.shayu.onetoone.manager.RouteManager;
import com.yanzhenjie.recyclerview.OnItemClickListener;
import com.yanzhenjie.recyclerview.OnItemMenuClickListener;
import com.yanzhenjie.recyclerview.SwipeMenuBridge;
import com.yanzhenjie.recyclerview.SwipeMenuCreator;
import com.yanzhenjie.recyclerview.SwipeMenuItem;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import java.util.ArrayList;
import java.util.List;
@@ -41,7 +36,6 @@ import io.rong.imkit.IMCenter;
import io.rong.imkit.config.ConversationListBehaviorListener;
import io.rong.imkit.config.RongConfigCenter;
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.GatheredConversation;
import io.rong.imkit.conversationlist.viewmodel.ConversationListViewModel;
@@ -51,7 +45,6 @@ import io.rong.imkit.utils.RouteUtils;
import io.rong.imkit.widget.FixedLinearLayoutManager;
import io.rong.imkit.widget.adapter.BaseAdapter;
import io.rong.imkit.widget.adapter.ViewHolder;
import io.rong.imkit.widget.dialog.OptionsPopupDialog;
import io.rong.imkit.widget.refresh.SmartRefreshLayout;
import io.rong.imkit.widget.refresh.api.RefreshLayout;
import io.rong.imkit.widget.refresh.constant.RefreshState;
@@ -69,7 +62,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
private static final String TAG = MsgMessageFragment.class.getSimpleName();
SwipeRecyclerView mList;
SmartRefreshLayout mRefreshLayout;
ConversationListAdapter mAdapter;
MsgMessageRecyclerViewAdapter mAdapter;
List<MsgMessageBean> list;
protected View mNoticeContainerView;
@@ -83,7 +76,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
public void initView(View itemView) {
mList = itemView.findViewById(R.id.recyclerView);
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
mAdapter = new ConversationListAdapter();
mAdapter = new MsgMessageRecyclerViewAdapter();
list = new ArrayList<>();
initData();
mList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));

View File

@@ -0,0 +1,43 @@
package com.shayu.onetoone.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
public class HomeHotListAdapter extends RecyclerView.Adapter<HomeHotListAdapter.ViewHolder>{
private Context mContext;
public HomeHotListAdapter(Context mContext) {
this.mContext = mContext;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_home_hot,parent,false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 10;
}
public class ViewHolder extends RecyclerView.ViewHolder{
public ViewHolder(@NonNull View itemView) {
super(itemView);
}
}
}

View File

@@ -0,0 +1,43 @@
package com.shayu.onetoone.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
public class HomeRecommendListAdapter extends RecyclerView.Adapter<HomeRecommendListAdapter.ViewHolder>{
private Context mContext;
public HomeRecommendListAdapter(Context mContext) {
this.mContext = mContext;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_home_recommend,parent,false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 10;
}
public class ViewHolder extends RecyclerView.ViewHolder{
public ViewHolder(@NonNull View itemView) {
super(itemView);
}
}
}

View File

@@ -1,6 +1,7 @@
package com.shayu.onetoone.adapter;
import android.content.Context;
import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -16,69 +17,29 @@ import com.yunbao.common.glide.ImgLoader;
import java.util.List;
import io.rong.imkit.conversationlist.ConversationListAdapter;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.model.SingleConversation;
import io.rong.imkit.widget.adapter.ViewHolder;
import io.rong.imlib.model.Conversation;
/**
* 聊天列表适配器
*/
public class MsgMessageRecyclerViewAdapter extends RecyclerView.Adapter<MsgMessageRecyclerViewAdapter.ViewHolder> {
List<MsgMessageBean> list;
Context mContext;
public MsgMessageRecyclerViewAdapter(Context mContext) {
this.mContext = mContext;
}
public void setList(List<MsgMessageBean> list) {
this.list = list;
notifyDataSetChanged();
}
public List<MsgMessageBean> getList() {
return list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.rc_conversationlist_item, parent, false));
}
public class MsgMessageRecyclerViewAdapter extends ConversationListAdapter {
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.setData(list.get(position), position);
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView avatar;
TextView name;
TextView content;
TextView time;
TextView read;
public ViewHolder(@NonNull View itemView) {
super(itemView);
/* avatar = itemView.findViewById(R.id.msg_message_avatar);
name = itemView.findViewById(R.id.msg_message_title);
content = itemView.findViewById(R.id.msg_message_content);
time = itemView.findViewById(R.id.msg_message_content_time);
read = itemView.findViewById(R.id.msg_message_content_not_read);*/
}
public void setData(MsgMessageBean bean, int position) {
if (bean.isNotRead()) {
read.setVisibility(View.VISIBLE);
read.setText(bean.getNotReadNum() + "");
BaseUiConversation uiConversation = mDataList.get(position);
if (uiConversation.mCore.getConversationType() == Conversation.ConversationType.PRIVATE) {
SingleConversation conversation = (SingleConversation) uiConversation;
if (conversation.mConversationContent.length() >= 6) {
conversation.mConversationContent = new SpannableString(conversation.mConversationContent.toString().substring(0, 6) + "...·");
} else {
read.setVisibility(View.GONE);
conversation.mConversationContent = new SpannableString(conversation.mConversationContent.toString() + " ·");
}
ImgLoader.display(mContext, bean.getAvatar(), avatar);
name.setText(bean.getNickname());
content.setText(bean.getContent());
time.setText(String.format("·%s", bean.getTime()));
} else if (uiConversation.mCore.getConversationType() == Conversation.ConversationType.GROUP) {
mDataList.remove(position);
}
super.onBindViewHolder(holder, position);
}
}

View File

@@ -0,0 +1,123 @@
package com.shayu.onetoone.bean;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.UnsupportedEncodingException;
import io.rong.common.ParcelUtils;
import io.rong.imlib.MessageTag;
import io.rong.imlib.model.MessageContent;
@MessageTag(value = "MessageChatTipsContent", flag = MessageTag.ISPERSISTED)
public class MessageChatTipsContent extends MessageContent implements Parcelable {
private String content;
private MessageChatTipsContent() {
}
public MessageChatTipsContent(byte[] data) {
if (data == null) {
return;
}
String jsonStr = null;
try {
jsonStr = new String(data, "UTF-8");
} catch (UnsupportedEncodingException e) {
}
if (jsonStr == null) {
return;
}
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// 消息携带用户信息时, 自定义消息需添加下面代码
if (jsonObj.has("user")) {
setUserInfo(parseJsonToUserInfo(jsonObj.getJSONObject("user")));
}
// 用于群组聊天, 消息携带 @ 人信息时, 自定义消息需添加下面代码
if (jsonObj.has("mentionedInfo")) {
setMentionedInfo(parseJsonToMentionInfo(jsonObj.getJSONObject("mentionedInfo")));
}
// 将所有自定义变量从收到的 json 解析并赋值
if (jsonObj.has("content")) {
content = jsonObj.optString("content");
}
} catch (JSONException e) {
}
}
public MessageChatTipsContent setContent(String content) {
this.content = content;
return this;
}
public String getContent() {
return content;
}
protected MessageChatTipsContent(Parcel in) {
setExtra(ParcelUtils.readFromParcel(in));
setContent(ParcelUtils.readFromParcel(in));
}
// 快速构建消息对象方法
public static MessageChatTipsContent obtain(String content) {
MessageChatTipsContent msg = new MessageChatTipsContent();
msg.content = content;
return msg;
}
public static final Creator<MessageChatTipsContent> CREATOR = new Creator<MessageChatTipsContent>() {
@Override
public MessageChatTipsContent createFromParcel(Parcel in) {
return new MessageChatTipsContent(in);
}
@Override
public MessageChatTipsContent[] newArray(int size) {
return new MessageChatTipsContent[size];
}
};
@Override
public byte[] encode() {
JSONObject jsonObj = new JSONObject();
try {
// 消息携带用户信息时, 自定义消息需添加下面代码
if (getJSONUserInfo() != null) {
jsonObj.putOpt("user", getJSONUserInfo());
}
// 用于群组聊天, 消息携带 @ 人信息时, 自定义消息需添加下面代码
if (getJsonMentionInfo() != null) {
jsonObj.putOpt("mentionedInfo", getJsonMentionInfo());
}
// 将所有自定义消息的内容,都序列化至 json 对象中
jsonObj.put("content", this.content);
} catch (JSONException e) {
}
try {
return jsonObj.toString().getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
}
return null;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
ParcelUtils.writeToParcel(dest, getExtra());
ParcelUtils.writeToParcel(dest, content);
}
}

View File

@@ -0,0 +1,23 @@
package com.shayu.onetoone.provider;
import android.content.Context;
import io.rong.imlib.model.Message;
import io.rong.imlib.model.MessageContent;
import io.rong.message.MessageHandler;
public class MessageChatTipHandler extends MessageHandler {
public MessageChatTipHandler(Context context) {
super(context);
}
@Override
public void decodeMessage(Message message, MessageContent content) {
}
@Override
public void encodeMessage(Message message) {
}
}

View File

@@ -0,0 +1,53 @@
package com.shayu.onetoone.provider;
import android.content.Context;
import android.text.Spannable;
import android.view.ViewGroup;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.MessageChatTipsContent;
import java.util.List;
import io.rong.imkit.conversation.messgelist.provider.BaseMessageItemProvider;
import io.rong.imkit.model.UiMessage;
import io.rong.imkit.widget.adapter.IViewProviderListener;
import io.rong.imkit.widget.adapter.ViewHolder;
import io.rong.imlib.model.MessageContent;
public class MessageChatTipsItemProvider extends BaseMessageItemProvider<MessageChatTipsContent> {
private Context mContext;
public MessageChatTipsItemProvider(Context mContext) {
this.mContext = mContext;
mConfig.showPortrait = false;
mConfig.showSummaryWithName = false;
mConfig.showContentBubble = false;
mConfig.centerInHorizontal = true;
}
@Override
protected ViewHolder onCreateMessageContentViewHolder(ViewGroup parent, int viewType) {
return ViewHolder.createViewHolder(mContext, parent, R.layout.view_message_chat_tip);
}
@Override
protected void bindMessageContentViewHolder(ViewHolder holder, ViewHolder parentHolder, MessageChatTipsContent messageChatTipsContent, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener) {
holder.setText(R.id.tips, messageChatTipsContent.getContent());
}
@Override
protected boolean onItemClick(ViewHolder holder, MessageChatTipsContent messageChatTipsContent, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener) {
return false;
}
@Override
protected boolean isMessageViewType(MessageContent messageContent) {
return messageContent instanceof MessageChatTipsContent;
}
@Override
public Spannable getSummarySpannable(Context context, MessageChatTipsContent messageChatTipsContent) {
return null;
}
}