Exemplo n.º 1
0
  /**
   * Handle activity result. Call this method from your Activity's onActivityResult callback. If the
   * activity result pertains to the sign-in process, processes it appropriately.
   */
  public void onActivityResult(int requestCode, int responseCode, Intent intent) {
    debugLog(
        "onActivityResult: req="
            + (requestCode == RC_RESOLVE ? "RC_RESOLVE" : String.valueOf(requestCode))
            + ", resp="
            + GameHelperUtils.activityResponseCodeToString(responseCode));
    if (requestCode != RC_RESOLVE) {
      debugLog("onActivityResult: request code not meant for us. Ignoring.");
      return;
    }

    // no longer expecting a resolution
    mExpectingResolution = false;

    if (!mConnecting) {
      debugLog("onActivityResult: ignoring because we are not connecting.");
      return;
    }

    // We're coming back from an activity that was launched to resolve a
    // connection problem. For example, the sign-in UI.
    if (responseCode == Activity.RESULT_OK) {
      // Ready to try to connect again.
      debugLog("onAR: Resolution was RESULT_OK, so connecting current client again.");
      connect();
    } else if (responseCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) {
      debugLog("onAR: Resolution was RECONNECT_REQUIRED, so reconnecting.");
      connect();
    } else if (responseCode == Activity.RESULT_CANCELED) {
      // User cancelled.
      debugLog("onAR: Got a cancellation result, so disconnecting.");
      mSignInCancelled = true;
      mConnectOnStart = false;
      mUserInitiatedSignIn = false;
      mSignInFailureReason = null; // cancelling is not a failure!
      mConnecting = false;
      mGoogleApiClient.disconnect();

      // increment # of cancellations
      int prevCancellations = getSignInCancellations();
      int newCancellations = incrementSignInCancellations();
      debugLog(
          "onAR: # of cancellations "
              + prevCancellations
              + " --> "
              + newCancellations
              + ", max "
              + mMaxAutoSignInAttempts);

      notifyListener(false);
    } else {
      // Whatever the problem we were trying to solve, it was not
      // solved. So give up and show an error message.
      debugLog(
          "onAR: responseCode="
              + GameHelperUtils.activityResponseCodeToString(responseCode)
              + ", so giving up.");
      giveUp(new SignInFailureReason(mConnectionResult.getErrorCode(), responseCode));
    }
  }
Exemplo n.º 2
0
 @Override
 public String toString() {
   return "SignInFailureReason(serviceErrorCode:"
       + GameHelperUtils.errorCodeToString(mServiceErrorCode)
       + ((mActivityResultCode == NO_ACTIVITY_RESULT_CODE)
           ? ")"
           : (",activityResultCode:"
               + GameHelperUtils.activityResponseCodeToString(mActivityResultCode)
               + ")"));
 }