private String buildCardString(@NonNull SourceCardData data) { return data.getBrand() + getString(R.string.ending_in) + data.getLast4(); } }
private String formatSourceDescription(Source source) { if (Source.CARD.equals(source.getType())) { SourceCardData sourceCardData = (SourceCardData) source.getSourceTypeModel(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(sourceCardData.getBrand()).append(getString(R.string.ending_in)).append(sourceCardData.getLast4()); return stringBuilder.toString(); } return source.getType(); }
/** * Set the card data displayed using a {@link SourceCardData} object. * * @param sourceCardData the {@link SourceCardData} to be partially displayed */ void setSourceCardData(@NonNull SourceCardData sourceCardData) { mCardBrand = sourceCardData.getBrand(); mLast4 = sourceCardData.getLast4(); updateBrandIcon(); updateCardInformation(); }
if (cardSource != null) { SourceCardData scd = (SourceCardData) cardSource.getSourceTypeModel(); stringBuilder.append(scd.getBrand()) .append(" ending in ") .append(scd.getLast4());
@Test public void whenSourceNotCard_doesNotCrash() { SourceCardData sourceCardData = Mockito.mock(SourceCardData.class); Mockito.when(sourceCardData.getBrand()).thenReturn("unrecognized_brand"); Mockito.when(sourceCardData.getLast4()).thenReturn(""); mMaskedCardView.setSourceCardData(sourceCardData); } }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data == null) { // Data might be null if user tapped the back button from credit card selection return; } String selectedSource = data.getStringExtra(PaymentMethodsActivity.EXTRA_SELECTED_PAYMENT); Source source = Source.fromString(selectedSource); // Note: It isn't possible for a null or non-card source to be returned. if (source != null && Source.CARD.equals(source.getType())) { SourceCardData cardData = (SourceCardData) source.getSourceTypeModel(); TextView methodTextView = findViewById(R.id.selected_payment_method_text_view); TextView cardBrandTextView = findViewById(R.id.selected_payment_method_brand_text_view); methodTextView.setText(buildCardString(cardData)); cardBrandTextView.setText(cardData.getBrand()); selectMethodSwitcher.showNext(); didSelectPaymentMethod = true; updateBuyButton(); } }
@Test public void fromExampleJsonCard_createsExpectedObject() { SourceCardData cardData = SourceCardData.fromString(EXAMPLE_JSON_SOURCE_CARD_DATA_WITH_APPLE_PAY); assertNotNull(cardData); assertEquals(Card.VISA, cardData.getBrand()); assertEquals(0, cardData.getAdditionalFields().size()); assertEquals(Card.FUNDING_CREDIT, cardData.getFunding()); assertEquals("4242", cardData.getLast4()); assertNotNull(cardData.getExpiryMonth()); assertNotNull(cardData.getExpiryYear()); assertEquals(12, cardData.getExpiryMonth().intValue()); assertEquals(2050, cardData.getExpiryYear().intValue()); assertEquals("US", cardData.getCountry()); assertEquals("optional", cardData.getThreeDSecureStatus()); assertEquals("apple_pay", cardData.getTokenizationMethod()); }