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)); }