Fixed chat rooms list not being refreshed when native contacts parsing is done
This commit is contained in:
parent
ff66a63bdb
commit
956fca289c
2 changed files with 14 additions and 5 deletions
|
@ -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 */
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue