From 956fca289c42391c33c67256e078f57df4b6d733 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 30 Sep 2019 10:05:55 +0200 Subject: [PATCH] Fixed chat rooms list not being refreshed when native contacts parsing is done --- .../org/linphone/chat/ChatRoomsAdapter.java | 17 +++++++++++++---- .../org/linphone/chat/ChatRoomsFragment.java | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java b/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java index c494a587c..54746e211 100644 --- a/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java +++ b/app/src/main/java/org/linphone/chat/ChatRoomsAdapter.java @@ -70,13 +70,22 @@ public class ChatRoomsAdapter extends SelectableAdapter { } public void refresh() { + refresh(false); + } + + public void refresh(boolean force) { ChatRoom[] rooms = LinphoneManager.getCore().getChatRooms(); List roomsList = Arrays.asList(rooms); - DiffUtil.DiffResult diffResult = - DiffUtil.calculateDiff(new ChatRoomDiffCallback(roomsList, mRooms)); - diffResult.dispatchUpdatesTo(this); - mRooms = roomsList; + if (force) { + DiffUtil.DiffResult diffResult = + DiffUtil.calculateDiff(new ChatRoomDiffCallback(roomsList, mRooms)); + diffResult.dispatchUpdatesTo(this); + mRooms = roomsList; + } else { + mRooms = roomsList; + notifyDataSetChanged(); + } } /** Adapter's methods */ diff --git a/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java b/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java index ee5409c5e..9e5368bcd 100644 --- a/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java @@ -259,7 +259,7 @@ public class ChatRoomsFragment extends Fragment public void onContactsUpdated() { ChatRoomsAdapter adapter = (ChatRoomsAdapter) mChatRoomsList.getAdapter(); if (adapter != null) { - adapter.refresh(); + adapter.refresh(true); } }