public void Finish(string matchId, byte[] data, MatchOutcome outcome, Action <bool> callback) { Logger.d(string.Format("AndroidTbmpClient.Finish matchId={0}, data={1} outcome={2}", matchId, data == null ? "(null)" : data.Length + " bytes", outcome)); Logger.d("Preparing list of participant results as Android ArrayList."); AndroidJavaObject participantResults = new AndroidJavaObject("java.util.ArrayList"); if (outcome != null) { foreach (string pid in outcome.ParticipantIds) { Logger.d("Converting participant result to Android object: " + pid); AndroidJavaObject thisParticipantResult = new AndroidJavaObject( JavaConsts.ParticipantResultClass, pid, JavaUtil.GetAndroidParticipantResult(outcome.GetResultFor(pid)), outcome.GetPlacementFor(pid)); // (yes, the return type of ArrayList.add is bool, strangely) Logger.d("Adding participant result to Android ArrayList."); participantResults.Call <bool>("add", thisParticipantResult); thisParticipantResult.Dispose(); } } TbmpApiCall("tbmp finish w/ outcome", "finishMatch", callback, null, matchId, data, participantResults); }
public void Finish(string matchId, byte[] data, MatchOutcome outcome, Action <bool> callback) { Logger.d(string.Format("AndroidTbmpClient.Finish matchId={0}, data={1} outcome={2}", matchId, (data != null) ? (data.Length + " bytes") : "(null)", outcome)); Logger.d("Preparing list of participant results as Android ArrayList."); AndroidJavaObject androidJavaObject = new AndroidJavaObject("java.util.ArrayList", new object[0]); if (outcome != null) { foreach (string current in outcome.ParticipantIds) { Logger.d("Converting participant result to Android object: " + current); AndroidJavaObject androidJavaObject2 = new AndroidJavaObject("com.google.android.gms.games.multiplayer.ParticipantResult", new object[] { current, JavaUtil.GetAndroidParticipantResult(outcome.GetResultFor(current)), outcome.GetPlacementFor(current) }); Logger.d("Adding participant result to Android ArrayList."); androidJavaObject.Call <bool>("add", new object[] { androidJavaObject2 }); androidJavaObject2.Dispose(); } } this.TbmpApiCall("tbmp finish w/ outcome", "finishMatch", callback, null, new object[] { matchId, data, androidJavaObject }); }