stripe / stripe-android

Stripe Android SDK
https://stripe.com/docs/mobile/android
MIT License
1.27k stars 640 forks source link

Use dependency injection for `CustomerSheet` data sources #9305

Closed samer-stripe closed 6 days ago

samer-stripe commented 1 week ago

Summary

Use dependency injection for CustomerSheet data sources. It also cleans up the weird CombinedDataSource type in CustomerSheetHacks. Also added tests to validate CustomerSheetHacks as well.

Motivation

We'll need elements/session and ErrorReporter dependencies when we move initialization into the data sources. Creating these beforehand will help make that process easier.

Testing

github-actions[bot] commented 1 week ago

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 │   1.9 MiB │   1.9 MiB │  0 B │     4 MiB │     4 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 │ 301.5 KiB │ 301.5 KiB │  0 B │   455 KiB │   455 KiB │  0 B 
   native │   6.2 MiB │   6.2 MiB │  0 B │  15.8 MiB │  15.8 MiB │  0 B 
    asset │   6.8 KiB │   6.8 KiB │  0 B │   6.5 KiB │   6.5 KiB │  0 B 
    other │  85.5 KiB │  85.5 KiB │ -7 B │ 158.7 KiB │ 158.7 KiB │  0 B 
──────────┼───────────┼───────────┼──────┼───────────┼───────────┼──────
    total │   9.5 MiB │   9.5 MiB │ -7 B │  21.4 MiB │  21.4 MiB │  0 B 

 DEX     │ old   │ new   │ diff      
─────────┼───────┼───────┼───────────
   files │     1 │     1 │ 0         
 strings │ 20244 │ 20244 │ 0 (+0 -0) 
   types │  6082 │  6082 │ 0 (+0 -0) 
 classes │  4886 │  4886 │ 0 (+0 -0) 
 methods │ 29462 │ 29462 │ 0 (+0 -0) 
  fields │ 17389 │ 17389 │ 0 (+0 -0) 

 ARSC    │ old  │ new  │ diff 
─────────┼──────┼──────┼──────
 configs │  164 │  164 │  0   
 entries │ 3608 │ 3608 │  0
APK ``` compressed │ uncompressed │ ──────────┬──────┼───────────┬──────┤ size │ diff │ size │ diff │ path ──────────┼──────┼───────────┼──────┼──────────────────────── 28.3 KiB │ -5 B │ 62.6 KiB │ 0 B │ ∆ META-INF/CERT.SF 25.1 KiB │ -3 B │ 62.5 KiB │ 0 B │ ∆ META-INF/MANIFEST.MF 1.2 KiB │ +1 B │ 1.2 KiB │ 0 B │ ∆ META-INF/CERT.RSA ──────────┼──────┼───────────┼──────┼──────────────────────── 54.6 KiB │ -7 B │ 126.3 KiB │ 0 B │ (total) ```