Try to prevent out of bound exceptions that happen sometimes
This commit is contained in:
parent
76b9dd976a
commit
251212c15d
1 changed files with 8 additions and 2 deletions
|
@ -78,7 +78,12 @@ public class ChatMessagesAdapter extends SelectableAdapter<ChatMessageViewHolder
|
||||||
ChatMessageViewHolder holder =
|
ChatMessageViewHolder holder =
|
||||||
(ChatMessageViewHolder) message.getUserData();
|
(ChatMessageViewHolder) message.getUserData();
|
||||||
if (holder != null) {
|
if (holder != null) {
|
||||||
notifyItemChanged(holder.getAdapterPosition());
|
int position = holder.getAdapterPosition();
|
||||||
|
if (position >= 0) {
|
||||||
|
notifyItemChanged(position);
|
||||||
|
} else {
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Just in case, better to refresh the whole view than to miss
|
// Just in case, better to refresh the whole view than to miss
|
||||||
// an update
|
// an update
|
||||||
|
@ -104,6 +109,7 @@ public class ChatMessagesAdapter extends SelectableAdapter<ChatMessageViewHolder
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NonNull ChatMessageViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull ChatMessageViewHolder holder, int position) {
|
||||||
|
if (position < 0) return;
|
||||||
EventLog event = mHistory.get(position);
|
EventLog event = mHistory.get(position);
|
||||||
|
|
||||||
holder.delete.setVisibility(View.GONE);
|
holder.delete.setVisibility(View.GONE);
|
||||||
|
@ -316,7 +322,7 @@ public class ChatMessagesAdapter extends SelectableAdapter<ChatMessageViewHolder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (position < mHistory.size() - 1
|
if (position >= 0 && position < mHistory.size() - 1
|
||||||
&& mContext.getResources()
|
&& mContext.getResources()
|
||||||
.getBoolean(R.bool.lower_space_between_chat_bubbles_if_same_person)) {
|
.getBoolean(R.bool.lower_space_between_chat_bubbles_if_same_person)) {
|
||||||
EventLog nextEvent = (EventLog) getItem(position + 1);
|
EventLog nextEvent = (EventLog) getItem(position + 1);
|
||||||
|
|
Loading…
Reference in a new issue