Java源码示例:com.google.android.gms.wallet.fragment.WalletFragmentMode

示例1
private void createAndAddWalletFragment() {
    WalletFragmentStyle walletFragmentStyle = new WalletFragmentStyle()
            .setMaskedWalletDetailsTextAppearance(
                    R.style.BikestoreWalletFragmentDetailsTextAppearance)
            .setMaskedWalletDetailsHeaderTextAppearance(
                    R.style.BikestoreWalletFragmentDetailsHeaderTextAppearance)
            .setMaskedWalletDetailsBackgroundColor(
                    getResources().getColor(R.color.bikestore_white))
            .setMaskedWalletDetailsButtonBackgroundResource(
                    R.drawable.bikestore_btn_default_holo_light);

    // [START wallet_fragment_options]
    WalletFragmentOptions walletFragmentOptions = WalletFragmentOptions.newBuilder()
            .setEnvironment(Constants.WALLET_ENVIRONMENT)
            .setFragmentStyle(walletFragmentStyle)
            .setTheme(WalletConstants.THEME_LIGHT)
            .setMode(WalletFragmentMode.SELECTION_DETAILS)
            .build();
    mWalletFragment = SupportWalletFragment.newInstance(walletFragmentOptions);
    // [END wallet_fragment_options]

    // Now initialize the Wallet Fragment
    String accountName = ((BikestoreApplication) getApplication()).getAccountName();
    WalletFragmentInitParams.Builder startParamsBuilder = WalletFragmentInitParams.newBuilder()
            .setMaskedWallet(mMaskedWallet)
            .setMaskedWalletRequestCode(REQUEST_CODE_CHANGE_MASKED_WALLET)
            .setAccountName(accountName);
    mWalletFragment.initialize(startParamsBuilder.build());

    // add Wallet fragment to the UI
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.dynamic_wallet_masked_wallet_fragment, mWalletFragment)
            .commit();
}
 
示例2
private void showAndroidPay() {
    if (getParentActivity() == null || androidPayContainer == null) {
        return;
    }

    WalletFragmentOptions.Builder optionsBuilder = WalletFragmentOptions.newBuilder();
    optionsBuilder.setEnvironment(paymentForm.invoice.test ? WalletConstants.ENVIRONMENT_TEST : WalletConstants.ENVIRONMENT_PRODUCTION);
    optionsBuilder.setMode(WalletFragmentMode.BUY_BUTTON);

    WalletFragmentStyle walletFragmentStyle;
    if (androidPayPublicKey != null) {
        androidPayContainer.setBackgroundColor(androidPayBackgroundColor);
        walletFragmentStyle = new WalletFragmentStyle()
                .setBuyButtonText(WalletFragmentStyle.BuyButtonText.BUY_WITH)
                .setBuyButtonAppearance(androidPayBlackTheme ? WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_LIGHT_WITH_BORDER : WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_DARK)
                .setBuyButtonWidth(WalletFragmentStyle.Dimension.MATCH_PARENT);
    } else {
        walletFragmentStyle = new WalletFragmentStyle()
                .setBuyButtonText(WalletFragmentStyle.BuyButtonText.LOGO_ONLY)
                .setBuyButtonAppearance(WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_LIGHT_WITH_BORDER)
                .setBuyButtonWidth(WalletFragmentStyle.Dimension.WRAP_CONTENT);
    }

    optionsBuilder.setFragmentStyle(walletFragmentStyle);
    WalletFragment walletFragment = WalletFragment.newInstance(optionsBuilder.build());
    FragmentManager fragmentManager = getParentActivity().getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(fragment_container_id, walletFragment);
    fragmentTransaction.commit();

    ArrayList<TLRPC.TL_labeledPrice> arrayList = new ArrayList<>(paymentForm.invoice.prices);
    if (shippingOption != null) {
        arrayList.addAll(shippingOption.prices);
    }
    totalPriceDecimal = getTotalPriceDecimalString(arrayList);

    PaymentMethodTokenizationParameters parameters;
    if (androidPayPublicKey != null) {
        parameters = PaymentMethodTokenizationParameters.newBuilder()
                .setPaymentMethodTokenizationType(PaymentMethodTokenizationType.NETWORK_TOKEN)
                .addParameter("publicKey", androidPayPublicKey)
                .build();
    } else {
        parameters = PaymentMethodTokenizationParameters.newBuilder()
                .setPaymentMethodTokenizationType(PaymentMethodTokenizationType.PAYMENT_GATEWAY)
                .addParameter("gateway", "stripe")
                .addParameter("stripe:publishableKey", stripeApiKey)
                .addParameter("stripe:version", StripeApiHandler.VERSION)
                .build();
    }

    MaskedWalletRequest maskedWalletRequest = MaskedWalletRequest.newBuilder()
            .setPaymentMethodTokenizationParameters(parameters)
            .setEstimatedTotalPrice(totalPriceDecimal)
            .setCurrencyCode(paymentForm.invoice.currency)
            .build();

    WalletFragmentInitParams initParams = WalletFragmentInitParams.newBuilder()
            .setMaskedWalletRequest(maskedWalletRequest)
            .setMaskedWalletRequestCode(LOAD_MASKED_WALLET_REQUEST_CODE)
            .build();

    walletFragment.initialize(initParams);
    androidPayContainer.setVisibility(View.VISIBLE);
    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.playTogether(ObjectAnimator.ofFloat(androidPayContainer, "alpha", 0.0f, 1.0f));
    animatorSet.setInterpolator(new DecelerateInterpolator());
    animatorSet.setDuration(180);
    animatorSet.start();
}
 
示例3
private void showAndroidPay() {
    if (getParentActivity() == null || androidPayContainer == null) {
        return;
    }

    WalletFragmentOptions.Builder optionsBuilder = WalletFragmentOptions.newBuilder();
    optionsBuilder.setEnvironment(paymentForm.invoice.test ? WalletConstants.ENVIRONMENT_TEST : WalletConstants.ENVIRONMENT_PRODUCTION);
    optionsBuilder.setMode(WalletFragmentMode.BUY_BUTTON);

    WalletFragmentStyle walletFragmentStyle;
    if (androidPayPublicKey != null) {
        androidPayContainer.setBackgroundColor(androidPayBackgroundColor);
        walletFragmentStyle = new WalletFragmentStyle()
                .setBuyButtonText(WalletFragmentStyle.BuyButtonText.BUY_WITH)
                .setBuyButtonAppearance(androidPayBlackTheme ? WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_LIGHT_WITH_BORDER : WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_DARK)
                .setBuyButtonWidth(WalletFragmentStyle.Dimension.MATCH_PARENT);
    } else {
        walletFragmentStyle = new WalletFragmentStyle()
                .setBuyButtonText(WalletFragmentStyle.BuyButtonText.LOGO_ONLY)
                .setBuyButtonAppearance(WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_LIGHT_WITH_BORDER)
                .setBuyButtonWidth(WalletFragmentStyle.Dimension.WRAP_CONTENT);
    }

    optionsBuilder.setFragmentStyle(walletFragmentStyle);
    WalletFragment walletFragment = WalletFragment.newInstance(optionsBuilder.build());
    FragmentManager fragmentManager = getParentActivity().getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(fragment_container_id, walletFragment);
    fragmentTransaction.commit();

    ArrayList<TLRPC.TL_labeledPrice> arrayList = new ArrayList<>(paymentForm.invoice.prices);
    if (shippingOption != null) {
        arrayList.addAll(shippingOption.prices);
    }
    totalPriceDecimal = getTotalPriceDecimalString(arrayList);

    PaymentMethodTokenizationParameters parameters;
    if (androidPayPublicKey != null) {
        parameters = PaymentMethodTokenizationParameters.newBuilder()
                .setPaymentMethodTokenizationType(PaymentMethodTokenizationType.NETWORK_TOKEN)
                .addParameter("publicKey", androidPayPublicKey)
                .build();
    } else {
        parameters = PaymentMethodTokenizationParameters.newBuilder()
                .setPaymentMethodTokenizationType(PaymentMethodTokenizationType.PAYMENT_GATEWAY)
                .addParameter("gateway", "stripe")
                .addParameter("stripe:publishableKey", stripeApiKey)
                .addParameter("stripe:version", StripeApiHandler.VERSION)
                .build();
    }

    MaskedWalletRequest maskedWalletRequest = MaskedWalletRequest.newBuilder()
            .setPaymentMethodTokenizationParameters(parameters)
            .setEstimatedTotalPrice(totalPriceDecimal)
            .setCurrencyCode(paymentForm.invoice.currency)
            .build();

    WalletFragmentInitParams initParams = WalletFragmentInitParams.newBuilder()
            .setMaskedWalletRequest(maskedWalletRequest)
            .setMaskedWalletRequestCode(LOAD_MASKED_WALLET_REQUEST_CODE)
            .build();

    walletFragment.initialize(initParams);
    androidPayContainer.setVisibility(View.VISIBLE);
    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.playTogether(ObjectAnimator.ofFloat(androidPayContainer, "alpha", 0.0f, 1.0f));
    animatorSet.setInterpolator(new DecelerateInterpolator());
    animatorSet.setDuration(180);
    animatorSet.start();
}
 
示例4
private void createAndAddWalletFragment() {
    // [START fragment_style_and_options]
    WalletFragmentStyle walletFragmentStyle = new WalletFragmentStyle()
            .setBuyButtonText(WalletFragmentStyle.BuyButtonText.BUY_WITH)
            .setBuyButtonAppearance(WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_DARK)
            .setBuyButtonWidth(WalletFragmentStyle.Dimension.MATCH_PARENT);

    WalletFragmentOptions walletFragmentOptions = WalletFragmentOptions.newBuilder()
            .setEnvironment(Constants.WALLET_ENVIRONMENT)
            .setFragmentStyle(walletFragmentStyle)
            .setTheme(WalletConstants.THEME_LIGHT)
            .setMode(WalletFragmentMode.BUY_BUTTON)
            .build();
    mWalletFragment = SupportWalletFragment.newInstance(walletFragmentOptions);
    // [END fragment_style_and_options]

    // Now initialize the Wallet Fragment
    String accountName = ((BikestoreApplication) getApplication()).getAccountName();
    MaskedWalletRequest maskedWalletRequest;
    if (mUseStripe) {
        // Stripe integration
        maskedWalletRequest = WalletUtil.createStripeMaskedWalletRequest(
                Constants.ITEMS_FOR_SALE[mItemId],
                getString(R.string.stripe_publishable_key),
                getString(R.string.stripe_version));
    } else {
        // Direct integration
        maskedWalletRequest = WalletUtil.createMaskedWalletRequest(
                Constants.ITEMS_FOR_SALE[mItemId],
                getString(R.string.public_key));
    }

    // [START params_builder]
    WalletFragmentInitParams.Builder startParamsBuilder = WalletFragmentInitParams.newBuilder()
            .setMaskedWalletRequest(maskedWalletRequest)
            .setMaskedWalletRequestCode(REQUEST_CODE_MASKED_WALLET)
            .setAccountName(accountName);
    mWalletFragment.initialize(startParamsBuilder.build());

    // add Wallet fragment to the UI
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.dynamic_wallet_button_fragment, mWalletFragment)
            .commit();
    // [END params_builder]
}
 
示例5
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  mWalletFragment = (SupportWalletFragment) getSupportFragmentManager().findFragmentByTag(WALLET_FRAGMENT_ID);

  WalletFragmentInitParams startParams;
  WalletFragmentInitParams.Builder startParamsBuilder = WalletFragmentInitParams.newBuilder()
      .setMaskedWalletRequest(generateMaskedWalletRequest())
      .setMaskedWalletRequestCode(MASKED_WALLET_REQUEST_CODE);

  startParams = startParamsBuilder.build();

  if(mWalletFragment == null) {
    WalletFragmentStyle walletFragmentStyle = new WalletFragmentStyle()
        .setBuyButtonText(BuyButtonText.BUY_WITH_GOOGLE)
        .setBuyButtonWidth(Dimension.MATCH_PARENT);

    WalletFragmentOptions walletFragmentOptions = WalletFragmentOptions.newBuilder()
        .setEnvironment(WalletConstants.ENVIRONMENT_SANDBOX)
        .setFragmentStyle(walletFragmentStyle)
        .setTheme(WalletConstants.THEME_HOLO_LIGHT)
        .setMode(WalletFragmentMode.BUY_BUTTON)
        .build();

    mWalletFragment = SupportWalletFragment.newInstance(walletFragmentOptions);

    mWalletFragment.initialize(startParams);
  }
  getSupportFragmentManager().beginTransaction()
      .replace(R.id.wallet_button_holder, mWalletFragment, WALLET_FRAGMENT_ID)
      .commit();

  mGoogleApiClient = new GoogleApiClient.Builder(this)
      .addConnectionCallbacks(this)
      .addOnConnectionFailedListener(this)
      .addApi(Wallet.API, new Wallet.WalletOptions.Builder()
          .setEnvironment(WalletConstants.ENVIRONMENT_SANDBOX)
          .setTheme(WalletConstants.THEME_HOLO_LIGHT)
          .build())
      .build();

  setContentView(R.layout.activity_main);
}