/// <summary> /// Convert from <see cref="Participant.ParticipantStatus"/> /// to <see cref="GPGS_Participant.ParticipantStatus"/>. /// </summary> public static GPGS_Participant.ParticipantStatus ToGPGSParticipantStatus(this Participant.ParticipantStatus status) { switch (status) { case Participant.ParticipantStatus.NotInvitedYet: return(GPGS_Participant.ParticipantStatus.NotInvitedYet); case Participant.ParticipantStatus.Invited: return(GPGS_Participant.ParticipantStatus.Invited); case Participant.ParticipantStatus.Declined: return(GPGS_Participant.ParticipantStatus.Declined); case Participant.ParticipantStatus.Joined: return(GPGS_Participant.ParticipantStatus.Joined); case Participant.ParticipantStatus.Unresponsive: return(GPGS_Participant.ParticipantStatus.Unresponsive); case Participant.ParticipantStatus.Left: return(GPGS_Participant.ParticipantStatus.Left); case Participant.ParticipantStatus.Done: return(GPGS_Participant.ParticipantStatus.Finished); case Participant.ParticipantStatus.Matching: case Participant.ParticipantStatus.Unknown: default: return(GPGS_Participant.ParticipantStatus.Unknown); } }
internal Participant(string displayName, string participantId, Participant.ParticipantStatus status, Player player, bool connectedToRoom) { this.mDisplayName = displayName; this.mParticipantId = participantId; this.mStatus = status; this.mPlayer = player; this.mIsConnectedToRoom = connectedToRoom; }
public static Participant ConvertParticipant(AndroidJavaObject participant) { string displayName = participant.Call <string>("getDisplayName"); string participantId = participant.Call <string>("getParticipantId"); Participant.ParticipantStatus status = Participant.ParticipantStatus.Unknown; GooglePlayGames.BasicApi.Multiplayer.Player player = null; bool connected = participant.Call <bool>("isConnectedToRoom"); int statusValue = participant.Call <int>("getStatus"); switch (statusValue) { case JavaConsts.STATUS_NOT_INVITED_YET: status = Participant.ParticipantStatus.NotInvitedYet; break; case JavaConsts.STATUS_INVITED: status = Participant.ParticipantStatus.Invited; break; case JavaConsts.STATUS_JOINED: status = Participant.ParticipantStatus.Joined; break; case JavaConsts.STATUS_DECLINED: status = Participant.ParticipantStatus.Declined; break; case JavaConsts.STATUS_LEFT: status = Participant.ParticipantStatus.Left; break; case JavaConsts.STATUS_FINISHED: status = Participant.ParticipantStatus.Finished; break; case JavaConsts.STATUS_UNRESPONSIVE: status = Participant.ParticipantStatus.Unresponsive; break; default: status = Participant.ParticipantStatus.Unknown; break; } AndroidJavaObject playerObj = JavaUtil.CallNullSafeObjectMethod(participant, "getPlayer"); if (playerObj != null) { player = new GooglePlayGames.BasicApi.Multiplayer.Player(playerObj.Call <string>("getDisplayName"), playerObj.Call <string>("getPlayerId")); playerObj.Dispose(); playerObj = null; } return(new Participant(displayName, participantId, status, player, connected)); }
internal static Participant ToParticipant(AndroidJavaObject participant) { string displayName = participant.Call <string>("getDisplayName"); string participantId = participant.Call <string>("getParticipantId"); Participant.ParticipantStatus status = AndroidJavaConverter.FromParticipantStatus(participant.Call <int>("getStatus")); bool connectedToRoom = participant.Call <bool>("isConnectedToRoom"); Player player = null; try { using (var playerObject = participant.Call <AndroidJavaObject>("getPlayer")) { player = ToPlayer(playerObject); } } catch (Exception) { // Unity throws exception for returned null } return(new Participant(displayName, participantId, status, player, connectedToRoom)); }