Fixed remaining setListener methods on ChatRoom

This commit is contained in:
Sylvain Berfini 2018-02-22 11:40:11 +01:00
parent 984c8aca2a
commit 1cc13877b0
2 changed files with 23 additions and 20 deletions

View file

@ -60,6 +60,7 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C
private ListSelectionHelper mSelectionHelper;
private RelativeLayout mWaitLayout;
private int mChatRoomDeletionPendingCount;
private ChatRoomListenerStub mChatRoomListener;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@ -111,6 +112,25 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C
}
};
mChatRoomListener = new ChatRoomListenerStub() {
@Override
public void onStateChanged(ChatRoom room, ChatRoom.State state) {
super.onStateChanged(room, state);
if (state == ChatRoom.State.Deleted || state == ChatRoom.State.TerminationFailed) {
mChatRoomDeletionPendingCount -= 1;
if (state == ChatRoom.State.TerminationFailed) {
//TODO error message
}
if (mChatRoomDeletionPendingCount == 0) {
mWaitLayout.setVisibility(View.GONE);
refreshChatRoomsList();
}
}
}
};
return view;
}
@ -173,24 +193,7 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C
}
}
room.setListener(new ChatRoomListenerStub() {
@Override
public void onStateChanged(ChatRoom room, ChatRoom.State state) {
super.onStateChanged(room, state);
if (state == ChatRoom.State.Deleted || state == ChatRoom.State.TerminationFailed) {
mChatRoomDeletionPendingCount -= 1;
if (state == ChatRoom.State.TerminationFailed) {
//TODO error message
}
if (mChatRoomDeletionPendingCount == 0) {
mWaitLayout.setVisibility(View.GONE);
refreshChatRoomsList();
}
}
}
});
room.addListener(mChatRoomListener);
lc.deleteChatRoom(room);
}
if (mChatRoomDeletionPendingCount > 0) {

View file

@ -111,7 +111,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter {
public void clear() {
for (ChatRoom room : mRooms) {
room.setListener(null);
room.removeListener(mListener);
}
mRooms.clear();
}
@ -158,7 +158,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter {
}
if (chatRoom.hasCapability(ChatRoomCapabilities.Conference.toInt()) && chatRoom.getState() == ChatRoom.State.Created) { // Only set for state Created otherwise it will conflict with removal listener
chatRoom.setListener(mListener);
chatRoom.addListener(mListener);
chatRoom.setUserData(holder);
}