public void onResult(AndroidJavaObject result) { Logger.d("ResultProxy got result for method: " + mMethod); int statusCode = JavaUtil.GetStatusCode(result); bool isSuccess = mSuccessCodes.Contains(statusCode); TurnBasedMatch match = null; if (isSuccess) { Logger.d("SUCCESS result from method " + mMethod + ": " + statusCode); if (mMatchCallback != null) { Logger.d("Attempting to get match from result of " + mMethod); AndroidJavaObject matchObj = JavaUtil.CallNullSafeObjectMethod(result, "getMatch"); if (matchObj != null) { Logger.d("Successfully got match from result of " + mMethod); match = JavaUtil.ConvertMatch(mOwner.mClient.PlayerId, matchObj); matchObj.Dispose(); } else { Logger.w("Got a NULL match from result of " + mMethod); } } } else { Logger.w("ERROR result from " + mMethod + ": " + statusCode); } if (mSuccessCallback != null) { Logger.d("Invoking success callback (success=" + isSuccess + ") for " + "result of method " + mMethod); PlayGamesHelperObject.RunOnGameThread(() => { mSuccessCallback.Invoke(isSuccess); }); } if (mMatchCallback != null) { Logger.d("Invoking match callback for result of method " + mMethod + ": " + "(success=" + isSuccess + ", match=" + (match == null ? "(null)" : match.ToString())); PlayGamesHelperObject.RunOnGameThread(() => { mMatchCallback.Invoke(isSuccess, match); }); } }
private void OnInvitationInboxTurnBasedMatch(AndroidJavaObject matchObj, Action <bool, TurnBasedMatch> callback) { Logger.d("AndroidTbmpClient.OnInvitationTurnBasedMatch"); Logger.d("Converting received match to our format..."); TurnBasedMatch match = JavaUtil.ConvertMatch(this.mClient.PlayerId, matchObj); Logger.d("Resulting match: " + match); if (callback != null) { Logger.d("Invoking match callback w/ success."); PlayGamesHelperObject.RunOnGameThread(delegate { callback(true, match); }); } }
private void CheckForConnectionExtras() { // check to see if we have a pending invitation in our gamehelper Logger.d("AndroidClient: CheckInvitationFromNotification."); Logger.d("AndroidClient: looking for invitation in our GameHelper."); Invitation invFromNotif = null; AndroidJavaObject invObj = mGHManager.GetInvitation(); AndroidJavaObject matchObj = mGHManager.GetTurnBasedMatch(); mGHManager.ClearInvitationAndTurnBasedMatch(); if (invObj != null) { Logger.d("Found invitation in GameHelper. Converting."); invFromNotif = ConvertInvitation(invObj); Logger.d("Found invitation in our GameHelper: " + invFromNotif); } else { Logger.d("No invitation in our GameHelper. Trying SignInHelperManager."); AndroidJavaClass cls = JavaUtil.GetClass(JavaConsts.SignInHelperManagerClass); using (AndroidJavaObject inst = cls.CallStatic <AndroidJavaObject>("getInstance")) { if (inst.Call <bool>("hasInvitation")) { invFromNotif = ConvertInvitation(inst.Call <AndroidJavaObject>("getInvitation")); Logger.d("Found invitation in SignInHelperManager: " + invFromNotif); inst.Call("forgetInvitation"); } else { Logger.d("No invitation in SignInHelperManager either."); } } } TurnBasedMatch match = null; if (matchObj != null) { Logger.d("Found match in GameHelper. Converting."); match = JavaUtil.ConvertMatch(mUserId, matchObj); Logger.d("Match from GameHelper: " + match); } else { Logger.d("No match in our GameHelper. Trying SignInHelperManager."); AndroidJavaClass cls = JavaUtil.GetClass(JavaConsts.SignInHelperManagerClass); using (AndroidJavaObject inst = cls.CallStatic <AndroidJavaObject>("getInstance")) { if (inst.Call <bool>("hasTurnBasedMatch")) { match = JavaUtil.ConvertMatch(mUserId, inst.Call <AndroidJavaObject>("getTurnBasedMatch")); Logger.d("Found match in SignInHelperManager: " + match); inst.Call("forgetTurnBasedMatch"); } else { Logger.d("No match in SignInHelperManager either."); } } } // if we got an invitation from the notification, invoke the delegate if (invFromNotif != null) { if (mInvitationDelegate != null) { Logger.d("Invoking invitation received delegate to deal with invitation " + " from notification."); PlayGamesHelperObject.RunOnGameThread(() => { if (mInvitationDelegate != null) { mInvitationDelegate.Invoke(invFromNotif, true); } }); } else { Logger.d("No delegate to handle invitation from notification; queueing."); mInvitationFromNotification = invFromNotif; } } // if we got a turn-based match, hand it over to the TBMP client who will know // better what to do with it if (match != null) { mTbmpClient.HandleMatchFromNotification(match); } }
private void CheckForConnectionExtras() { Logger.d("AndroidClient: CheckInvitationFromNotification."); Logger.d("AndroidClient: looking for invitation in our GameHelper."); Invitation invFromNotif = null; AndroidJavaObject invitation = this.mGHManager.GetInvitation(); AndroidJavaObject turnBasedMatch = this.mGHManager.GetTurnBasedMatch(); this.mGHManager.ClearInvitationAndTurnBasedMatch(); if (invitation != null) { Logger.d("Found invitation in GameHelper. Converting."); invFromNotif = this.ConvertInvitation(invitation); Logger.d("Found invitation in our GameHelper: " + invFromNotif); } else { Logger.d("No invitation in our GameHelper. Trying SignInHelperManager."); AndroidJavaClass @class = JavaUtil.GetClass("com.google.example.games.pluginsupport.SignInHelperManager"); using (AndroidJavaObject androidJavaObject = @class.CallStatic <AndroidJavaObject>("getInstance", new object[0])) { if (androidJavaObject.Call <bool>("hasInvitation", new object[0])) { invFromNotif = this.ConvertInvitation(androidJavaObject.Call <AndroidJavaObject>("getInvitation", new object[0])); Logger.d("Found invitation in SignInHelperManager: " + invFromNotif); androidJavaObject.Call("forgetInvitation", new object[0]); } else { Logger.d("No invitation in SignInHelperManager either."); } } } TurnBasedMatch turnBasedMatch2 = null; if (turnBasedMatch != null) { Logger.d("Found match in GameHelper. Converting."); turnBasedMatch2 = JavaUtil.ConvertMatch(this.mUserId, turnBasedMatch); Logger.d("Match from GameHelper: " + turnBasedMatch2); } else { Logger.d("No match in our GameHelper. Trying SignInHelperManager."); AndroidJavaClass class2 = JavaUtil.GetClass("com.google.example.games.pluginsupport.SignInHelperManager"); using (AndroidJavaObject androidJavaObject2 = class2.CallStatic <AndroidJavaObject>("getInstance", new object[0])) { if (androidJavaObject2.Call <bool>("hasTurnBasedMatch", new object[0])) { turnBasedMatch2 = JavaUtil.ConvertMatch(this.mUserId, androidJavaObject2.Call <AndroidJavaObject>("getTurnBasedMatch", new object[0])); Logger.d("Found match in SignInHelperManager: " + turnBasedMatch2); androidJavaObject2.Call("forgetTurnBasedMatch", new object[0]); } else { Logger.d("No match in SignInHelperManager either."); } } } if (invFromNotif != null) { if (this.mInvitationDelegate != null) { Logger.d("Invoking invitation received delegate to deal with invitation from notification."); PlayGamesHelperObject.RunOnGameThread(delegate { if (this.mInvitationDelegate != null) { this.mInvitationDelegate(invFromNotif, true); } }); } else { Logger.d("No delegate to handle invitation from notification; queueing."); this.mInvitationFromNotification = invFromNotif; } } if (turnBasedMatch2 != null) { this.mTbmpClient.HandleMatchFromNotification(turnBasedMatch2); } }
public void onResult(AndroidJavaObject result) { Logger.d("ResultProxy got result for method: " + this.mMethod); int statusCode = JavaUtil.GetStatusCode(result); bool isSuccess = this.mSuccessCodes.Contains(statusCode); TurnBasedMatch match = null; if (isSuccess) { Logger.d(string.Concat(new object[] { "SUCCESS result from method ", this.mMethod, ": ", statusCode })); if (this.mMatchCallback != null) { Logger.d("Attempting to get match from result of " + this.mMethod); AndroidJavaObject androidJavaObject = JavaUtil.CallNullSafeObjectMethod(result, "getMatch", new object[0]); if (androidJavaObject != null) { Logger.d("Successfully got match from result of " + this.mMethod); match = JavaUtil.ConvertMatch(this.mOwner.mClient.PlayerId, androidJavaObject); androidJavaObject.Dispose(); } else { Logger.w("Got a NULL match from result of " + this.mMethod); } } } else { Logger.w(string.Concat(new object[] { "ERROR result from ", this.mMethod, ": ", statusCode })); } if (this.mSuccessCallback != null) { Logger.d(string.Concat(new object[] { "Invoking success callback (success=", isSuccess, ") for result of method ", this.mMethod })); PlayGamesHelperObject.RunOnGameThread(delegate { this.mSuccessCallback(isSuccess); }); } if (this.mMatchCallback != null) { Logger.d(string.Concat(new object[] { "Invoking match callback for result of method ", this.mMethod, ": (success=", isSuccess, ", match=", (match != null) ? match.ToString() : "(null)" })); PlayGamesHelperObject.RunOnGameThread(delegate { this.mMatchCallback(isSuccess, match); }); } }