From 3f65e2dc8c59d06dfe0017196217ed743cbabc5b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 17 Jan 2020 10:37:06 +0100 Subject: [PATCH] Fixed ephemeral message not removed from list that happens sometimes --- .../main/java/org/linphone/chat/ChatMessagesAdapter.java | 4 +++- .../main/java/org/linphone/chat/ChatMessagesFragment.java | 8 +++++++- .../org/linphone/chat/ChatMessagesGenericAdapter.java | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java b/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java index dcd0b3e45..95220570e 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java +++ b/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java @@ -346,11 +346,13 @@ public class ChatMessagesAdapter extends SelectableAdapter= 0) { removeItem(index); + return true; } + return false; } private void changeBackgroundDependingOnPreviousAndNextEvents( diff --git a/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java b/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java index 3ec842396..025e03485 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java @@ -1395,7 +1395,13 @@ public class ChatMessagesFragment extends Fragment @Override public void onEphemeralMessageDeleted(ChatRoom chatRoom, EventLog eventLog) { - ((ChatMessagesGenericAdapter) mChatEventsList.getAdapter()).removeFromHistory(eventLog); + Log.i("[Chat Room] Ephemeral message expired"); + if (!((ChatMessagesGenericAdapter) mChatEventsList.getAdapter()) + .removeFromHistory(eventLog)) { + Log.w("[Chat Room] Ephemeral message not found, refresh list"); + ((ChatMessagesGenericAdapter) mChatEventsList.getAdapter()) + .refresh(mChatRoom.getHistoryEvents(MESSAGES_PER_PAGE)); + } } @Override diff --git a/app/src/main/java/org/linphone/chat/ChatMessagesGenericAdapter.java b/app/src/main/java/org/linphone/chat/ChatMessagesGenericAdapter.java index aeb47ca2b..0052c27e8 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessagesGenericAdapter.java +++ b/app/src/main/java/org/linphone/chat/ChatMessagesGenericAdapter.java @@ -38,5 +38,5 @@ interface ChatMessagesGenericAdapter { void removeItem(int i); - void removeFromHistory(EventLog eventLog); + boolean removeFromHistory(EventLog eventLog); }