Beispiel #1
0
            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();
                    }
                }
            }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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);
        }