protected override void OnActivityResult (int requestCode, Android.App.Result resultCode, Android.Content.Intent data) { switch (requestCode) { case REQUEST_CODE_CHANGE_MASKED_WALLET: if (resultCode == Android.App.Result.Ok && data.HasExtra (WalletConstants.ExtraMaskedWallet)) { mMaskedWallet = data.GetParcelableExtra (WalletConstants.ExtraMaskedWallet).JavaCast<MaskedWallet> (); ((FullWalletConfirmationButtonFragment) ResultTargetFragment) .UpdateMaskedWallet (mMaskedWallet); } // you may also want to use the new masked wallet data here, say to recalculate // shipping or taxes if shipping address changed break; case WalletConstants.ResultError: int errorCode = data.GetIntExtra (WalletConstants.ExtraErrorCode, 0); HandleError (errorCode); break; default: base.OnActivityResult (requestCode, resultCode, data); break; } }
public override void OnActivityResult (int requestCode, int resultCode, Android.Content.Intent data) { mProgressDialog.Hide (); // retrieve the error code, if available int errorCode = -1; if (data != null) errorCode = data.GetIntExtra (WalletConstants.ExtraErrorCode, -1); switch (requestCode) { case REQUEST_CODE_RESOLVE_ERR: if (resultCode == (int)Result.Ok) { mGoogleApiClient.Connect(); } else { handleUnrecoverableGoogleWalletError(errorCode); } break; case REQUEST_CODE_RESOLVE_LOAD_FULL_WALLET: switch (resultCode) { case (int)Result.Ok: if (data.HasExtra(WalletConstants.ExtraFullWallet)) { FullWallet fullWallet = data.GetParcelableExtra (WalletConstants.ExtraFullWallet).JavaCast<FullWallet> (); // the full wallet can now be used to process the customer's payment // send the wallet info up to server to process, and to get the result // for sending a transaction status fetchTransactionStatus(fullWallet); } else if (data.HasExtra(WalletConstants.ExtraMaskedWallet)) { // re-launch the activity with new masked wallet information mMaskedWallet = data.GetParcelableExtra (WalletConstants.ExtraMaskedWallet).JavaCast<MaskedWallet> (); mActivityLaunchIntent.PutExtra (Constants.EXTRA_MASKED_WALLET, mMaskedWallet); StartActivity(mActivityLaunchIntent); } break; case (int)Result.Canceled: // nothing to do here break; default: handleError(errorCode); break; } break; } }
/** * If the confirmation page encounters an error it can't handle, it will send the customer back * to this page. The intent should include the error code as an {@code int} in the field * {@link WalletConstants#EXTRA_ERROR_CODE}. */ protected override void OnNewIntent (Android.Content.Intent intent) { if (intent.HasExtra (WalletConstants.ExtraErrorCode)) { int errorCode = intent.GetIntExtra (WalletConstants.ExtraErrorCode, 0); HandleError(errorCode); } }