Skip to content

[BDCC] Preserve phone number updates in cache to be used in wallet. #11011

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 13 commits into
base: carlosmuvi/bdcc-collect-email-name-phone
Choose a base branch
from

Conversation

carlosmuvi-stripe
Copy link
Collaborator

Summary

  • Keeps a list of LinkPaymentMethod in the LinkAccountManager cache - this allows us to store more than just the API response locally.
  • Saves phone number edits taking place in the Update screen in the cache above
  • Uses that collected phone number (if existing) on the Wallet, when confirming the payment.

Motivation

Testing

  • Added tests
  • Modified tests
  • Manually verified

Screenshots

Before After
before screenshot after screenshot

Changelog

- Fix ConsumerPaymentDetails model to properly handle billing details
- Update ConsumerPaymentDetailsCreateParams and UpdateParams for correct field mappings
- Fix ConsumerPaymentDetailsJsonParser to handle billing address parsing
- Update PaymentMethodMetadata to use proper billing details configuration
- Update LinkConfiguration to pass through billing details collection configuration
- Add LinkBillingDetailsUtils for effective billing details handling and validation
- Implement CompleteLinkFlow to unify payment completion logic
- Update Link UI components to handle billing details update flows
- Add support for billing details validation before payment confirmation
- Update PaymentElementLoader to properly handle billing details collection
- Enhance UpdateCard flow to support billing details collection
- Add comprehensive tests for ConsumerPaymentDetailsCreateParams functionality
- Update all Link-related test files to use new CompleteLinkFlow pattern
- Add tests for LinkBillingDetailsUtils validation logic
- Update test factories and fixtures to include billing details configuration
- Fix test compilation issues and update method signatures
- Add string resources for billing details update flows
- Update screenshot tests to handle new UI states
- Consolidate and clean up test naming conventions for better readability
Copy link
Contributor

github-actions bot commented Jun 26, 2025

Diffuse output:

OLD: identity-example-release-base.apk (signature: V1, V2)
NEW: identity-example-release-pr.apk (signature: V1, V2)

          │          compressed          │         uncompressed         
          ├───────────┬───────────┬──────┼───────────┬───────────┬──────
 APK      │ old       │ new       │ diff │ old       │ new       │ diff 
──────────┼───────────┼───────────┼──────┼───────────┼───────────┼──────
      dex │   2.1 MiB │   2.1 MiB │  0 B │   4.3 MiB │   4.3 MiB │  0 B 
     arsc │     1 MiB │     1 MiB │  0 B │     1 MiB │     1 MiB │  0 B 
 manifest │   2.3 KiB │   2.3 KiB │  0 B │     8 KiB │     8 KiB │  0 B 
      res │ 302.9 KiB │ 302.9 KiB │  0 B │   457 KiB │   457 KiB │  0 B 
   native │   6.2 MiB │   6.2 MiB │  0 B │  15.8 MiB │  15.8 MiB │  0 B 
    asset │   7.7 KiB │   7.7 KiB │  0 B │   7.4 KiB │   7.4 KiB │  0 B 
    other │  95.8 KiB │  95.8 KiB │ +1 B │ 183.5 KiB │ 183.5 KiB │  0 B 
──────────┼───────────┼───────────┼──────┼───────────┼───────────┼──────
    total │   9.8 MiB │   9.8 MiB │ +1 B │  21.8 MiB │  21.8 MiB │  0 B 

 DEX     │ old   │ new   │ diff      
─────────┼───────┼───────┼───────────
   files │     1 │     1 │ 0         
 strings │ 20682 │ 20682 │ 0 (+0 -0) 
   types │  6503 │  6503 │ 0 (+0 -0) 
 classes │  5266 │  5266 │ 0 (+0 -0) 
 methods │ 31511 │ 31511 │ 0 (+0 -0) 
  fields │ 18239 │ 18239 │ 0 (+0 -0) 

 ARSC    │ old  │ new  │ diff 
─────────┼──────┼──────┼──────
 configs │  164 │  164 │  0   
 entries │ 3646 │ 3646 │  0
APK
   compressed    │   uncompressed   │                        
──────────┬──────┼───────────┬──────┤                        
 size     │ diff │ size      │ diff │ path                   
──────────┼──────┼───────────┼──────┼────────────────────────
 25.9 KiB │ +4 B │  64.5 KiB │  0 B │ ∆ META-INF/MANIFEST.MF 
 29.2 KiB │ -3 B │  64.6 KiB │  0 B │ ∆ META-INF/CERT.SF     
──────────┼──────┼───────────┼──────┼────────────────────────
 55.1 KiB │ +1 B │ 129.1 KiB │  0 B │ (total)

Comment on lines +4 to +12

/**
* State container for Link payment details.
* When null, payment details have not been loaded yet.
* When non-null, contains the loaded payment details (which may be an empty list).
*/
internal data class LinkPaymentDetailsState(
val paymentDetails: List<ConsumerPaymentDetails>
)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can potentially be merged with the LinkAccount state and preserve a Link global state to be used across Link screens.

@carlosmuvi-stripe carlosmuvi-stripe force-pushed the carlosmuvi/bdcc-collect-email-name-phone branch 3 times, most recently from e19e296 to 1d5d0c4 Compare June 30, 2025 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant