Fixed chat rooms list not being refreshed when native contacts parsing is done

This commit is contained in:
Sylvain Berfini 2019-09-30 10:05:55 +02:00
parent ff66a63bdb
commit 956fca289c
2 changed files with 14 additions and 5 deletions

View file

@ -70,13 +70,22 @@ public class ChatRoomsAdapter extends SelectableAdapter<ChatRoomViewHolder> {
} }
public void refresh() { public void refresh() {
refresh(false);
}
public void refresh(boolean force) {
ChatRoom[] rooms = LinphoneManager.getCore().getChatRooms(); ChatRoom[] rooms = LinphoneManager.getCore().getChatRooms();
List<ChatRoom> roomsList = Arrays.asList(rooms); List<ChatRoom> roomsList = Arrays.asList(rooms);
if (force) {
DiffUtil.DiffResult diffResult = DiffUtil.DiffResult diffResult =
DiffUtil.calculateDiff(new ChatRoomDiffCallback(roomsList, mRooms)); DiffUtil.calculateDiff(new ChatRoomDiffCallback(roomsList, mRooms));
diffResult.dispatchUpdatesTo(this); diffResult.dispatchUpdatesTo(this);
mRooms = roomsList; mRooms = roomsList;
} else {
mRooms = roomsList;
notifyDataSetChanged();
}
} }
/** Adapter's methods */ /** Adapter's methods */

View file

@ -259,7 +259,7 @@ public class ChatRoomsFragment extends Fragment
public void onContactsUpdated() { public void onContactsUpdated() {
ChatRoomsAdapter adapter = (ChatRoomsAdapter) mChatRoomsList.getAdapter(); ChatRoomsAdapter adapter = (ChatRoomsAdapter) mChatRoomsList.getAdapter();
if (adapter != null) { if (adapter != null) {
adapter.refresh(); adapter.refresh(true);
} }
} }