fix 修复空聊天信息从通讯录返回时闪退问题
This commit is contained in:
parent
687d6e9bc0
commit
0f2269925f
@ -34,6 +34,7 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
|||||||
public static final int TYPE_SEARCH_CHAT = 520;
|
public static final int TYPE_SEARCH_CHAT = 520;
|
||||||
private List<BaseUiConversation> srcList;
|
private List<BaseUiConversation> srcList;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private View emptyView;
|
||||||
|
|
||||||
public MainConversationListAdapter(Context mContext) {
|
public MainConversationListAdapter(Context mContext) {
|
||||||
this.mContext = mContext;
|
this.mContext = mContext;
|
||||||
@ -43,7 +44,7 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
|||||||
@Override
|
@Override
|
||||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
ViewHolder holder = null;
|
ViewHolder holder = null;
|
||||||
mContext=parent.getContext();
|
mContext = parent.getContext();
|
||||||
if (viewType == TYPE_SEARCH_TITLE) {
|
if (viewType == TYPE_SEARCH_TITLE) {
|
||||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_title, parent, false);
|
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_title, parent, false);
|
||||||
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
||||||
@ -54,7 +55,9 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
|||||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_chat, parent, false);
|
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_chat, parent, false);
|
||||||
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
||||||
} else {
|
} else {
|
||||||
holder = super.onCreateViewHolder(parent, viewType);
|
// holder = super.onCreateViewHolder(parent, viewType);
|
||||||
|
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_empty, parent, false);
|
||||||
|
holder = ViewHolder.createViewHolder(parent.getContext(), view);
|
||||||
}
|
}
|
||||||
return holder;
|
return holder;
|
||||||
}
|
}
|
||||||
@ -71,12 +74,18 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
|||||||
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_TITLE")) {
|
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_TITLE")) {
|
||||||
type = TYPE_SEARCH_TITLE;
|
type = TYPE_SEARCH_TITLE;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
type = -200;
|
||||||
}
|
}
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||||
|
if (isEmpty() || mDataList.isEmpty()) {
|
||||||
|
bindEmpty(holder, position);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (getItemViewType(position) == TYPE_SEARCH_USER) {
|
if (getItemViewType(position) == TYPE_SEARCH_USER) {
|
||||||
bindUser(holder, position);
|
bindUser(holder, position);
|
||||||
} else if (getItemViewType(position) == TYPE_SEARCH_CHAT) {
|
} else if (getItemViewType(position) == TYPE_SEARCH_CHAT) {
|
||||||
@ -88,22 +97,26 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void bindEmpty(ViewHolder holder, int position) {
|
||||||
|
((ViewGroup) holder.getView(R.id.layout)).addView(emptyView);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setDataCollection(List<BaseUiConversation> data) {
|
public void setDataCollection(List<BaseUiConversation> data) {
|
||||||
super.setDataCollection(data);
|
super.setDataCollection(data);
|
||||||
if(srcList==null){
|
if (srcList == null) {
|
||||||
srcList=new ArrayList<>();
|
srcList = new ArrayList<>();
|
||||||
}
|
}
|
||||||
srcList.clear();
|
srcList.clear();
|
||||||
for (BaseUiConversation item : data) {
|
for (BaseUiConversation item : data) {
|
||||||
BaseUiConversation cn=new SingleConversation(mContext,item.mCore);
|
BaseUiConversation cn = new SingleConversation(mContext, item.mCore);
|
||||||
srcList.add(cn);
|
srcList.add(cn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<BaseUiConversation> getSrcList() {
|
public List<BaseUiConversation> getSrcList() {
|
||||||
if(srcList==null){
|
if (srcList == null) {
|
||||||
srcList=new ArrayList<>();
|
srcList = new ArrayList<>();
|
||||||
}
|
}
|
||||||
return srcList;
|
return srcList;
|
||||||
}
|
}
|
||||||
@ -112,6 +125,11 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
|||||||
holder.setText(R.id.title, mDataList.get(position).mCore.getObjectName().replace("SEARCH_TITLE", ""));
|
holder.setText(R.id.title, mDataList.get(position).mCore.getObjectName().replace("SEARCH_TITLE", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setEmptyView(View view) {
|
||||||
|
this.emptyView = view;
|
||||||
|
}
|
||||||
|
|
||||||
private void bindUser(ViewHolder holder, int position) {
|
private void bindUser(ViewHolder holder, int position) {
|
||||||
ImgLoader.display(holder.getContext(), mDataList.get(position).mCore.getPortraitUrl(), holder.getView(R.id.rc_conversation_portrait));
|
ImgLoader.display(holder.getContext(), mDataList.get(position).mCore.getPortraitUrl(), holder.getView(R.id.rc_conversation_portrait));
|
||||||
String title = mDataList.get(position).mCore.getConversationTitle();
|
String title = mDataList.get(position).mCore.getConversationTitle();
|
||||||
|
20
main/src/main/res/layout/item_main_msg_search_empty.xml
Normal file
20
main/src/main/res/layout/item_main_msg_search_empty.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?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:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/layout"
|
||||||
|
android:layout_width="300dp"
|
||||||
|
android:layout_height="300dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue
Block a user