stripe / stripe-android

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

Add UserFacingLogger and use it to when log external PMs are missing from elements/session response #8679

Closed amk-stripe closed 5 days ago

amk-stripe commented 6 days ago

Summary

Add UserFacingLogger and use it to when log external PMs are missing from elements/session response

Motivation

https://jira.corp.stripe.com/browse/MOBILESDK-2107 https://jira.corp.stripe.com/browse/MOBILESDK-2108

Testing

github-actions[bot] commented 6 days ago

Diffuse output:

OLD: paymentsheet-example-release-master.apk (signature: V1, V2)
NEW: paymentsheet-example-release-pr.apk (signature: V1, V2)

          │          compressed           │          uncompressed          
          ├───────────┬───────────┬───────┼───────────┬───────────┬────────
 APK      │ old       │ new       │ diff  │ old       │ new       │ diff   
──────────┼───────────┼───────────┼───────┼───────────┼───────────┼────────
      dex │     4 MiB │     4 MiB │ +63 B │   8.7 MiB │   8.7 MiB │ +500 B 
     arsc │   2.3 MiB │   2.3 MiB │   0 B │   2.3 MiB │   2.3 MiB │    0 B 
 manifest │   5.1 KiB │   5.1 KiB │   0 B │  25.6 KiB │  25.6 KiB │    0 B 
      res │ 918.5 KiB │ 918.5 KiB │   0 B │   1.5 MiB │   1.5 MiB │    0 B 
   native │   2.6 MiB │   2.6 MiB │   0 B │     6 MiB │     6 MiB │    0 B 
    asset │   2.9 MiB │   2.9 MiB │ -31 B │   2.9 MiB │   2.9 MiB │  -31 B 
    other │   195 KiB │   195 KiB │   0 B │ 428.4 KiB │ 428.4 KiB │    0 B 
──────────┼───────────┼───────────┼───────┼───────────┼───────────┼────────
    total │  12.8 MiB │  12.8 MiB │ +32 B │  21.8 MiB │  21.8 MiB │ +469 B 

 DEX     │ old   │ new   │ diff         
─────────┼───────┼───────┼──────────────
   files │     1 │     1 │  0           
 strings │ 43507 │ 43509 │ +2 (+5 -3)   
   types │ 14958 │ 14959 │ +1 (+2 -1)   
 classes │ 12642 │ 12643 │ +1 (+1 -0)   
 methods │ 61906 │ 61907 │ +1 (+70 -69) 
  fields │ 40832 │ 40835 │ +3 (+95 -92) 

 ARSC    │ old  │ new  │ diff 
─────────┼──────┼──────┼──────
 configs │  242 │  242 │  0   
 entries │ 6043 │ 6043 │  0
APK ``` compressed │ uncompressed │ ──────────┬───────┼───────────┬────────┤ size │ diff │ size │ diff │ path ──────────┼───────┼───────────┼────────┼─────────────────────────────── 4 MiB │ +63 B │ 8.7 MiB │ +500 B │ ∆ classes.dex 7.3 KiB │ -31 B │ 7.2 KiB │ -31 B │ ∆ assets/dexopt/baseline.prof 52.9 KiB │ +5 B │ 117.2 KiB │ 0 B │ ∆ META-INF/CERT.SF 49.6 KiB │ -5 B │ 117.1 KiB │ 0 B │ ∆ META-INF/MANIFEST.MF ──────────┼───────┼───────────┼────────┼─────────────────────────────── 4.1 MiB │ +32 B │ 9 MiB │ +469 B │ (total) ```
DEX ``` STRINGS: old │ new │ diff ───────┼───────┼──────────── 43507 │ 43509 │ +2 (+5 -3) + is not supported. View all available external payment methods here: https://docs.stripe.com/payments/external-payment-methods?platform=android#available-external-payment-methods + LW4/l; + [LP5/I; + userFacingLogger + ~~R8{backend:dex,compilation-mode:release,has-checksums:false,min-api:21,pg-map-id:eb66cf5,r8-mode:full,version:8.3.37} - is not supported. - [LP5/H; - ~~R8{backend:dex,compilation-mode:release,has-checksums:false,min-api:21,pg-map-id:e6db348,r8-mode:full,version:8.3.37} TYPES: old │ new │ diff ───────┼───────┼──────────── 14958 │ 14959 │ +1 (+2 -1) + LW4/l; + [LP5/I; - [LP5/H; METHODS: old │ new │ diff ───────┼───────┼────────────── 61906 │ 61907 │ +1 (+70 -69) + D5.l (g, U, F, J, p) + D5.o (F, J) + P5.A (F, e) + P5.B (F, e) + P5.C (F, e) + P5.D (F, e) + P5.E (F, e) + P5.E i(Object) → Object + P5.F (e, l, m, N2, c, Locale) + P5.F a(String, String, e) → Object + P5.F b(String, String, String, e) → Object + P5.F c(String, String, e) → Object + P5.F d(String, String, x0, e) → Object + P5.F e(String, e) → Object + P5.F f(String, String, M0, e) → Object + P5.F g(String, Date, String, List, e) → Object + P5.F h(String, e) → Object + P5.F i(String, e) → Object + P5.F j(String, e) → Object + P5.F k(String, String, String, String, String, String, Set, e) → Object + P5.F l(String, String, e) → Object + P5.F m(String, String, e) → Object + P5.F n(String, J0) + P5.F o(String, q1) + P5.H (l, m, c) + P5.H a(t1, v) → Object + P5.H b(String, c) → Object + P5.I () + P5.I (d) + P5.I describeContents() → int + P5.I equals(Object) → boolean + P5.I hashCode() → int + P5.I toString() → String + P5.I writeToParcel(Parcel, int) + P5.p (a, int) + P5.p a() → E + P5.p b(a) → c + P5.p get() → Object + P5.r (l, m, c) + P5.t (F, e) + P5.u (F, e) + P5.v (F, e) + P5.w (F, e) + P5.x (F, e) + P5.y (F, e) + P5.z (F, e) + W4.l (Context) + c7.s (g, g, g, g, g, g, g, g, e, g, e, g, p, g, g, g, g, g, g, g, i, d, g) + j5.A0 (s) + j5.E (s, a, String) + j5.G (a, s) + j5.L (a, s) + j5.M (a, s) + j5.a (a, s) + j5.d (U, s, a) + j5.f (U, s, a) + j5.h0 (G, a) + j5.i (G, w, a) + j5.j0 (s, e, a) + j5.l0 (s, a, String) + j5.o0 (U, s, a) + j5.o (a, s) + j5.p (q) + j5.r (w, G) + j5.t (G) + j5.u0 (Locale, a, M, s, c) + j5.v0 (q) + j5.w (G) + p7.s (c, c, k, j, g, e, d, f, j, y, l, R0, l) + p7.t (g, g, g, g, g, g, g, g, g, g, g, c) - D5.l (g, U, F, I, p) - D5.o (F, I) - P5.A (E, e) - P5.B (E, e) - P5.C (E, e) - P5.D (E, e) - P5.E (e, l, m, N2, c, Locale) - P5.E a(String, String, e) → Object - P5.E b(String, String, String, e) → Object - P5.E c(String, String, e) → Object - P5.E d(String, String, x0, e) → Object - P5.E e(String, e) → Object - P5.E f(String, String, M0, e) → Object - P5.E g(String, Date, String, List, e) → Object - P5.E h(String, e) → Object - P5.E i(String, e) → Object - P5.E j(String, e) → Object - P5.E k(String, String, String, String, String, String, Set, e) → Object - P5.E l(String, String, e) → Object - P5.E m(String, String, e) → Object - P5.E n(String, J0) - P5.E o(String, q1) - P5.G (l, m, c) - P5.G a(t1, v) → Object - P5.G b(String, c) → Object - P5.H () - P5.H (d) - P5.H describeContents() → int - P5.H equals(Object) → boolean - P5.H hashCode() → int - P5.H toString() → String - P5.H writeToParcel(Parcel, int) - P5.J (a, int) - P5.J a() → E - P5.J b(a) → c - P5.J get() → Object - P5.q (l, m, c) - P5.s (E, e) - P5.s i(Object) → Object - P5.t (E, e) - P5.u (E, e) - P5.v (E, e) - P5.w (E, e) - P5.x (E, e) - P5.y (E, e) - P5.z (E, e) - c7.s (g, g, g, g, g, g, g, g, e, g, e, g, J, g, g, g, g, g, g, g, i, d, g) - j5.A0 (r) - j5.E (r, a, String) - j5.G (a, ...✂ ```