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

Embedded Appearance API #9706

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

tjclawson-stripe
Copy link
Collaborator

@tjclawson-stripe tjclawson-stripe commented Nov 25, 2024

Summary

Adds Appearance API for Embedded Payment Element

Motivation

MOBILESDK-2715
API Review

Testing

  • Added tests
  • Modified tests
  • Manually verified

Copy link
Contributor

github-actions bot commented Nov 25, 2024

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 │ +13 B │   4.1 MiB │   4.1 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.8 KiB │ 301.8 KiB │   0 B │ 455.5 KiB │ 455.5 KiB │  0 B 
   native │   6.2 MiB │   6.2 MiB │   0 B │  15.8 MiB │  15.8 MiB │  0 B 
    asset │   7.1 KiB │   7.1 KiB │   0 B │   6.9 KiB │   6.9 KiB │  0 B 
    other │  90.2 KiB │  90.2 KiB │  -2 B │ 170.3 KiB │ 170.3 KiB │  0 B 
──────────┼───────────┼───────────┼───────┼───────────┼───────────┼──────
    total │   9.6 MiB │   9.6 MiB │ +11 B │  21.5 MiB │  21.5 MiB │  0 B 

 DEX     │ old   │ new   │ diff      
─────────┼───────┼───────┼───────────
   files │     1 │     1 │ 0         
 strings │ 19966 │ 19966 │ 0 (+1 -1) 
   types │  6188 │  6188 │ 0 (+0 -0) 
 classes │  4979 │  4979 │ 0 (+0 -0) 
 methods │ 29759 │ 29759 │ 0 (+0 -0) 
  fields │ 17526 │ 17526 │ 0 (+0 -0) 

 ARSC    │ old  │ new  │ diff 
─────────┼──────┼──────┼──────
 configs │  164 │  164 │  0   
 entries │ 3622 │ 3622 │  0
APK
    compressed    │  uncompressed   │                                           
──────────┬───────┼──────────┬──────┤                                           
 size     │ diff  │ size     │ diff │ path                                      
──────────┼───────┼──────────┼──────┼───────────────────────────────────────────
    2 MiB │ +13 B │  4.1 MiB │  0 B │ ∆ classes.dex                             
 25.3 KiB │  -6 B │ 62.8 KiB │  0 B │ ∆ META-INF/MANIFEST.MF                    
 28.4 KiB │  +4 B │ 62.9 KiB │  0 B │ ∆ META-INF/CERT.SF                        
    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                       
──────────┼───────┼──────────┼──────┼───────────────────────────────────────────
    2 MiB │ +11 B │  4.2 MiB │  0 B │ (total)
DEX
STRINGS:

   old   │ new   │ diff      
  ───────┼───────┼───────────
   19966 │ 19966 │ 0 (+1 -1) 
  
  + ~~R8{"backend":"dex","compilation-mode":"release","has-checksums":false,"min-api":21,"pg-map-id":"cb0eba6","r8-mode":"full","version":"8.7.14"}
  
  - ~~R8{"backend":"dex","compilation-mode":"release","has-checksums":false,"min-api":21,"pg-map-id":"1a8fa34","r8-mode":"full","version":"8.7.14"}

@@ -182,6 +183,7 @@ private fun CustomizationCard(
}
}

@OptIn(ExperimentalEmbeddedPaymentElementApi::class)
Copy link
Collaborator Author

@tjclawson-stripe tjclawson-stripe Nov 25, 2024

Choose a reason for hiding this comment

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

Required because the method calls copy on Appearance

@jaynewstrom-stripe
Copy link
Collaborator

@tjclawson-stripe can you link the API review please?

@jaynewstrom-stripe
Copy link
Collaborator

We should also @RestrictTo these until we're ready for private beta.

@tjclawson-stripe
Copy link
Collaborator Author

We should also @RestrictTo these until we're ready for private beta.

Done 👍

@tjclawson-stripe
Copy link
Collaborator Author

@tjclawson-stripe can you link the API review please?

Added 👍

public synthetic fun newArray (I)[Ljava/lang/Object;
}

public final class com/stripe/android/paymentsheet/PaymentSheet$Appearance$Embedded$RowStyle$FloatingButton : com/stripe/android/paymentsheet/PaymentSheet$Appearance$Embedded$RowStyle {
Copy link
Collaborator

Choose a reason for hiding this comment

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

You'll need to restrict the nested classes as well.

@@ -606,32 +606,6 @@ public final class com/stripe/android/paymentsheet/PaymentSheet$Address$Creator
public synthetic fun newArray (I)[Ljava/lang/Object;
}

public final class com/stripe/android/paymentsheet/PaymentSheet$Appearance : android/os/Parcelable {
Copy link
Collaborator

Choose a reason for hiding this comment

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

How come this got removed?

@@ -881,6 +883,8 @@ class PaymentSheet internal constructor(
}

@Parcelize
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
Copy link
Collaborator

Choose a reason for hiding this comment

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

We don't want to restrict all of appearance! That would be bad! I think you meant to restrict the constructor.

@@ -10,6 +11,7 @@ import org.robolectric.RobolectricTestRunner

@RunWith(RobolectricTestRunner::class)
class CustomerSheetConfigurationTest {
@OptIn(ExperimentalEmbeddedPaymentElementApi::class)
Copy link
Collaborator

Choose a reason for hiding this comment

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

This shouldn't be needed, otherwise merchants will need to do the same.

@@ -227,6 +228,7 @@ class BacsConfirmationDefinitionTest {
assertThat(launchAction.receivesResultInProcess).isTrue()
}

@OptIn(ExperimentalEmbeddedPaymentElementApi::class)
Copy link
Collaborator

Choose a reason for hiding this comment

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

This shouldn't be needed, otherwise merchants will need to do the same.

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.

2 participants