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)); }
/// <summary> /// Convert from <see cref="TurnBasedMatch.MatchStatus"/> /// to <see cref="GPGS_TurnBasedMatch.MatchStatus"/>. /// </summary> public static GPGS_TurnBasedMatch.MatchStatus ToGPGSMatchStatus(this TurnBasedMatch.MatchStatus status) { switch (status) { case TurnBasedMatch.MatchStatus.Active: return(GPGS_TurnBasedMatch.MatchStatus.Active); case TurnBasedMatch.MatchStatus.Ended: return(GPGS_TurnBasedMatch.MatchStatus.Complete); case TurnBasedMatch.MatchStatus.Matching: return(GPGS_TurnBasedMatch.MatchStatus.AutoMatching); case TurnBasedMatch.MatchStatus.Cancelled: return(GPGS_TurnBasedMatch.MatchStatus.Cancelled); case TurnBasedMatch.MatchStatus.Expired: return(GPGS_TurnBasedMatch.MatchStatus.Expired); case TurnBasedMatch.MatchStatus.Deleted: return(GPGS_TurnBasedMatch.MatchStatus.Deleted); case TurnBasedMatch.MatchStatus.Unknown: default: return(GPGS_TurnBasedMatch.MatchStatus.Unknown); } }
public static TurnBasedMatch ConvertMatch(string playerId, AndroidJavaObject matchObj) { List <AndroidJavaObject> list = new List <AndroidJavaObject>(); Logger.d("AndroidTbmpClient.ConvertMatch, playerId=" + playerId); List <Participant> list2 = new List <Participant>(); string matchId = matchObj.Call <string>("getMatchId", new object[0]); AndroidJavaObject androidJavaObject = JavaUtil.CallNullSafeObjectMethod(matchObj, "getData", new object[0]); list.Add(androidJavaObject); byte[] data = JavaUtil.ConvertByteArray(androidJavaObject); bool canRematch = matchObj.Call <bool>("canRematch", new object[0]); int availableAutomatchSlots = matchObj.Call <int>("getAvailableAutoMatchSlots", new object[0]); string selfParticipantId = matchObj.Call <string>("getParticipantId", new object[] { playerId }); AndroidJavaObject androidJavaObject2 = matchObj.Call <AndroidJavaObject>("getParticipantIds", new object[0]); list.Add(androidJavaObject2); int num = androidJavaObject2.Call <int>("size", new object[0]); for (int i = 0; i < num; i++) { string text = androidJavaObject2.Call <string>("get", new object[] { i }); AndroidJavaObject androidJavaObject3 = matchObj.Call <AndroidJavaObject>("getParticipant", new object[] { text }); list.Add(androidJavaObject3); Participant item = JavaUtil.ConvertParticipant(androidJavaObject3); list2.Add(item); } string pendingParticipantId = matchObj.Call <string>("getPendingParticipantId", new object[0]); TurnBasedMatch.MatchTurnStatus turnStatus = JavaUtil.ConvertTurnStatus(matchObj.Call <int>("getTurnStatus", new object[0])); TurnBasedMatch.MatchStatus matchStatus = JavaUtil.ConvertMatchStatus(matchObj.Call <int>("getStatus", new object[0])); int variant = matchObj.Call <int>("getVariant", new object[0]); foreach (AndroidJavaObject current in list) { if (current != null) { current.Dispose(); } } list2.Sort(); return(new TurnBasedMatch(matchId, data, canRematch, selfParticipantId, list2, availableAutomatchSlots, pendingParticipantId, turnStatus, matchStatus, variant)); }
internal TurnBasedMatch(string matchId, byte[] data, bool canRematch, string selfParticipantId, List <Participant> participants, int availableAutomatchSlots, string pendingParticipantId, TurnBasedMatch.MatchTurnStatus turnStatus, TurnBasedMatch.MatchStatus matchStatus, int variant) { this.mMatchId = matchId; this.mData = data; this.mCanRematch = canRematch; this.mSelfParticipantId = selfParticipantId; this.mParticipants = participants; this.mParticipants.Sort(); this.mAvailableAutomatchSlots = availableAutomatchSlots; this.mPendingParticipantId = pendingParticipantId; this.mTurnStatus = turnStatus; this.mMatchStatus = matchStatus; this.mVariant = variant; }