Skip to content
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

[Identity] - Butter 2.0 M1 #7407

Merged
merged 8 commits into from
Nov 28, 2023
Merged

[Identity] - Butter 2.0 M1 #7407

merged 8 commits into from
Nov 28, 2023

Conversation

ccen-stripe
Copy link
Collaborator

@ccen-stripe ccen-stripe commented Oct 5, 2023

Summary

Note this will serve as the release branch of butter 2.0, all further changes will be merged here before release.

This PR includes the following changes that are already reviewed:

  • Support bottomsheet
    • The upcoming project butter would introduce buttonsheet. This change adds support for bringing up bottomsheet with its data model.The bottom sheet will have dynamic height if the lines within doesn't occupy 400dp, and will make the lines scrollable and keep a maximum height if the lines went over.
  • Suppor consent page
    • Apply bottomsheet for the consent page with new UX
  • Replace doc selection screen with warm up screen

Related iOS release branch: stripe/stripe-ios#2964

Motivation

Better UX

Testing

  • Added tests
  • Modified tests
  • Manually verified

Screenshots

Before After
consentBefore androidAfter

Changelog

@ccen-stripe
Copy link
Collaborator Author

@stripe/stripe-identity-observers

@ccen-stripe ccen-stripe changed the base branch from master to ccen/updateHtml October 5, 2023 21:06
@github-actions
Copy link
Contributor

github-actions bot commented Oct 5, 2023

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 │  +8.7 KiB │     4 MiB │     4 MiB │ +16.7 KiB 
     arsc │   1.4 MiB │   1.4 MiB │  +1.7 KiB │   1.4 MiB │   1.4 MiB │  +1.7 KiB 
 manifest │   2.3 KiB │   2.3 KiB │       0 B │   8.1 KiB │   8.1 KiB │       0 B 
      res │ 346.3 KiB │ 353.2 KiB │  +6.9 KiB │ 473.2 KiB │ 485.2 KiB │   +12 KiB 
   native │   6.2 MiB │   6.2 MiB │       0 B │  15.8 MiB │  15.8 MiB │       0 B 
    asset │  67.4 KiB │  67.4 KiB │      +6 B │  87.4 KiB │  87.4 KiB │      +6 B 
    other │ 112.6 KiB │ 113.4 KiB │    +800 B │ 259.2 KiB │ 261.2 KiB │  +1.9 KiB 
──────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────
    total │    10 MiB │    10 MiB │ +18.1 KiB │  21.9 MiB │  21.9 MiB │ +32.2 KiB 

 DEX     │ old   │ new   │ diff               
─────────┼───────┼───────┼────────────────────
   files │     1 │     1 │    0               
 strings │ 19991 │ 20023 │  +32 (+873 -841)   
   types │  6117 │  6151 │  +34 (+755 -721)   
 classes │  4975 │  5005 │  +30 (+667 -637)   
 methods │ 30233 │ 30397 │ +164 (+8440 -8276) 
  fields │ 17194 │ 17210 │  +16 (+5089 -5073) 

 ARSC    │ old  │ new  │ diff         
─────────┼──────┼──────┼──────────────
 configs │  261 │  261 │   0          
 entries │ 5177 │ 5190 │ +13 (+14 -1)
APK
      compressed      │     uncompressed      │                                             
──────────┬───────────┼───────────┬───────────┤                                             
 size     │ diff      │ size      │ diff      │ path                                        
──────────┼───────────┼───────────┼───────────┼─────────────────────────────────────────────
  1.9 MiB │  +8.7 KiB │     4 MiB │ +16.7 KiB │ ∆ classes.dex                               
  1.4 MiB │  +1.7 KiB │   1.4 MiB │  +1.7 KiB │ ∆ resources.arsc                            
  1.4 KiB │  +1.4 KiB │   2.7 KiB │  +2.7 KiB │ + res/VX.xml                                
  1.4 KiB │  +1.4 KiB │   3.2 KiB │  +3.2 KiB │ + res/SX.xml                                
    836 B │    +836 B │   1.4 KiB │  +1.4 KiB │ + res/IT.xml                                
    830 B │    +830 B │   1.9 KiB │  +1.9 KiB │ + res/f-.xml                                
    802 B │    +802 B │   1.7 KiB │  +1.7 KiB │ + res/Nu1.xml                               
    150 B │    -681 B │     112 B │  -1.8 KiB │ ∆ res/Y9.xml                                
    615 B │    +615 B │     1 KiB │    +1 KiB │ + res/zb.xml                                
    607 B │    +607 B │     940 B │    +940 B │ + res/6D.xml                                
    150 B │    -607 B │     112 B │  -1.2 KiB │ ∆ res/Td.xml                                
    494 B │    +494 B │   1.1 KiB │  +1.1 KiB │ + res/q61.xml                               
    480 B │    +480 B │     780 B │    +780 B │ + res/Ow.xml                                
    477 B │    +477 B │     876 B │    +876 B │ + res/r4.xml                                
 49.7 KiB │    +474 B │ 113.5 KiB │    +987 B │ ∆ META-INF/CERT.SF                          
    601 B │    +451 B │     940 B │    +828 B │ ∆ res/QZ.xml                                
 31.4 KiB │    +324 B │ 113.4 KiB │    +987 B │ ∆ META-INF/MANIFEST.MF                      
    150 B │    -262 B │     112 B │    -472 B │ ∆ res/XY.xml                                
    583 B │    -217 B │     908 B │    -820 B │ ∆ res/Nu.xml                                
    166 B │    +166 B │     124 B │    +124 B │ + res/QZ2.xml                               
    150 B │    +150 B │     112 B │    +112 B │ + res/2S.xml                                
    586 B │     +94 B │     940 B │    -188 B │ ∆ res/q6.xml                                
    647 B │     -45 B │   1.1 KiB │    -132 B │ ∆ res/n5.xml                                
    152 B │     -14 B │     112 B │     -12 B │ ∆ res/QZ1.xml                               
    716 B │     +11 B │     584 B │     +11 B │ ∆ assets/dexopt/baseline.profm              
  5.7 KiB │      -5 B │   5.5 KiB │      -5 B │ ∆ assets/dexopt/baseline.prof               
  1.2 KiB │      +2 B │   1.2 KiB │       0 B │ ∆ META-INF/CERT.RSA                         
    505 B │      +1 B │     916 B │       0 B │ ∆ res/-o.xml                                
    321 B │      -1 B │     484 B │       0 B │ ∆ res/NM.xml                                
    322 B │      -1 B │     484 B │       0 B │ ∆ res/_G.xml                                
    387 B │      -1 B │     464 B │       0 B │ ∆ res/color/switch_thumb_material_light.xml 
──────────┼───────────┼───────────┼───────────┼─────────────────────────────────────────────
  3.4 MiB │ +18.1 KiB │   5.6 MiB │ +32.2 KiB │ (total)
DEX
STRINGS:

   old   │ new   │ diff            
  ───────┼───────┼─────────────────
   19991 │ 20023 │ +32 (+873 -841) 
  + _this_ModalBottomSheetLayout
  + _this_widthIn
  + ) was not set. Did you use ModalBottomSheetState with the ModalBottomSheetLayout composable?
  + , bottomSheet=
  + , content=
  + , lines=
  + 2020-08-27;identity_client_api=v5
  + <li>(.*?)</li>
  + <ul><li>Drivers license</li><li>Passport</li><li>National ID</li><li>Valid government-issued identification that clearly shows your face</li><ul>
  + AcceptedFormsOfIdTag
  + BottomSheet title
  + BottomSheetButton
  + BottomSheetContent
  + BottomSheetHTML
  + BottomSheetLine
  + BottomSheetState(shouldShow=
  + BottomSheetTitle
  + CAMERA
  + CLOUD
  + CREATE_IDENTITY_VERIFICATION
  + Call next() before removing element from the iterator.
  + DISPUTE_PROTECTION
  + DOC_BACK
  + DOC_FRONT
  + DocFrontContinueButtonTag
  + DocWarmup
  + Drivers license cloud line content with another <a href='https://stripe.com'>link</a>, with multiline content
  + Expanded
  + Fail to present buttomsheet with id 
  + HalfExpanded
  + Hidden
  + LFLLLLII
  + LIJJJLLLLLL
  + LLLLLLLLLI
  + LLLLZZI
  + LOCK
  + La1/a6;
  + La1/b6;
  + La1/c6;
  + La1/d6;
  + La1/e6;
  + La1/f6;
  + La1/g5;
  + La1/h5;
  + La1/i5;
  + La1/j5;
  + La1/k5;
  + La1/l5;
  + La1/m5;
  + La1/n5;
  + La1/o5;
  + La1/p5;
  + La1/q5;
  + La1/r5;
  + La1/s5;
  + La1/t5;
  + La1/u5;
  + La1/v5;
  + La1/w5;
  + La1/x5;
  + La1/y5;
  + La1/z5;
  + La7/p;
  + La7/q;
  + La7/r;
  + La9/a0;
  + La9/b0;
  + La9/c0;
  + La9/z;
  + Landroid/webkit/URLUtil;
  + Lb7/k;
  + Lb7/l;
  + Lb7/m;
  + Lb7/n;
  + Lb7/o;
  + Lb8/f;
  + Lb8/g;
  + Lb8/h;
  + Lb8/i;
  + Lb8/j;
  + Lb9/c;
  + Lb9/d;
  + Lb9/e;
  + Lb9/f;
  + Lb9/g;
  + Lb9/h;
  + Lb9/i;
  + Lb9/j;
  + Lb9/k;
  + Lb9/l;
  + Lb9/m;
  + Lb9/n;
  + Lb9/o;
  + Lb9/p;
  + Lb9/q;
  + Lb9/r;
  + Lb9/s;
  + Lb9/t;
  + Lb9/u;
  + Lb9/v;
  + Lb9/w;
  + Lb9/x;
  + Lb9/y;
  + Lc9/b;
  + Ld7/a0;
  + Ld7/b0;
  + Ld7/c0;
  + Ld7/d0;
  + Ld7/e0;
  + Ld7/f0;
  + Ld7/y;
  + Ld7/z;
  + Ld8/b;
  + Ld8/c;
  + Ld8/d;
  + Ld8/e;
  + Ld8/f;
  + Ld8/g;
  + Ld8/h;
  + Le7/g;
  + Le7/h;
  + Le7/i;
  + Le7/j;
  + Le7/k;
  + Le7/l;
  + Le7/m;
  + Le7/n;
  + Le7/o;
  + Le7/p;
  + Le7/q;
  + Le7/r;
  + Le7/s;
  + Le7/t;
  + Le7/u;
  + Le7/v;
  + Le7/w;
  + Le7/x;
  + Lg9/c;
  + Lg9/d;
  + Lg9/e;
  + Lg9/f;
  + Lg9/g;
  + Lg9/h;
  + Lg9/i;
  + Lg9/j;
  + Lg9/k;
  + Lg9/l;
  + Lg9/m;
  + Lg9/n;
  + Lh7/a0;
  + Lh7/b0;
  + Lh7/c0;
  + Lh7/d0;
  + Lh7/e0;
  + Lh7/f0;
  + Lh7/g0;
  + Lh7/h0;
  + Lh7/n;
  + Lh7/o;
  + Lh7/p;
  + Lh7/q;
  + Lh7/r;
  + Lh7/s;
  + Lh7/t;
  + Lh7/u;
  + Lh7/v;
  + Lh7/w;
  + Lh7/x;
  + Lh7/y;
  + Lh7/z;
  + Li2/j;
  + Li9/a;
  + Li9/b;
  + Li9/c;
  + Lj7/a0;
  + Lj7/a1;
  + Lj7/a2;
  + Lj7/b0;
  + Lj7/b1;
  + Lj7/b2;
  + Lj7/c0;
  + Lj7/c1;
  + Lj7/c2;
  + Lj7/d0;
  + Lj7/d1;
  + Lj7/d2;
  + Lj7/e0;
  + Lj7/e1;
  + Lj7/e2;
  + Lj7/f0;
  + Lj7/f1;
  + Lj7/f2;
  + Lj7/g0;
  + Lj7/g1;
  + Lj7/g2;
  + Lj7/h0;
  + Lj7/h1;
  + Lj7/h2;
  + Lj7/i0;
  + Lj7/i1;
  + Lj7/i2;
  + Lj7/j0;
  + Lj7/j1;
  + Lj7/j2;
  + Lj7/k0;
  + Lj7/k1;
  + Lj7/k2;
  + Lj7/l0;
  + Lj7/l1;
  + Lj7/l2;
  + Lj7/m0;
  + Lj7/m1;
  + Lj7/m2;
  + Lj7/n0;
  + Lj7/n1;
  + Lj7/n2;
  + Lj7/o0;
  + Lj7/o1;
  + Lj7/o2;
  + Lj7/p0;
  + Lj7/p1;
  + Lj7/p2;
  + Lj7/q0;
  + Lj7/q1;
  + Lj7/q2;
  + Lj7/q;
  + Lj7/r0;
  + Lj7/r1;
  + Lj7/r2;
  + Lj7/r;
  + Lj7/s0;
  + Lj7/s1;
  + Lj7/s2;
  + Lj7/s;
  + Lj7/t0;
  + Lj7/t1;
  + Lj7/t2;
  + Lj7/t;
  + Lj7/u0;
  + Lj7/u1;
  + Lj7/u2;
  + Lj7/u;
  + Lj7/v0;
  + Lj7/v1;
  + Lj7/v2;
  + Lj7/v;
  + Lj7/w0;
  + Lj7/w1;
  + Lj7/w;
  + Lj7/x0;
  + Lj7/x1;
  + Lj7/x;
  + Lj7/y0;
  + Lj7/y1;
  + Lj7/y;
  + Lj7/z0;
  + Lj7/z1;
  + Lj7/z;
  + Lj8/f;
  + Lj8/g;
  + Lj8/h;
  + Lj8/i;
  + Lj8/j;
  + Lj8/k;
  + Lj8/l;
  + Lj8/m;
  + Lj8/n;
  + Lj8/o;
  + Lj8/p;
  + Lj8/q;
  + Lj8/r;
  + Lj8/s;
  + Lj8/t;
  + Lj8/u;
  + Lj8/v;
  + Lk8/b;
  + Lk8/c;
  + Lk8/d;
  + Lk8/e;
  + Ll7/a0;
  + Ll7/a1;
  + Ll7/a2;
  + Ll7/b0;
  + Ll7/b1;
  + Ll7/b2;
  + Ll7/c0;
  + Ll7/c1;
  + Ll7/c2;
  + Ll7/d0;
  + Ll7/d1;
  + Ll7/d2;
  + Ll7/e0;
  + Ll7/e1;
  + Ll7/e2;
  + Ll7/f0;
  + Ll7/f1;
  + Ll7/f2;
  + Ll7/g0;
  + Ll7/g1;
  + Ll7/g2;
  + Ll7/h0;
  + Ll7/h1;
  + Ll7/h2;
  + Ll7/i0;
  + Ll7/i1;
  + Ll7/i2;
  + Ll7/i;
  + Ll7/j0;
  + Ll7/j1;
  + Ll7/j2;
  + Ll7/j;
  + Ll7/k0;
  + Ll7/k1;
  + Ll7/k2;
  + Ll7/k;
  + Ll7/l0;
  + Ll7/l1;
  + Ll7/l2;
  + Ll7/l;
  + Ll7/m0;
  + Ll7/m1;
  + Ll7/m2;
  + Ll
...✂
ARSC
ENTRIES:

   old  │ new  │ diff         
  ──────┼──────┼──────────────
   5177 │ 5190 │ +13 (+14 -1) 
  + color/stripe_doc_warmup_icon_tint
  + color/stripe_html_line
  + drawable/stripe_cloud_icon
  + drawable/stripe_create_identity_verification_icon
  + drawable/stripe_dispute_protection_icon
  + drawable/stripe_doc_warmup_back
  + drawable/stripe_doc_warmup_front
  + drawable/stripe_document_icon
  + drawable/stripe_ellipsis_icon
  + drawable/stripe_lock_icon
  + drawable/stripe_moved_icon
  + drawable/stripe_phone_icon
  + drawable/stripe_selfie_warmup
  + drawable/stripe_wallet_icon
  
  - dimen/stripe_selfie_warmup_title_text_size

Copy link
Collaborator

@carlosmuvi-stripe carlosmuvi-stripe left a comment

Choose a reason for hiding this comment

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

Looks good! How can I test this?

@ccen-stripe
Copy link
Collaborator Author

Looks good! How can I test this?

Added BottomSheetTest!

@ccen-stripe ccen-stripe force-pushed the ccen/butter2 branch 2 times, most recently from a6cd81c to 23fff4c Compare October 10, 2023 21:34
Base automatically changed from ccen/updateHtml to master October 11, 2023 17:52
@ccen-stripe ccen-stripe dismissed carlosmuvi-stripe’s stale review October 11, 2023 17:52

The base branch was changed.

@ccen-stripe ccen-stripe changed the title [Identity] Support bottomsheet [Identity] - Butter 2.0 M1 Oct 11, 2023
@ccen-stripe
Copy link
Collaborator Author

ccen-stripe commented Oct 11, 2023

This PR is reviewed and serves as the release branch, and the following reviewed and merged into this release branch:

#7412 - support consent page

#7555 - remove parameters for Scan and Upload destinations

#7586 - Use IdentityScanViewModel.State to drive SelfieScreen UI

#7611 - Replace doc selection screen with doc warm up screen

#7638 - Final UX tweaks

#7657 - Clean up CameraScreenLaunchedEffect

@ccen-stripe
Copy link
Collaborator Author

@stripe/stripe-identity-observers

@ccen-stripe ccen-stripe merged commit 1d09848 into master Nov 28, 2023
13 checks passed
@ccen-stripe ccen-stripe deleted the ccen/butter2 branch November 28, 2023 18:44
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.

None yet

2 participants