Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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
            });
        }