private void handleParticipantStatusChanged(AndroidJavaObject room, AndroidJavaObject participantIds) { mParent.mRoom = room; int size = participantIds.Get <int>("size"); for (int i = 0; i < size; i++) { String participantId = participantIds.Call <String>("get", i); Participant participant = AndroidJavaConverter.ToParticipant( mParent.mRoom.Call <AndroidJavaObject>("getParticipant", participantId)); if (participant.Status != Participant.ParticipantStatus.Declined && participant.Status != Participant.ParticipantStatus.Left) { continue; } mListener.OnParticipantLeft(participant); var roomStatus = mParent.GetRoomStatus(); if (roomStatus != RoomStatus.Connecting && roomStatus != RoomStatus.AutoMatching) { mParent.LeaveRoom(); } } }
internal static Invitation ToInvitation(AndroidJavaObject invitation) { string invitationId = invitation.Call <string>("getInvitationId"); int invitationType = invitation.Call <int>("getInvitationType"); int variant = invitation.Call <int>("getVariant"); long creationTimestamp = invitation.Call <long>("getCreationTimestamp"); System.DateTime creationTime = AndroidJavaConverter.ToDateTime(creationTimestamp); using (var participant = invitation.Call <AndroidJavaObject>("getInviter")) { return(new Invitation( AndroidJavaConverter.FromInvitationType(invitationType), invitationId, AndroidJavaConverter.ToParticipant(participant), variant, creationTime)); } }
public Participant GetParticipant(string participantId) { if (GetRoomStatus() != RoomStatus.Active) { return(null); } try { using (var participant = mRoom.Call <AndroidJavaObject>("getParticipant", participantId)) { return(AndroidJavaConverter.ToParticipant(participant)); } } catch (Exception e) { return(null); } }
internal static List <Participant> ToParticipantList(AndroidJavaObject turnBasedMatch) { using (var participantsObject = turnBasedMatch.Call <AndroidJavaObject>("getParticipantIds")) { List <Participant> participants = new List <Participant>(); int size = participantsObject.Call <int>("size"); for (int i = 0; i < size; i++) { string participantId = participantsObject.Call <string>("get", i); using (var participantObject = turnBasedMatch.Call <AndroidJavaObject>("getParticipant", participantId)) { participants.Add(AndroidJavaConverter.ToParticipant(participantObject)); } } return(participants); } }
private List <Participant> GetParticipantList() { if (mRoom == null) { return(new List <Participant>()); } List <Participant> participants = new List <Participant>(); using (var participantsObject = mRoom.Call <AndroidJavaObject>("getParticipants")) { int size = participantsObject.Call <int>("size"); for (int i = 0; i < size; i++) { using (var participant = participantsObject.Call <AndroidJavaObject>("get", i)) { participants.Add(AndroidJavaConverter.ToParticipant(participant)); } } } return(participants); }