async Task updateRoomInfo(RoomInfo roomInfo) { RoomInfo newRoomInfo = await client.checkRoomInfo(roomInfo); if (newRoomInfo != null) { int index = _LANRoomList.FindIndex(r => r.isSameRoom(roomInfo)); if (index >= -1) { _LANRoomList[index] = newRoomInfo; RoomList list = ui.NetworkingPageGroup.LANPanel.RoomScrollView.RoomList; RoomListItem item = list.getItems()[index]; refreshRoomListItem(item, newRoomInfo); } } else { int index = _LANRoomList.FindIndex(r => r.isSameRoom(roomInfo)); if (index > -1) { _LANRoomList.RemoveAt(index); RoomList list = ui.NetworkingPageGroup.LANPanel.RoomScrollView.RoomList; list.removeItem(list.getItems()[index]); } } }
private void Client_onRoomFound(RoomInfo obj) { if (obj is RoomInfo tHHRoom) { int index = _LANRoomList.FindIndex(r => r.id == tHHRoom.id); if (index < 0) { if (!obj.isSameRoom(host.room)) { _LANRoomList.Add(tHHRoom); RoomListItem item = ui.NetworkingPageGroup.LANPanel.RoomScrollView.RoomList.addItem(); refreshRoomListItem(item, tHHRoom); } } else { if (!obj.isSameRoom(host.room)) { _LANRoomList[index] = tHHRoom; RoomListItem item = ui.NetworkingPageGroup.LANPanel.RoomScrollView.RoomList.getItems()[index]; refreshRoomListItem(item, tHHRoom); } else { _LANRoomList.RemoveAt(index); RoomList list = ui.NetworkingPageGroup.LANPanel.RoomScrollView.RoomList; list.removeItem(list.getItems()[index]); } } } }