stripe-android
stripe-android copied to clipboard
Use `rememberUpdatedState` instead of recreating objects
Summary
This pull request is a follow-up to https://github.com/stripe/stripe-android/pull/8480. Instead of creating a new PaymentSheet or FlowController whenever the provided callbacks change (and they really shouldn’t), we now just make sure that the most recent callback is used. That happens via rememberUpdatedState.
Motivation
Testing
- [ ] Added tests
- [ ] Modified tests
- [ ] Manually verified
Screenshots
| Before | After |
|---|---|
| before screenshot | after screenshot |
Changelog
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 MiB │ 2 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.1 KiB │ 8.1 KiB │ 0 B
res │ 301.5 KiB │ 301.5 KiB │ 0 B │ 455 KiB │ 455 KiB │ 0 B
native │ 7.3 MiB │ 7.3 MiB │ 0 B │ 18.4 MiB │ 18.4 MiB │ 0 B
asset │ 1.5 MiB │ 1.5 MiB │ 0 B │ 1.5 MiB │ 1.5 MiB │ 0 B
other │ 87 KiB │ 87 KiB │ 0 B │ 161.5 KiB │ 161.5 KiB │ 0 B
──────────┼───────────┼───────────┼──────┼───────────┼───────────┼──────
total │ 12.2 MiB │ 12.2 MiB │ 0 B │ 25.8 MiB │ 25.8 MiB │ 0 B
DEX │ old │ new │ diff
─────────┼───────┼───────┼───────────
files │ 1 │ 1 │ 0
strings │ 21689 │ 21689 │ 0 (+0 -0)
types │ 6869 │ 6869 │ 0 (+0 -0)
classes │ 5634 │ 5634 │ 0 (+0 -0)
methods │ 31451 │ 31451 │ 0 (+0 -0)
fields │ 18315 │ 18315 │ 0 (+0 -0)
ARSC │ old │ new │ diff
─────────┼──────┼──────┼──────
configs │ 164 │ 164 │ 0
entries │ 3404 │ 3404 │ 0
APK
compressed │ uncompressed │
──────────┬──────┼───────────┬──────┤
size │ diff │ size │ diff │ path
──────────┼──────┼───────────┼──────┼───────────────────────────────────────────
29.1 KiB │ +4 B │ 64 KiB │ 0 B │ ∆ META-INF/CERT.SF
25.9 KiB │ -4 B │ 63.9 KiB │ 0 B │ ∆ META-INF/MANIFEST.MF
271 B │ -1 B │ 120 B │ 0 B │ ∆ META-INF/version-control-info.textproto
1.2 KiB │ +1 B │ 1.2 KiB │ 0 B │ ∆ META-INF/CERT.RSA
──────────┼──────┼───────────┼──────┼───────────────────────────────────────────
56.3 KiB │ 0 B │ 129.2 KiB │ 0 B │ (total)