stripe-android icon indicating copy to clipboard operation
stripe-android copied to clipboard

Call refresh endpoint for cashapp

Open jaynewstrom-stripe opened this issue 1 year ago • 1 comments

Summary

In order to give a better user experience, we call the refresh endpoint rather than poll.

This is especially useful when the user cancels out of the payment method.

Motivation

https://jira.corp.stripe.com/browse/MOBILESDK-2063

Testing

  • [x] Added tests
  • [ ] Modified tests
  • [x] Manually verified

jaynewstrom-stripe avatar May 29 '24 18:05 jaynewstrom-stripe

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 │   +348 B │   8.8 MiB │   8.8 MiB │   +760 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.3 KiB │ 918.3 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 │ -1.4 KiB │   2.9 MiB │   2.9 MiB │ -1.4 KiB 
    other │   195 KiB │   195 KiB │     -9 B │ 428.4 KiB │ 428.4 KiB │      0 B 
──────────┼───────────┼───────────┼──────────┼───────────┼───────────┼──────────
    total │  12.9 MiB │  12.9 MiB │ -1.1 KiB │  21.9 MiB │  21.9 MiB │   -666 B 

 DEX     │ old   │ new   │ diff           
─────────┼───────┼───────┼────────────────
   files │     1 │     1 │  0             
 strings │ 43755 │ 43759 │ +4 (+5 -1)     
   types │ 15067 │ 15068 │ +1 (+1 -0)     
 classes │ 12727 │ 12728 │ +1 (+1 -0)     
 methods │ 62285 │ 62288 │ +3 (+110 -107) 
  fields │ 41128 │ 41132 │ +4 (+73 -69)   

 ARSC    │ old  │ new  │ diff 
─────────┼──────┼──────┼──────
 configs │  242 │  242 │  0   
 entries │ 6045 │ 6045 │  0
APK
     compressed      │     uncompressed     │                                           
──────────┬──────────┼───────────┬──────────┤                                           
 size     │ diff     │ size      │ diff     │ path                                      
──────────┼──────────┼───────────┼──────────┼───────────────────────────────────────────
    6 KiB │ -1.4 KiB │   5.8 KiB │ -1.4 KiB │ ∆ assets/dexopt/baseline.prof             
    4 MiB │   +348 B │   8.8 MiB │   +760 B │ ∆ classes.dex                             
 52.9 KiB │     -5 B │ 117.2 KiB │      0 B │ ∆ META-INF/CERT.SF                        
  1.2 KiB │     -3 B │   1.2 KiB │      0 B │ ∆ META-INF/CERT.RSA                       
    271 B │     -1 B │     120 B │      0 B │ ∆ META-INF/version-control-info.textproto 
    881 B │     -1 B │     749 B │     -1 B │ ∆ assets/dexopt/baseline.profm            
──────────┼──────────┼───────────┼──────────┼───────────────────────────────────────────
  4.1 MiB │ -1.1 KiB │   8.9 MiB │   -666 B │ (total)
DEX
STRINGS:

   old   │ new   │ diff       
  ───────┼───────┼────────────
   43755 │ 43759 │ +4 (+5 -1) 
  
  + Lt6/Y;
  + SetupIntentRefresh
  + setup_intent_refresh
  + setup_intents/%s/refresh
  + ~~R8{backend:dex,compilation-mode:release,has-checksums:false,min-api:21,pg-map-id:a18a63f,r8-mode:full,version:8.3.37}
  
  - ~~R8{backend:dex,compilation-mode:release,has-checksums:false,min-api:21,pg-map-id:995f51f,r8-mode:full,version:8.3.37}
  

TYPES:

   old   │ new   │ diff       
  ───────┼───────┼────────────
   15067 │ 15068 │ +1 (+1 -0) 
  
  + Lt6/Y;
  

METHODS:

   old   │ new   │ diff           
  ───────┼───────┼────────────────
   62285 │ 62288 │ +3 (+110 -107) 
  
  + C6.d <init>(Y, c, f, P, e, j)
  + C6.x <init>(n, X, t, f, a, c0, j, M, j, o0, boolean)
  + F6.y <init>(boolean, X, f, a, g, Map, a, a, t, f, j, o0, boolean)
  + G6.j <init>(Context, Y, boolean, a, a)
  + I4.z <init>(X, m, x, t, f)
  + W5.C <init>(o, m, s, X, i0, u, c, o0, g, j)
  + W5.Z <init>(o, m, T, X, u, a0, o0)
  + X4.F0 <init>(Application, List, B, a, Resources, q, e, Y, Integer, x, j, a, E, H, G, f, e0, f)
  + Y5.b <init>(Y)
  + d6.k <init>(a, a, Y, a, j, Locale, f)
  + j2.d W(Y, String, m, e) → Object
  + m.L1 a() → X
  + o7.h <init>(Y, a, e, f, j, Set)
  + o7.o <init>(Y, a, j)
  + p8.H0 <init>(Application, String, X)
  + p8.r0 <init>(h, X, o0)
  + t6.A <init>(X, e)
  + t6.B <init>(X, e)
  + t6.C <init>(X, e)
  + t6.D <init>(X, e)
  + t6.E <init>(X, e)
  + t6.F <init>(X, e)
  + t6.G <init>(X, e)
  + t6.H <init>(X, e)
  + t6.I <init>(X, e)
  + t6.J <init>(X, e)
  + t6.K <init>(X, e)
  + t6.L <init>(X, e)
  + t6.M <init>(X, e)
  + t6.N <init>(X, e)
  + t6.O <init>(X, e)
  + t6.P <init>(X, e)
  + t6.Q <init>(X, e)
  + t6.S <init>(X, e)
  + t6.T <init>(X, e)
  + t6.U <init>(X, e)
  + t6.V <init>(X, e)
  + t6.W <init>(X, e)
  + t6.W i(Object) → Object
  + t6.X <clinit>()
  + t6.X <init>(Context, a, e, j, Set, c, f, Set, int)
  + t6.X <init>(Context, a, j, Set, f, c, e)
  + t6.X A(m, String, e) → Object
  + t6.X B(n, c, e) → Object
  + t6.X C(Map, y1, m2) → Map
  + t6.X D(n, m, e) → Object
  + t6.X E(String, m, e) → Object
  + t6.X F(String, m, e) → Object
  + t6.X G(m, Map, e) → Object
  + t6.X H(m, String, Set, e) → Object
  + t6.X I(p0, m, e) → Object
  + t6.X J(p0, m, e) → Object
  + t6.X K(String, m, List, e) → Object
  + t6.X L(String, m, List, e) → Object
  + t6.X M(String, m, List, e) → Object
  + t6.X N(m, String, String, e) → Object
  + t6.X O(q2, m, e) → Object
  + t6.X P(String, K1, m, e) → Object
  + t6.X a(X, Object) → String
  + t6.X b(String, String, String, m, List, e) → Object
  + t6.X c(String, String, String, m, List, e) → Object
  + t6.X d(String, Set, String, m, e) → Object
  + t6.X e(Set) → String
  + t6.X f(m, String, String, e) → Object
  + t6.X g(m, String, String, e) → Object
  + t6.X h(String, m, e) → Object
  + t6.X i(n, m, List, e) → Object
  + t6.X j(n, m, List, e) → Object
  + t6.X k(o, m, List, e) → Object
  + t6.X l(String, String, String, String, Locale, K, m, e) → Object
  + t6.X m(String, List) → LinkedHashMap
  + t6.X n(L, m, e) → Object
  + t6.X o(String, w, m, boolean, e) → Object
  + t6.X p(String, O, m, e) → Object
  + t6.X q(y1, m, e) → Object
  + t6.X r(String, O, m, e) → Object
  + t6.X s(m, String, Set, e) → Object
  + t6.X t(n, b, c, e) → Object
  + t6.X u(PaymentAnalyticsEvent)
  + t6.X v()
  + t6.X w(a, m, e) → Object
  + t6.X x(m, e) → Object
  + t6.X y(v0, Set, m, e) → Object
  + t6.X z(Y)
  + t6.g <init>(X, e)
  + t6.k <init>(X, e)
  + t6.m <init>(X, e)
  + t6.n <init>(X, e)
  + t6.o <init>(X, Set, int)
  + t6.p <init>(X, e)
  + t6.q <init>(X, int)
  + t6.r <init>(X, e)
  + t6.s <init>(X, e)
  + t6.t <init>(X, e)
  + t6.u <init>(X, e)
  + t6.v <init>(X, e)
  + t6.w <init>(X, e)
  + t6.x <init>(X, e)
  + t6.y <init>(X, e)
  + t6.z <init>(X, e)
  + t7.e <init>(X, g, f, x)
  + u6.i <init>(Context, b0, Y, e, j)
  + u6.i f(String, m, e) → Object
  + u6.m <init>(Context, a, Y, e, j)
  + u6.m f(String, m, e) → Object
  + u6.q <init>(Context, a, Y, e, j)
  + u6.q f(String, m, e) → Object
  + x6.c <init>(X)
  + x6.g <init>(X)
  + z4.i0 <init>(Context, T, X, boolean, j, int)
  
  - C6.d <init>(X, c, f, P, e, j)
  - C6.x <init>(n, W, t, f, a, c0, j, M, j, o0, boolean)
  - F6.y <init>(boolean, W, f, a, g, Map, a, a, t, f, j, o0, boolean)
  - G6.j <init>(Context, X, boolean, a, a)
  - I4.z <init>(W, m, x, t, f)
  - W5.C <init>(o, m, s, W, i0, u, c, o0, 
...✂

github-actions[bot] avatar May 29 '24 18:05 github-actions[bot]