internal static TurnBasedMatch ToTurnBasedMatch(AndroidJavaObject turnBasedMatch) { if (turnBasedMatch == null) { return(null); } string matchId = turnBasedMatch.Call <string>("getMatchId"); byte[] data = turnBasedMatch.Call <byte[]>("getData"); bool canRematch = turnBasedMatch.Call <bool>("canRematch"); uint availableAutomatchSlots = (uint)turnBasedMatch.Call <int>("getAvailableAutoMatchSlots"); string selfParticipantId = turnBasedMatch.Call <string>("getCreatorId"); List <Participant> participants = ToParticipantList(turnBasedMatch); string pendingParticipantId = turnBasedMatch.Call <string>("getPendingParticipantId"); TurnBasedMatch.MatchStatus turnStatus = ToMatchStatus(turnBasedMatch.Call <int>("getStatus")); TurnBasedMatch.MatchTurnStatus matchStatus = AndroidJavaConverter.ToMatchTurnStatus(turnBasedMatch.Call <int>("getTurnStatus")); uint variant = (uint)turnBasedMatch.Call <int>("getVariant"); uint version = (uint)turnBasedMatch.Call <int>("getVersion"); DateTime creationTime = AndroidJavaConverter.ToDateTime(turnBasedMatch.Call <long>("getCreationTimestamp")); DateTime lastUpdateTime = AndroidJavaConverter.ToDateTime(turnBasedMatch.Call <long>("getLastUpdatedTimestamp")); return(new TurnBasedMatch(matchId, data, canRematch, selfParticipantId, participants, availableAutomatchSlots, pendingParticipantId, matchStatus, turnStatus, variant, version, creationTime, lastUpdateTime)); }