@stripe/stripe-react-native 0.56.0 → 0.57.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +76 -118
- package/android/gradle.properties +1 -1
- package/android/settings.gradle +2 -0
- package/android/spotless.gradle +1 -1
- package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormView.kt +24 -20
- package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +20 -17
- package/android/src/main/java/com/reactnativestripesdk/CardFormView.kt +28 -32
- package/android/src/main/java/com/reactnativestripesdk/{CollectBankAccountLauncherFragment.kt → CollectBankAccountLauncherManager.kt} +23 -44
- package/android/src/main/java/com/reactnativestripesdk/CustomPaymentMethodActivity.kt +2 -0
- package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +4 -11
- package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +52 -132
- package/android/src/main/java/com/reactnativestripesdk/EventEmitterCompat.kt +0 -8
- package/android/src/main/java/com/reactnativestripesdk/FakeOnrampSdkModule.kt +154 -0
- package/android/src/main/java/com/reactnativestripesdk/{FinancialConnectionsSheetFragment.kt → FinancialConnectionsSheetManager.kt} +43 -92
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +1 -1
- package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherManager.kt +107 -0
- package/android/src/main/java/com/reactnativestripesdk/GooglePayPaymentMethodLauncherManager.kt +37 -0
- package/android/src/main/java/com/reactnativestripesdk/GooglePayRequestHelper.kt +7 -5
- package/android/src/main/java/com/reactnativestripesdk/NavigationBarManager.kt +31 -0
- package/android/src/main/java/com/reactnativestripesdk/NavigationBarView.kt +120 -0
- package/android/src/main/java/com/reactnativestripesdk/PaymentElementConfig.kt +228 -0
- package/android/src/main/java/com/reactnativestripesdk/{PaymentLauncherFragment.kt → PaymentLauncherManager.kt} +40 -77
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +11 -20
- package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +4 -6
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +409 -483
- package/android/src/main/java/com/reactnativestripesdk/{PaymentSheetFragment.kt → PaymentSheetManager.kt} +65 -300
- package/android/src/main/java/com/reactnativestripesdk/StripeAbstractComposeView.kt +53 -17
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +227 -232
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +21 -2
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherManager.kt +78 -0
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +52 -39
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetViewManager.kt +2 -2
- package/android/src/main/java/com/reactnativestripesdk/customersheet/{CustomerSheetFragment.kt → CustomerSheetManager.kt} +64 -99
- package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerSessionProvider.kt +2 -3
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +5 -10
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonView.kt +90 -77
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/TapAndPayProxy.kt +6 -4
- package/android/src/main/java/com/reactnativestripesdk/utils/Errors.kt +13 -3
- package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +87 -11
- package/android/src/main/java/com/reactnativestripesdk/utils/KeepJsAwakeTask.kt +1 -1
- package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +178 -185
- package/android/src/main/java/com/reactnativestripesdk/utils/StripeUIManager.kt +62 -0
- package/android/src/oldarch/java/com/reactnativestripesdk/NativeOnrampSdkModuleSpec.java +118 -0
- package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +4 -0
- package/android/src/onramp/java/com/reactnativestripesdk/OnrampSdkModule.kt +922 -0
- package/android/src/test/java/com/facebook/testutils/shadows/ShadowArguments.kt +29 -0
- package/android/src/test/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManagerTest.kt +163 -0
- package/android/src/test/java/com/reactnativestripesdk/PaymentElementConfigTest.kt +976 -0
- package/android/src/test/java/com/reactnativestripesdk/PaymentSheetAppearanceTest.kt +801 -0
- package/android/src/test/java/com/reactnativestripesdk/PaymentSheetManagerTest.kt +523 -0
- package/android/src/test/java/com/reactnativestripesdk/addresssheet/AddressSheetViewTest.kt +551 -0
- package/android/src/test/java/com/reactnativestripesdk/mappers/MappersTest.kt +567 -0
- package/android/src/test/java/com/reactnativestripesdk/mappers/PaymentOptionDisplayDataMapperTest.kt +456 -0
- package/android/src/test/java/com/reactnativestripesdk/pushprovisioning/PushProvisioningProxyTest.kt +43 -0
- package/android/src/test/resources/robolectric.properties +2 -0
- package/ios/AddressSheet/AddressSheetUtils.swift +3 -3
- package/ios/AddressSheet/AddressSheetView.swift +26 -26
- package/ios/AddressSheet/AddressSheetViewManager.swift +2 -2
- package/ios/ApplePayButtonManager.swift +1 -1
- package/ios/ApplePayButtonView.swift +9 -10
- package/ios/ApplePayUtils.swift +51 -51
- package/ios/ApplePayViewController.swift +25 -29
- package/ios/AuBECSDebitFormManager.swift +1 -1
- package/ios/AuBECSDebitFormView.swift +13 -15
- package/ios/CardFieldManager.swift +4 -4
- package/ios/CardFieldView.swift +9 -9
- package/ios/CardFormManager.swift +3 -3
- package/ios/CardFormView.swift +28 -28
- package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingView.swift +97 -0
- package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewController.swift +133 -0
- package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewManager.m +16 -0
- package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewManager.swift +17 -0
- package/ios/CustomerSheet/CustomerSheetUtils.swift +15 -16
- package/ios/CustomerSheet/ReactNativeCustomerAdapter.swift +19 -19
- package/ios/EmbeddedPaymentElementView.swift +2 -2
- package/ios/Errors.swift +22 -23
- package/ios/FinancialConnections.swift +37 -37
- package/ios/Mappers.swift +212 -75
- package/ios/NavigationBarManager.m +13 -0
- package/ios/NavigationBarManager.swift +17 -0
- package/ios/NavigationBarView.swift +65 -0
- package/ios/NewArch/NavigationBarComponentView.h +10 -0
- package/ios/NewArch/NavigationBarComponentView.mm +86 -0
- package/ios/OldArch/StripeSdkEventEmitterCompat.h +1 -0
- package/ios/OldArch/StripeSdkEventEmitterCompat.m +7 -1
- package/ios/PaymentMethodFactory.swift +24 -41
- package/ios/PaymentOptionDisplayData+ReactNative.swift +4 -4
- package/ios/PaymentPassFinder.swift +9 -10
- package/ios/PaymentSheetAppearance.swift +137 -138
- package/ios/PushProvisioning/AddToWalletButtonManager.swift +2 -2
- package/ios/PushProvisioning/AddToWalletButtonView.swift +16 -18
- package/ios/PushProvisioning/PushProvisioningUtils.swift +11 -11
- package/ios/StripeContainerManager.swift +1 -1
- package/ios/StripeContainerView.swift +3 -3
- package/ios/StripeOnrampSdk.h +17 -0
- package/ios/StripeOnrampSdk.mm +158 -0
- package/ios/StripeSdk.mm +8 -0
- package/ios/StripeSdkEmitter.swift +4 -0
- package/ios/StripeSdkImpl+CustomerSheet.swift +31 -26
- package/ios/StripeSdkImpl+Embedded.swift +11 -9
- package/ios/StripeSdkImpl+PaymentSheet.swift +51 -42
- package/ios/StripeSdkImpl.swift +919 -191
- package/ios/UIColorExtension.swift +72 -0
- package/lib/commonjs/components/AddToWalletButton.js +1 -1
- package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
- package/lib/commonjs/components/AddressSheet.js +1 -1
- package/lib/commonjs/components/AddressSheet.js.map +1 -1
- package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
- package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
- package/lib/commonjs/components/CardField.js +1 -1
- package/lib/commonjs/components/CardField.js.map +1 -1
- package/lib/commonjs/components/CardForm.js +1 -1
- package/lib/commonjs/components/CardForm.js.map +1 -1
- package/lib/commonjs/components/PlatformPayButton.js +1 -1
- package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
- package/lib/commonjs/components/StripeContainer.js +1 -1
- package/lib/commonjs/components/StripeContainer.js.map +1 -1
- package/lib/commonjs/components/StripeProvider.js +1 -1
- package/lib/commonjs/components/StripeProvider.js.map +1 -1
- package/lib/commonjs/connect/Components.js +2 -0
- package/lib/commonjs/connect/Components.js.map +1 -0
- package/lib/commonjs/connect/ConnectComponentsProvider.js +2 -0
- package/lib/commonjs/connect/ConnectComponentsProvider.js.map +1 -0
- package/lib/commonjs/connect/EmbeddedComponent.js +19 -0
- package/lib/commonjs/connect/EmbeddedComponent.js.map +1 -0
- package/lib/commonjs/connect/ModalCloseButton.js +2 -0
- package/lib/commonjs/connect/ModalCloseButton.js.map +1 -0
- package/lib/commonjs/connect/NavigationBar.js +2 -0
- package/lib/commonjs/connect/NavigationBar.js.map +1 -0
- package/lib/commonjs/connect/connectTypes.js +2 -0
- package/lib/commonjs/connect/connectTypes.js.map +1 -0
- package/lib/commonjs/events.js +1 -1
- package/lib/commonjs/events.js.map +1 -1
- package/lib/commonjs/helpers.js +1 -1
- package/lib/commonjs/helpers.js.map +1 -1
- package/lib/commonjs/hooks/useOnramp.js +2 -0
- package/lib/commonjs/hooks/useOnramp.js.map +1 -0
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/plugin/withStripe.js +1 -1
- package/lib/commonjs/plugin/withStripe.js.map +1 -1
- package/lib/commonjs/specs/NativeAddToWalletButton.js +1 -1
- package/lib/commonjs/specs/NativeAddToWalletButton.js.map +1 -1
- package/lib/commonjs/specs/NativeAddressSheet.js +1 -1
- package/lib/commonjs/specs/NativeAddressSheet.js.map +1 -1
- package/lib/commonjs/specs/NativeApplePayButton.js +1 -1
- package/lib/commonjs/specs/NativeApplePayButton.js.map +1 -1
- package/lib/commonjs/specs/NativeAuBECSDebitForm.js +1 -1
- package/lib/commonjs/specs/NativeAuBECSDebitForm.js.map +1 -1
- package/lib/commonjs/specs/NativeCardField.js +1 -1
- package/lib/commonjs/specs/NativeCardField.js.map +1 -1
- package/lib/commonjs/specs/NativeCardForm.js +1 -1
- package/lib/commonjs/specs/NativeCardForm.js.map +1 -1
- package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js +2 -0
- package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js.map +1 -0
- package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +1 -1
- package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -1
- package/lib/commonjs/specs/NativeGooglePayButton.js +1 -1
- package/lib/commonjs/specs/NativeGooglePayButton.js.map +1 -1
- package/lib/commonjs/specs/NativeNavigationBar.js +2 -0
- package/lib/commonjs/specs/NativeNavigationBar.js.map +1 -0
- package/lib/commonjs/specs/NativeOnrampSdkModule.js +2 -0
- package/lib/commonjs/specs/NativeOnrampSdkModule.js.map +1 -0
- package/lib/commonjs/specs/NativeStripeContainer.js +1 -1
- package/lib/commonjs/specs/NativeStripeContainer.js.map +1 -1
- package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -1
- package/lib/commonjs/types/EmbeddedPaymentElement.js +1 -1
- package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -1
- package/lib/commonjs/types/Errors.js +1 -1
- package/lib/commonjs/types/Errors.js.map +1 -1
- package/lib/commonjs/types/Onramp.js +2 -0
- package/lib/commonjs/types/Onramp.js.map +1 -0
- package/lib/commonjs/types/PaymentIntent.js.map +1 -1
- package/lib/commonjs/types/PaymentSheet.js.map +1 -1
- package/lib/commonjs/types/index.js +1 -1
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/module/components/AddToWalletButton.js +1 -1
- package/lib/module/components/AddToWalletButton.js.map +1 -1
- package/lib/module/components/AddressSheet.js +1 -1
- package/lib/module/components/AddressSheet.js.map +1 -1
- package/lib/module/components/AuBECSDebitForm.js +1 -1
- package/lib/module/components/AuBECSDebitForm.js.map +1 -1
- package/lib/module/components/CardField.js +1 -1
- package/lib/module/components/CardField.js.map +1 -1
- package/lib/module/components/CardForm.js +1 -1
- package/lib/module/components/CardForm.js.map +1 -1
- package/lib/module/components/PlatformPayButton.js +1 -1
- package/lib/module/components/PlatformPayButton.js.map +1 -1
- package/lib/module/components/StripeContainer.js +1 -1
- package/lib/module/components/StripeContainer.js.map +1 -1
- package/lib/module/components/StripeProvider.js +1 -1
- package/lib/module/components/StripeProvider.js.map +1 -1
- package/lib/module/connect/Components.js +2 -0
- package/lib/module/connect/Components.js.map +1 -0
- package/lib/module/connect/ConnectComponentsProvider.js +2 -0
- package/lib/module/connect/ConnectComponentsProvider.js.map +1 -0
- package/lib/module/connect/EmbeddedComponent.js +19 -0
- package/lib/module/connect/EmbeddedComponent.js.map +1 -0
- package/lib/module/connect/ModalCloseButton.js +2 -0
- package/lib/module/connect/ModalCloseButton.js.map +1 -0
- package/lib/module/connect/NavigationBar.js +2 -0
- package/lib/module/connect/NavigationBar.js.map +1 -0
- package/lib/module/connect/connectTypes.js +2 -0
- package/lib/module/connect/connectTypes.js.map +1 -0
- package/lib/module/events.js +1 -1
- package/lib/module/events.js.map +1 -1
- package/lib/module/helpers.js +1 -1
- package/lib/module/helpers.js.map +1 -1
- package/lib/module/hooks/useOnramp.js +2 -0
- package/lib/module/hooks/useOnramp.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/plugin/withStripe.js +1 -1
- package/lib/module/plugin/withStripe.js.map +1 -1
- package/lib/module/specs/NativeAddToWalletButton.js +1 -1
- package/lib/module/specs/NativeAddToWalletButton.js.map +1 -1
- package/lib/module/specs/NativeAddressSheet.js +1 -1
- package/lib/module/specs/NativeAddressSheet.js.map +1 -1
- package/lib/module/specs/NativeApplePayButton.js +1 -1
- package/lib/module/specs/NativeApplePayButton.js.map +1 -1
- package/lib/module/specs/NativeAuBECSDebitForm.js +1 -1
- package/lib/module/specs/NativeAuBECSDebitForm.js.map +1 -1
- package/lib/module/specs/NativeCardField.js +1 -1
- package/lib/module/specs/NativeCardField.js.map +1 -1
- package/lib/module/specs/NativeCardForm.js +1 -1
- package/lib/module/specs/NativeCardForm.js.map +1 -1
- package/lib/module/specs/NativeConnectAccountOnboardingView.js +2 -0
- package/lib/module/specs/NativeConnectAccountOnboardingView.js.map +1 -0
- package/lib/module/specs/NativeEmbeddedPaymentElement.js +1 -1
- package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -1
- package/lib/module/specs/NativeGooglePayButton.js +1 -1
- package/lib/module/specs/NativeGooglePayButton.js.map +1 -1
- package/lib/module/specs/NativeNavigationBar.js +2 -0
- package/lib/module/specs/NativeNavigationBar.js.map +1 -0
- package/lib/module/specs/NativeOnrampSdkModule.js +2 -0
- package/lib/module/specs/NativeOnrampSdkModule.js.map +1 -0
- package/lib/module/specs/NativeStripeContainer.js +1 -1
- package/lib/module/specs/NativeStripeContainer.js.map +1 -1
- package/lib/module/specs/NativeStripeSdkModule.js.map +1 -1
- package/lib/module/types/EmbeddedPaymentElement.js +1 -1
- package/lib/module/types/EmbeddedPaymentElement.js.map +1 -1
- package/lib/module/types/Errors.js +1 -1
- package/lib/module/types/Errors.js.map +1 -1
- package/lib/module/types/Onramp.js +2 -0
- package/lib/module/types/Onramp.js.map +1 -0
- package/lib/module/types/PaymentIntent.js.map +1 -1
- package/lib/module/types/PaymentSheet.js.map +1 -1
- package/lib/module/types/index.js +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/typescript/src/components/StripeProvider.d.ts.map +1 -1
- package/lib/typescript/src/connect/Components.d.ts +23 -0
- package/lib/typescript/src/connect/Components.d.ts.map +1 -0
- package/lib/typescript/src/connect/ConnectComponentsProvider.d.ts +22 -0
- package/lib/typescript/src/connect/ConnectComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/src/connect/EmbeddedComponent.d.ts +18 -0
- package/lib/typescript/src/connect/EmbeddedComponent.d.ts.map +1 -0
- package/lib/typescript/src/connect/ModalCloseButton.d.ts +7 -0
- package/lib/typescript/src/connect/ModalCloseButton.d.ts.map +1 -0
- package/lib/typescript/src/connect/NavigationBar.d.ts +8 -0
- package/lib/typescript/src/connect/NavigationBar.d.ts.map +1 -0
- package/lib/typescript/src/connect/connectTypes.d.ts +464 -0
- package/lib/typescript/src/connect/connectTypes.d.ts.map +1 -0
- package/lib/typescript/src/events.d.ts +3 -0
- package/lib/typescript/src/events.d.ts.map +1 -1
- package/lib/typescript/src/functions.d.ts.map +1 -1
- package/lib/typescript/src/helpers.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useOnramp.d.ts +158 -0
- package/lib/typescript/src/hooks/useOnramp.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/plugin/withStripe.d.ts +15 -0
- package/lib/typescript/src/plugin/withStripe.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeConnectAccountOnboardingView.d.ts +14 -0
- package/lib/typescript/src/specs/NativeConnectAccountOnboardingView.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeNavigationBar.d.ts +11 -0
- package/lib/typescript/src/specs/NativeNavigationBar.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts +28 -0
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +3 -0
- package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -1
- package/lib/typescript/src/types/Errors.d.ts +5 -0
- package/lib/typescript/src/types/Errors.d.ts.map +1 -1
- package/lib/typescript/src/types/Onramp.d.ts +275 -0
- package/lib/typescript/src/types/Onramp.d.ts.map +1 -0
- package/lib/typescript/src/types/PaymentIntent.d.ts +1 -9
- package/lib/typescript/src/types/PaymentIntent.d.ts.map +1 -1
- package/lib/typescript/src/types/PaymentMethod.d.ts +2 -8
- package/lib/typescript/src/types/PaymentMethod.d.ts.map +1 -1
- package/lib/typescript/src/types/PaymentSheet.d.ts +7 -0
- package/lib/typescript/src/types/PaymentSheet.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +7 -1
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/package.json +24 -12
- package/src/components/StripeProvider.tsx +5 -0
- package/src/connect/Components.tsx +279 -0
- package/src/connect/ConnectComponentsProvider.tsx +93 -0
- package/src/connect/EmbeddedComponent.tsx +407 -0
- package/src/connect/ModalCloseButton.tsx +44 -0
- package/src/connect/NavigationBar.tsx +29 -0
- package/src/connect/connectTypes.ts +626 -0
- package/src/events.ts +22 -0
- package/src/hooks/useOnramp.tsx +334 -0
- package/src/index.tsx +13 -0
- package/src/plugin/withStripe.ts +104 -7
- package/src/specs/NativeConnectAccountOnboardingView.ts +19 -0
- package/src/specs/NativeNavigationBar.ts +16 -0
- package/src/specs/NativeOnrampSdkModule.ts +47 -0
- package/src/specs/NativeStripeSdkModule.ts +5 -0
- package/src/types/Errors.ts +6 -0
- package/src/types/Onramp.ts +317 -0
- package/src/types/PaymentIntent.ts +0 -10
- package/src/types/PaymentMethod.ts +0 -9
- package/src/types/PaymentSheet.ts +7 -0
- package/src/types/index.ts +8 -0
- package/stripe-react-native.podspec +21 -8
- package/android/.idea/AndroidProjectSystem.xml +0 -6
- package/android/.idea/caches/deviceStreaming.xml +0 -703
- package/android/.idea/compiler.xml +0 -6
- package/android/.idea/gradle.xml +0 -18
- package/android/.idea/migrations.xml +0 -10
- package/android/.idea/misc.xml +0 -10
- package/android/.idea/runConfigurations.xml +0 -17
- package/android/.idea/vcs.xml +0 -6
- package/android/local.properties +0 -8
- package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherFragment.kt +0 -146
- package/android/src/main/java/com/reactnativestripesdk/GooglePayPaymentMethodLauncherFragment.kt +0 -68
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherFragment.kt +0 -102
- package/android/src/main/java/com/reactnativestripesdk/utils/StripeFragment.kt +0 -52
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
package com.reactnativestripesdk.utils
|
|
2
2
|
|
|
3
3
|
import android.annotation.SuppressLint
|
|
4
|
-
import android.os.Bundle
|
|
5
|
-
import android.util.Log
|
|
6
4
|
import com.facebook.react.bridge.Arguments
|
|
7
5
|
import com.facebook.react.bridge.ReadableArray
|
|
8
6
|
import com.facebook.react.bridge.ReadableMap
|
|
9
|
-
import com.facebook.react.bridge.ReadableType
|
|
10
7
|
import com.facebook.react.bridge.WritableArray
|
|
11
8
|
import com.facebook.react.bridge.WritableMap
|
|
12
9
|
import com.facebook.react.bridge.WritableNativeMap
|
|
@@ -30,13 +27,16 @@ import com.stripe.android.model.StripeIntent.NextActionType
|
|
|
30
27
|
import com.stripe.android.model.Token
|
|
31
28
|
import com.stripe.android.paymentelement.ExperimentalCustomPaymentMethodsApi
|
|
32
29
|
import com.stripe.android.paymentsheet.PaymentSheet
|
|
30
|
+
import java.lang.IllegalArgumentException
|
|
31
|
+
|
|
32
|
+
internal fun createEmptyResult(): WritableMap = WritableNativeMap()
|
|
33
33
|
|
|
34
34
|
internal fun createResult(
|
|
35
35
|
key: String,
|
|
36
36
|
value: WritableMap,
|
|
37
37
|
additionalFields: Map<String, Any>? = null,
|
|
38
38
|
): WritableMap {
|
|
39
|
-
val map =
|
|
39
|
+
val map = Arguments.createMap()
|
|
40
40
|
map.putMap(key, value)
|
|
41
41
|
additionalFields?.let { map.merge(it.toReadableMap()) }
|
|
42
42
|
return map
|
|
@@ -46,9 +46,9 @@ internal fun createCanAddCardResult(
|
|
|
46
46
|
canAddCard: Boolean,
|
|
47
47
|
status: String? = null,
|
|
48
48
|
token: WritableMap? = null,
|
|
49
|
-
):
|
|
50
|
-
val result =
|
|
51
|
-
val details =
|
|
49
|
+
): WritableMap {
|
|
50
|
+
val result = Arguments.createMap()
|
|
51
|
+
val details = Arguments.createMap()
|
|
52
52
|
result.putBoolean("canAddCard", canAddCard)
|
|
53
53
|
if (status != null) {
|
|
54
54
|
details.putString("status", status)
|
|
@@ -94,8 +94,8 @@ internal fun mapToReturnURL(urlScheme: String?): String? {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
internal fun mapIntentShipping(shipping: PaymentIntent.Shipping): WritableMap {
|
|
97
|
-
val map: WritableMap =
|
|
98
|
-
val address: WritableMap =
|
|
97
|
+
val map: WritableMap = Arguments.createMap()
|
|
98
|
+
val address: WritableMap = Arguments.createMap()
|
|
99
99
|
|
|
100
100
|
address.putString("city", shipping.address.city)
|
|
101
101
|
address.putString("country", shipping.address.country)
|
|
@@ -138,7 +138,6 @@ internal fun mapPaymentMethodType(type: PaymentMethod.Type?): String =
|
|
|
138
138
|
PaymentMethod.Type.CardPresent -> "CardPresent"
|
|
139
139
|
PaymentMethod.Type.Eps -> "Eps"
|
|
140
140
|
PaymentMethod.Type.Fpx -> "Fpx"
|
|
141
|
-
PaymentMethod.Type.Giropay -> "Giropay"
|
|
142
141
|
PaymentMethod.Type.GrabPay -> "GrabPay"
|
|
143
142
|
PaymentMethod.Type.Ideal -> "Ideal"
|
|
144
143
|
PaymentMethod.Type.Netbanking -> "Netbanking"
|
|
@@ -171,7 +170,6 @@ internal fun mapToPaymentMethodType(type: String?): PaymentMethod.Type? =
|
|
|
171
170
|
"CardPresent" -> PaymentMethod.Type.CardPresent
|
|
172
171
|
"Eps" -> PaymentMethod.Type.Eps
|
|
173
172
|
"Fpx" -> PaymentMethod.Type.Fpx
|
|
174
|
-
"Giropay" -> PaymentMethod.Type.Giropay
|
|
175
173
|
"GrabPay" -> PaymentMethod.Type.GrabPay
|
|
176
174
|
"Netbanking" -> PaymentMethod.Type.Netbanking
|
|
177
175
|
"Oxxo" -> PaymentMethod.Type.Oxxo
|
|
@@ -190,8 +188,8 @@ internal fun mapToPaymentMethodType(type: String?): PaymentMethod.Type? =
|
|
|
190
188
|
}
|
|
191
189
|
|
|
192
190
|
internal fun mapFromBillingDetails(billingDatails: PaymentMethod.BillingDetails?): WritableMap {
|
|
193
|
-
val details: WritableMap =
|
|
194
|
-
val address: WritableMap =
|
|
191
|
+
val details: WritableMap = Arguments.createMap()
|
|
192
|
+
val address: WritableMap = Arguments.createMap()
|
|
195
193
|
|
|
196
194
|
address.putString("country", billingDatails?.address?.country)
|
|
197
195
|
address.putString("city", billingDatails?.address?.city)
|
|
@@ -237,7 +235,6 @@ internal fun mapTokenType(type: Token.Type): String =
|
|
|
237
235
|
Token.Type.CvcUpdate -> "CvcUpdate"
|
|
238
236
|
Token.Type.Person -> "Person"
|
|
239
237
|
Token.Type.Pii -> "Pii"
|
|
240
|
-
else -> "Unknown"
|
|
241
238
|
}
|
|
242
239
|
|
|
243
240
|
internal fun mapFromBankAccountType(type: BankAccount.Type?): String =
|
|
@@ -269,7 +266,7 @@ internal fun mapFromBankAccount(bankAccount: BankAccount?): WritableMap? {
|
|
|
269
266
|
return null
|
|
270
267
|
}
|
|
271
268
|
|
|
272
|
-
val bankAccountMap: WritableMap =
|
|
269
|
+
val bankAccountMap: WritableMap = Arguments.createMap()
|
|
273
270
|
bankAccountMap.putString("id", bankAccount.id)
|
|
274
271
|
bankAccountMap.putString("bankName", bankAccount.bankName)
|
|
275
272
|
bankAccountMap.putString("accountHolderName", bankAccount.accountHolderName)
|
|
@@ -316,13 +313,13 @@ internal fun mapFromUSBankAccountType(type: PaymentMethod.USBankAccount.USBankAc
|
|
|
316
313
|
}
|
|
317
314
|
|
|
318
315
|
internal fun mapFromCard(card: Card?): WritableMap? {
|
|
319
|
-
val cardMap: WritableMap =
|
|
316
|
+
val cardMap: WritableMap = Arguments.createMap()
|
|
320
317
|
|
|
321
318
|
if (card == null) {
|
|
322
319
|
return null
|
|
323
320
|
}
|
|
324
321
|
|
|
325
|
-
val address: WritableMap =
|
|
322
|
+
val address: WritableMap = Arguments.createMap()
|
|
326
323
|
|
|
327
324
|
cardMap.putString("country", card.country)
|
|
328
325
|
cardMap.putString("brand", mapCardBrand(card.brand))
|
|
@@ -350,7 +347,7 @@ internal fun mapFromCard(card: Card?): WritableMap? {
|
|
|
350
347
|
}
|
|
351
348
|
|
|
352
349
|
internal fun mapFromToken(token: Token): WritableMap {
|
|
353
|
-
val tokenMap: WritableMap =
|
|
350
|
+
val tokenMap: WritableMap = Arguments.createMap()
|
|
354
351
|
tokenMap.putString("id", token.id)
|
|
355
352
|
tokenMap.putString("created", token.created.time.toString())
|
|
356
353
|
tokenMap.putString("type", mapTokenType(token.type))
|
|
@@ -363,7 +360,7 @@ internal fun mapFromToken(token: Token): WritableMap {
|
|
|
363
360
|
}
|
|
364
361
|
|
|
365
362
|
internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
366
|
-
val pm: WritableMap =
|
|
363
|
+
val pm: WritableMap = Arguments.createMap()
|
|
367
364
|
|
|
368
365
|
pm.putString("id", paymentMethod.id)
|
|
369
366
|
pm.putString("paymentMethodType", mapPaymentMethodType(paymentMethod.type))
|
|
@@ -372,7 +369,7 @@ internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
|
372
369
|
pm.putMap("billingDetails", mapFromBillingDetails(paymentMethod.billingDetails))
|
|
373
370
|
pm.putMap(
|
|
374
371
|
"Card",
|
|
375
|
-
|
|
372
|
+
Arguments.createMap().also {
|
|
376
373
|
it.putString("brand", mapCardBrand(paymentMethod.card?.brand))
|
|
377
374
|
it.putString("country", paymentMethod.card?.country)
|
|
378
375
|
paymentMethod.card?.expiryYear?.let { year -> it.putInt("expYear", year) }
|
|
@@ -390,7 +387,7 @@ internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
|
390
387
|
)
|
|
391
388
|
it.putMap(
|
|
392
389
|
"threeDSecureUsage",
|
|
393
|
-
|
|
390
|
+
Arguments.createMap().also { threeDSecureUsageMap ->
|
|
394
391
|
threeDSecureUsageMap.putBoolean(
|
|
395
392
|
"isSupported",
|
|
396
393
|
paymentMethod.card?.threeDSecureUsage?.isSupported ?: false,
|
|
@@ -401,7 +398,7 @@ internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
|
401
398
|
)
|
|
402
399
|
pm.putMap(
|
|
403
400
|
"SepaDebit",
|
|
404
|
-
|
|
401
|
+
Arguments.createMap().also {
|
|
405
402
|
it.putString("bankCode", paymentMethod.sepaDebit?.bankCode)
|
|
406
403
|
it.putString("country", paymentMethod.sepaDebit?.country)
|
|
407
404
|
it.putString("fingerprint", paymentMethod.sepaDebit?.fingerprint)
|
|
@@ -410,7 +407,7 @@ internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
|
410
407
|
)
|
|
411
408
|
pm.putMap(
|
|
412
409
|
"BacsDebit",
|
|
413
|
-
|
|
410
|
+
Arguments.createMap().also {
|
|
414
411
|
it.putString("fingerprint", paymentMethod.bacsDebit?.fingerprint)
|
|
415
412
|
it.putString("last4", paymentMethod.bacsDebit?.last4)
|
|
416
413
|
it.putString("sortCode", paymentMethod.bacsDebit?.sortCode)
|
|
@@ -418,7 +415,7 @@ internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
|
418
415
|
)
|
|
419
416
|
pm.putMap(
|
|
420
417
|
"AuBecsDebit",
|
|
421
|
-
|
|
418
|
+
Arguments.createMap().also {
|
|
422
419
|
it.putString("bsbNumber", paymentMethod.bacsDebit?.sortCode)
|
|
423
420
|
it.putString("fingerprint", paymentMethod.bacsDebit?.fingerprint)
|
|
424
421
|
it.putString("last4", paymentMethod.bacsDebit?.last4)
|
|
@@ -426,22 +423,22 @@ internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
|
426
423
|
)
|
|
427
424
|
pm.putMap(
|
|
428
425
|
"Ideal",
|
|
429
|
-
|
|
426
|
+
Arguments.createMap().also {
|
|
430
427
|
it.putString("bankName", paymentMethod.ideal?.bank)
|
|
431
428
|
it.putString("bankIdentifierCode", paymentMethod.ideal?.bankIdentifierCode)
|
|
432
429
|
},
|
|
433
430
|
)
|
|
434
431
|
pm.putMap(
|
|
435
432
|
"Fpx",
|
|
436
|
-
|
|
433
|
+
Arguments.createMap().also {
|
|
437
434
|
it.putString("accountHolderType", paymentMethod.fpx?.accountHolderType)
|
|
438
435
|
it.putString("bank", paymentMethod.fpx?.bank)
|
|
439
436
|
},
|
|
440
437
|
)
|
|
441
|
-
pm.putMap("Upi",
|
|
438
|
+
pm.putMap("Upi", Arguments.createMap().also { it.putString("vpa", paymentMethod.upi?.vpa) })
|
|
442
439
|
pm.putMap(
|
|
443
440
|
"USBankAccount",
|
|
444
|
-
|
|
441
|
+
Arguments.createMap().also {
|
|
445
442
|
it.putString("routingNumber", paymentMethod.usBankAccount?.routingNumber)
|
|
446
443
|
it.putString(
|
|
447
444
|
"accountType",
|
|
@@ -467,7 +464,7 @@ internal fun mapFromPaymentMethod(paymentMethod: PaymentMethod): WritableMap {
|
|
|
467
464
|
}
|
|
468
465
|
|
|
469
466
|
internal fun mapFromPaymentIntentResult(paymentIntent: PaymentIntent): WritableMap {
|
|
470
|
-
val map: WritableMap =
|
|
467
|
+
val map: WritableMap = Arguments.createMap()
|
|
471
468
|
map.putString("id", paymentIntent.id)
|
|
472
469
|
map.putString("clientSecret", paymentIntent.clientSecret)
|
|
473
470
|
map.putBoolean("livemode", paymentIntent.isLiveMode)
|
|
@@ -494,7 +491,7 @@ internal fun mapFromPaymentIntentResult(paymentIntent: PaymentIntent): WritableM
|
|
|
494
491
|
map.putNull("canceledAt")
|
|
495
492
|
|
|
496
493
|
paymentIntent.lastPaymentError?.let {
|
|
497
|
-
val paymentError: WritableMap =
|
|
494
|
+
val paymentError: WritableMap = Arguments.createMap()
|
|
498
495
|
paymentError.putString("code", it.code)
|
|
499
496
|
paymentError.putString("message", it.message)
|
|
500
497
|
paymentError.putString("type", mapFromPaymentIntentLastErrorType(it.type))
|
|
@@ -525,8 +522,8 @@ internal fun mapFromMicrodepositType(type: MicrodepositType): String =
|
|
|
525
522
|
internal fun mapNextAction(
|
|
526
523
|
type: NextActionType?,
|
|
527
524
|
data: NextActionData?,
|
|
528
|
-
):
|
|
529
|
-
val nextActionMap =
|
|
525
|
+
): WritableMap? {
|
|
526
|
+
val nextActionMap = Arguments.createMap()
|
|
530
527
|
when (type) {
|
|
531
528
|
NextActionType.RedirectToUrl -> {
|
|
532
529
|
(data as? NextActionData.RedirectToUrl)?.let {
|
|
@@ -593,6 +590,12 @@ internal fun mapNextAction(
|
|
|
593
590
|
nextActionMap.putString("voucherURL", it.hostedVoucherUrl)
|
|
594
591
|
}
|
|
595
592
|
}
|
|
593
|
+
NextActionType.DisplayPayNowDetails -> {
|
|
594
|
+
(data as? NextActionData.DisplayPayNowDetails)?.let {
|
|
595
|
+
nextActionMap.putString("type", "paynow")
|
|
596
|
+
nextActionMap.putString("qrCodeUrl", it.qrCodeUrl)
|
|
597
|
+
}
|
|
598
|
+
}
|
|
596
599
|
}
|
|
597
600
|
return nextActionMap
|
|
598
601
|
}
|
|
@@ -658,6 +661,21 @@ internal fun mapToAddress(
|
|
|
658
661
|
return address.build()
|
|
659
662
|
}
|
|
660
663
|
|
|
664
|
+
internal fun mapToPaymentSheetAddress(addressMap: ReadableMap?): PaymentSheet.Address? {
|
|
665
|
+
if (addressMap == null) {
|
|
666
|
+
return null
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
return PaymentSheet.Address(
|
|
670
|
+
city = addressMap.getString("city"),
|
|
671
|
+
country = addressMap.getString("country"),
|
|
672
|
+
line1 = addressMap.getString("line1"),
|
|
673
|
+
line2 = addressMap.getString("line2"),
|
|
674
|
+
postalCode = addressMap.getString("postalCode"),
|
|
675
|
+
state = addressMap.getString("state"),
|
|
676
|
+
)
|
|
677
|
+
}
|
|
678
|
+
|
|
661
679
|
internal fun mapToBillingDetails(
|
|
662
680
|
billingDetails: ReadableMap?,
|
|
663
681
|
cardAddress: Address?,
|
|
@@ -665,7 +683,7 @@ internal fun mapToBillingDetails(
|
|
|
665
683
|
if (billingDetails == null && cardAddress == null) {
|
|
666
684
|
return null
|
|
667
685
|
}
|
|
668
|
-
val address = mapToAddress(
|
|
686
|
+
val address = mapToAddress(billingDetails?.getMap("address"), cardAddress)
|
|
669
687
|
val paymentMethodBillingDetailsBuilder = PaymentMethod.BillingDetails.Builder()
|
|
670
688
|
|
|
671
689
|
if (billingDetails != null) {
|
|
@@ -679,14 +697,17 @@ internal fun mapToBillingDetails(
|
|
|
679
697
|
return paymentMethodBillingDetailsBuilder.build()
|
|
680
698
|
}
|
|
681
699
|
|
|
682
|
-
internal fun mapToMetadata(metadata: ReadableMap?): Map<String, String>? =
|
|
700
|
+
internal fun mapToMetadata(metadata: ReadableMap?): Map<String, String>? =
|
|
701
|
+
metadata?.toHashMap()?.mapValues {
|
|
702
|
+
it.value.toString()
|
|
703
|
+
}
|
|
683
704
|
|
|
684
705
|
internal fun mapToShippingDetails(shippingDetails: ReadableMap?): ConfirmPaymentIntentParams.Shipping? {
|
|
685
706
|
if (shippingDetails == null) {
|
|
686
707
|
return null
|
|
687
708
|
}
|
|
688
709
|
|
|
689
|
-
val address = mapToAddress(
|
|
710
|
+
val address = mapToAddress(shippingDetails.getMap("address"), null)
|
|
690
711
|
|
|
691
712
|
return ConfirmPaymentIntentParams.Shipping(
|
|
692
713
|
name = getValOr(shippingDetails, "name") ?: "",
|
|
@@ -694,37 +715,17 @@ internal fun mapToShippingDetails(shippingDetails: ReadableMap?): ConfirmPayment
|
|
|
694
715
|
)
|
|
695
716
|
}
|
|
696
717
|
|
|
697
|
-
private fun getStringOrNull(
|
|
698
|
-
map: ReadableMap?,
|
|
699
|
-
key: String,
|
|
700
|
-
): String? = if (map?.hasKey(key) == true) map.getString(key) else null
|
|
701
|
-
|
|
702
|
-
fun getIntOrNull(
|
|
703
|
-
map: ReadableMap?,
|
|
704
|
-
key: String,
|
|
705
|
-
): Int? = if (map?.hasKey(key) == true) map.getInt(key) else null
|
|
706
|
-
|
|
707
|
-
fun getMapOrNull(
|
|
708
|
-
map: ReadableMap?,
|
|
709
|
-
key: String,
|
|
710
|
-
): ReadableMap? = if (map?.hasKey(key) == true) map.getMap(key) else null
|
|
711
|
-
|
|
712
|
-
fun getBooleanOrFalse(
|
|
713
|
-
map: ReadableMap?,
|
|
714
|
-
key: String,
|
|
715
|
-
): Boolean = if (map?.hasKey(key) == true) map.getBoolean(key) else false
|
|
716
|
-
|
|
717
718
|
private fun convertToUnixTimestamp(timestamp: Long): String = (timestamp * 1000).toString()
|
|
718
719
|
|
|
719
720
|
fun mapToUICustomization(params: ReadableMap): PaymentAuthConfig.Stripe3ds2UiCustomization {
|
|
720
|
-
val labelCustomization =
|
|
721
|
+
val labelCustomization = params.getMap("label")
|
|
721
722
|
val navigationBarCustomization = params.getMap("navigationBar")
|
|
722
|
-
val textBoxCustomization =
|
|
723
|
-
val submitButtonCustomization =
|
|
724
|
-
val cancelButtonCustomization =
|
|
725
|
-
val nextButtonCustomization =
|
|
726
|
-
val continueButtonCustomization =
|
|
727
|
-
val resendButtonCustomization =
|
|
723
|
+
val textBoxCustomization = params.getMap("textField")
|
|
724
|
+
val submitButtonCustomization = params.getMap("submitButton")
|
|
725
|
+
val cancelButtonCustomization = params.getMap("cancelButton")
|
|
726
|
+
val nextButtonCustomization = params.getMap("nextButton")
|
|
727
|
+
val continueButtonCustomization = params.getMap("continueButton")
|
|
728
|
+
val resendButtonCustomization = params.getMap("resendButton")
|
|
728
729
|
|
|
729
730
|
val labelCustomizationBuilder = PaymentAuthConfig.Stripe3ds2LabelCustomization.Builder()
|
|
730
731
|
val toolbarCustomizationBuilder = PaymentAuthConfig.Stripe3ds2ToolbarCustomization.Builder()
|
|
@@ -736,121 +737,121 @@ fun mapToUICustomization(params: ReadableMap): PaymentAuthConfig.Stripe3ds2UiCus
|
|
|
736
737
|
val continueButtonCustomizationBuilder = PaymentAuthConfig.Stripe3ds2ButtonCustomization.Builder()
|
|
737
738
|
val resendButtonCustomizationBuilder = PaymentAuthConfig.Stripe3ds2ButtonCustomization.Builder()
|
|
738
739
|
|
|
739
|
-
|
|
740
|
+
labelCustomization?.getString("headingTextColor")?.let {
|
|
740
741
|
labelCustomizationBuilder.setHeadingTextColor(it)
|
|
741
742
|
}
|
|
742
|
-
|
|
743
|
+
labelCustomization?.getString("textColor")?.let {
|
|
743
744
|
labelCustomizationBuilder.setTextColor(it)
|
|
744
745
|
}
|
|
745
|
-
getIntOrNull(
|
|
746
|
+
labelCustomization.getIntOrNull("headingFontSize")?.let {
|
|
746
747
|
labelCustomizationBuilder.setHeadingTextFontSize(it)
|
|
747
748
|
}
|
|
748
|
-
getIntOrNull(
|
|
749
|
+
labelCustomization.getIntOrNull("textFontSize")?.let {
|
|
749
750
|
labelCustomizationBuilder.setTextFontSize(it)
|
|
750
751
|
}
|
|
751
752
|
|
|
752
|
-
|
|
753
|
+
navigationBarCustomization?.getString("headerText")?.let {
|
|
753
754
|
toolbarCustomizationBuilder.setHeaderText(it)
|
|
754
755
|
}
|
|
755
|
-
|
|
756
|
+
navigationBarCustomization?.getString("buttonText")?.let {
|
|
756
757
|
toolbarCustomizationBuilder.setButtonText(it)
|
|
757
758
|
}
|
|
758
|
-
|
|
759
|
+
navigationBarCustomization?.getString("textColor")?.let {
|
|
759
760
|
toolbarCustomizationBuilder.setTextColor(it)
|
|
760
761
|
}
|
|
761
|
-
|
|
762
|
+
navigationBarCustomization?.getString("statusBarColor")?.let {
|
|
762
763
|
toolbarCustomizationBuilder.setStatusBarColor(it)
|
|
763
764
|
}
|
|
764
|
-
|
|
765
|
+
navigationBarCustomization?.getString("backgroundColor")?.let {
|
|
765
766
|
toolbarCustomizationBuilder.setBackgroundColor(it)
|
|
766
767
|
}
|
|
767
|
-
getIntOrNull(
|
|
768
|
+
navigationBarCustomization.getIntOrNull("textFontSize")?.let {
|
|
768
769
|
toolbarCustomizationBuilder.setTextFontSize(it)
|
|
769
770
|
}
|
|
770
771
|
|
|
771
|
-
|
|
772
|
+
textBoxCustomization?.getString("borderColor")?.let {
|
|
772
773
|
textBoxCustomizationBuilder.setBorderColor(it)
|
|
773
774
|
}
|
|
774
|
-
|
|
775
|
+
textBoxCustomization?.getString("textColor")?.let {
|
|
775
776
|
textBoxCustomizationBuilder.setTextColor(it)
|
|
776
777
|
}
|
|
777
|
-
getIntOrNull(
|
|
778
|
+
textBoxCustomization.getIntOrNull("borderWidth")?.let {
|
|
778
779
|
textBoxCustomizationBuilder.setBorderWidth(it)
|
|
779
780
|
}
|
|
780
|
-
getIntOrNull(
|
|
781
|
+
textBoxCustomization.getIntOrNull("borderRadius")?.let {
|
|
781
782
|
textBoxCustomizationBuilder.setCornerRadius(it)
|
|
782
783
|
}
|
|
783
|
-
getIntOrNull(
|
|
784
|
+
textBoxCustomization.getIntOrNull("textFontSize")?.let {
|
|
784
785
|
textBoxCustomizationBuilder.setTextFontSize(it)
|
|
785
786
|
}
|
|
786
787
|
|
|
787
788
|
// Submit button
|
|
788
|
-
|
|
789
|
+
submitButtonCustomization?.getString("backgroundColor")?.let {
|
|
789
790
|
submitButtonCustomizationBuilder.setBackgroundColor(it)
|
|
790
791
|
}
|
|
791
|
-
getIntOrNull(
|
|
792
|
+
submitButtonCustomization.getIntOrNull("borderRadius")?.let {
|
|
792
793
|
submitButtonCustomizationBuilder.setCornerRadius(it)
|
|
793
794
|
}
|
|
794
|
-
|
|
795
|
+
submitButtonCustomization?.getString("textColor")?.let {
|
|
795
796
|
submitButtonCustomizationBuilder.setTextColor(it)
|
|
796
797
|
}
|
|
797
|
-
getIntOrNull(
|
|
798
|
+
submitButtonCustomization.getIntOrNull("textFontSize")?.let {
|
|
798
799
|
submitButtonCustomizationBuilder.setTextFontSize(it)
|
|
799
800
|
}
|
|
800
801
|
|
|
801
802
|
// Cancel button
|
|
802
|
-
|
|
803
|
+
cancelButtonCustomization?.getString("backgroundColor")?.let {
|
|
803
804
|
cancelButtonCustomizationBuilder.setBackgroundColor(it)
|
|
804
805
|
}
|
|
805
|
-
getIntOrNull(
|
|
806
|
+
cancelButtonCustomization.getIntOrNull("borderRadius")?.let {
|
|
806
807
|
cancelButtonCustomizationBuilder.setCornerRadius(it)
|
|
807
808
|
}
|
|
808
|
-
|
|
809
|
+
cancelButtonCustomization?.getString("textColor")?.let {
|
|
809
810
|
cancelButtonCustomizationBuilder.setTextColor(it)
|
|
810
811
|
}
|
|
811
|
-
getIntOrNull(
|
|
812
|
+
cancelButtonCustomization.getIntOrNull("textFontSize")?.let {
|
|
812
813
|
cancelButtonCustomizationBuilder.setTextFontSize(it)
|
|
813
814
|
}
|
|
814
815
|
|
|
815
816
|
// Continue button
|
|
816
|
-
|
|
817
|
+
continueButtonCustomization?.getString("backgroundColor")?.let {
|
|
817
818
|
continueButtonCustomizationBuilder.setBackgroundColor(it)
|
|
818
819
|
}
|
|
819
|
-
getIntOrNull(
|
|
820
|
+
continueButtonCustomization.getIntOrNull("borderRadius")?.let {
|
|
820
821
|
continueButtonCustomizationBuilder.setCornerRadius(it)
|
|
821
822
|
}
|
|
822
|
-
|
|
823
|
+
continueButtonCustomization?.getString("textColor")?.let {
|
|
823
824
|
continueButtonCustomizationBuilder.setTextColor(it)
|
|
824
825
|
}
|
|
825
|
-
getIntOrNull(
|
|
826
|
+
continueButtonCustomization.getIntOrNull("textFontSize")?.let {
|
|
826
827
|
continueButtonCustomizationBuilder.setTextFontSize(it)
|
|
827
828
|
}
|
|
828
829
|
|
|
829
830
|
// Next button
|
|
830
|
-
|
|
831
|
+
nextButtonCustomization?.getString("backgroundColor")?.let {
|
|
831
832
|
nextButtonCustomizationBuilder.setBackgroundColor(it)
|
|
832
833
|
}
|
|
833
|
-
getIntOrNull(
|
|
834
|
+
nextButtonCustomization.getIntOrNull("borderRadius")?.let {
|
|
834
835
|
nextButtonCustomizationBuilder.setCornerRadius(it)
|
|
835
836
|
}
|
|
836
|
-
|
|
837
|
+
nextButtonCustomization?.getString("textColor")?.let {
|
|
837
838
|
nextButtonCustomizationBuilder.setTextColor(it)
|
|
838
839
|
}
|
|
839
|
-
getIntOrNull(
|
|
840
|
+
nextButtonCustomization.getIntOrNull("textFontSize")?.let {
|
|
840
841
|
nextButtonCustomizationBuilder.setTextFontSize(it)
|
|
841
842
|
}
|
|
842
843
|
|
|
843
844
|
// Resend button
|
|
844
|
-
|
|
845
|
+
resendButtonCustomization?.getString("backgroundColor")?.let {
|
|
845
846
|
resendButtonCustomizationBuilder.setBackgroundColor(it)
|
|
846
847
|
}
|
|
847
|
-
getIntOrNull(
|
|
848
|
+
resendButtonCustomization.getIntOrNull("borderRadius")?.let {
|
|
848
849
|
resendButtonCustomizationBuilder.setCornerRadius(it)
|
|
849
850
|
}
|
|
850
|
-
|
|
851
|
+
resendButtonCustomization?.getString("textColor")?.let {
|
|
851
852
|
resendButtonCustomizationBuilder.setTextColor(it)
|
|
852
853
|
}
|
|
853
|
-
getIntOrNull(
|
|
854
|
+
resendButtonCustomization.getIntOrNull("textFontSize")?.let {
|
|
854
855
|
resendButtonCustomizationBuilder.setTextFontSize(it)
|
|
855
856
|
}
|
|
856
857
|
|
|
@@ -876,13 +877,13 @@ fun mapToUICustomization(params: ReadableMap): PaymentAuthConfig.Stripe3ds2UiCus
|
|
|
876
877
|
PaymentAuthConfig.Stripe3ds2UiCustomization.ButtonType.RESEND,
|
|
877
878
|
)
|
|
878
879
|
|
|
879
|
-
|
|
880
|
+
params.getString("accentColor")?.let { uiCustomization.setAccentColor(it) }
|
|
880
881
|
|
|
881
882
|
return uiCustomization.build()
|
|
882
883
|
}
|
|
883
884
|
|
|
884
885
|
internal fun mapFromSetupIntentResult(setupIntent: SetupIntent): WritableMap {
|
|
885
|
-
val map: WritableMap =
|
|
886
|
+
val map: WritableMap = Arguments.createMap()
|
|
886
887
|
val paymentMethodTypes: WritableArray = Arguments.createArray()
|
|
887
888
|
map.putString("id", setupIntent.id)
|
|
888
889
|
map.putString("status", mapIntentStatus(setupIntent.status))
|
|
@@ -899,7 +900,7 @@ internal fun mapFromSetupIntentResult(setupIntent: SetupIntent): WritableMap {
|
|
|
899
900
|
map.putMap("nextAction", mapNextAction(setupIntent.nextActionType, setupIntent.nextActionData))
|
|
900
901
|
|
|
901
902
|
setupIntent.lastSetupError?.let {
|
|
902
|
-
val setupError: WritableMap =
|
|
903
|
+
val setupError: WritableMap = Arguments.createMap()
|
|
903
904
|
setupError.putString("code", it.code)
|
|
904
905
|
setupError.putString("message", it.message)
|
|
905
906
|
setupError.putString("type", mapFromSetupIntentLastErrorType(it.type))
|
|
@@ -936,79 +937,30 @@ fun mapToPaymentIntentFutureUsage(type: String?): ConfirmPaymentIntentParams.Set
|
|
|
936
937
|
else -> null
|
|
937
938
|
}
|
|
938
939
|
|
|
939
|
-
fun toBundleObject(readableMap: ReadableMap?): Bundle {
|
|
940
|
-
val result = Bundle()
|
|
941
|
-
if (readableMap == null) {
|
|
942
|
-
return result
|
|
943
|
-
}
|
|
944
|
-
val iterator = readableMap.keySetIterator()
|
|
945
|
-
while (iterator.hasNextKey()) {
|
|
946
|
-
val key = iterator.nextKey()
|
|
947
|
-
when (readableMap.getType(key)) {
|
|
948
|
-
ReadableType.Null -> result.putString(key, null)
|
|
949
|
-
ReadableType.Boolean -> result.putBoolean(key, readableMap.getBoolean(key))
|
|
950
|
-
ReadableType.Number ->
|
|
951
|
-
try {
|
|
952
|
-
val numAsInt = readableMap.getInt(key)
|
|
953
|
-
val numAsDouble = readableMap.getDouble(key)
|
|
954
|
-
if (numAsDouble - numAsInt != 0.0) {
|
|
955
|
-
result.putDouble(key, numAsDouble)
|
|
956
|
-
} else {
|
|
957
|
-
result.putInt(key, numAsInt)
|
|
958
|
-
}
|
|
959
|
-
} catch (e: Exception) {
|
|
960
|
-
Log.e("toBundleException", "Failed to add number to bundle. Failed on: $key.")
|
|
961
|
-
}
|
|
962
|
-
ReadableType.String -> result.putString(key, readableMap.getString(key))
|
|
963
|
-
ReadableType.Map -> result.putBundle(key, toBundleObject(readableMap.getMap(key)))
|
|
964
|
-
ReadableType.Array -> {
|
|
965
|
-
val list = readableMap.getArray(key)?.toArrayList()
|
|
966
|
-
if (list == null) {
|
|
967
|
-
result.putString(key, null)
|
|
968
|
-
} else if (list.isEmpty()) {
|
|
969
|
-
result.putStringArrayList(key, ArrayList())
|
|
970
|
-
} else {
|
|
971
|
-
when (list.first()) {
|
|
972
|
-
is String -> result.putStringArrayList(key, list as java.util.ArrayList<String>)
|
|
973
|
-
is Int -> result.putIntegerArrayList(key, list as java.util.ArrayList<Int>)
|
|
974
|
-
else ->
|
|
975
|
-
Log.e(
|
|
976
|
-
"toBundleException",
|
|
977
|
-
"Cannot put arrays of objects into bundles. Failed on: $key.",
|
|
978
|
-
)
|
|
979
|
-
}
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
else -> Log.e("toBundleException", "Could not convert object with key: $key.")
|
|
983
|
-
}
|
|
984
|
-
}
|
|
985
|
-
return result
|
|
986
|
-
}
|
|
987
|
-
|
|
988
940
|
internal fun mapFromShippingContact(googlePayResult: GooglePayResult): WritableMap {
|
|
989
|
-
val map =
|
|
941
|
+
val map = Arguments.createMap()
|
|
990
942
|
map.putString("emailAddress", googlePayResult.email)
|
|
991
|
-
val name =
|
|
943
|
+
val name = Arguments.createMap()
|
|
992
944
|
googlePayResult.name
|
|
993
945
|
name.putString("givenName", googlePayResult.shippingInformation?.name)
|
|
994
946
|
map.putMap("name", name)
|
|
995
947
|
googlePayResult.shippingInformation?.phone?.let { map.putString("phoneNumber", it) }
|
|
996
948
|
?: run { map.putString("phoneNumber", googlePayResult.phoneNumber) }
|
|
997
|
-
val postalAddress =
|
|
949
|
+
val postalAddress = Arguments.createMap()
|
|
998
950
|
postalAddress.putString("city", googlePayResult.shippingInformation?.address?.city)
|
|
999
951
|
postalAddress.putString("country", googlePayResult.shippingInformation?.address?.country)
|
|
1000
952
|
postalAddress.putString("postalCode", googlePayResult.shippingInformation?.address?.postalCode)
|
|
1001
953
|
postalAddress.putString("state", googlePayResult.shippingInformation?.address?.state)
|
|
1002
954
|
val line1: String? = googlePayResult.shippingInformation?.address?.line1
|
|
1003
955
|
val line2: String? = googlePayResult.shippingInformation?.address?.line2
|
|
1004
|
-
val street = (
|
|
956
|
+
val street = (line1 ?: "") + (if (line2 != null) "\n$line2" else "")
|
|
1005
957
|
postalAddress.putString("street", street)
|
|
1006
958
|
postalAddress.putString("isoCountryCode", googlePayResult.shippingInformation?.address?.country)
|
|
1007
959
|
map.putMap("postalAddress", postalAddress)
|
|
1008
960
|
return map
|
|
1009
961
|
}
|
|
1010
962
|
|
|
1011
|
-
internal fun mapToPreferredNetworks(networksAsInts:
|
|
963
|
+
internal fun mapToPreferredNetworks(networksAsInts: List<Int>?): List<CardBrand> {
|
|
1012
964
|
if (networksAsInts == null) {
|
|
1013
965
|
return emptyList()
|
|
1014
966
|
}
|
|
@@ -1048,6 +1000,7 @@ private fun List<Any?>.toWritableArray(): WritableArray {
|
|
|
1048
1000
|
val writableArray = Arguments.createArray()
|
|
1049
1001
|
|
|
1050
1002
|
forEach { value ->
|
|
1003
|
+
@Suppress("UNCHECKED_CAST")
|
|
1051
1004
|
when (value) {
|
|
1052
1005
|
null -> writableArray.pushNull()
|
|
1053
1006
|
is Boolean -> writableArray.pushBoolean(value)
|
|
@@ -1055,7 +1008,7 @@ private fun List<Any?>.toWritableArray(): WritableArray {
|
|
|
1055
1008
|
is Double -> writableArray.pushDouble(value)
|
|
1056
1009
|
is String -> writableArray.pushString(value)
|
|
1057
1010
|
is Map<*, *> -> writableArray.pushMap((value as Map<String, Any?>).toReadableMap())
|
|
1058
|
-
is List<*> -> writableArray.pushArray(
|
|
1011
|
+
is List<*> -> writableArray.pushArray(value.toWritableArray())
|
|
1059
1012
|
else -> writableArray.pushString(value.toString())
|
|
1060
1013
|
}
|
|
1061
1014
|
}
|
|
@@ -1067,6 +1020,7 @@ private fun Map<String, Any?>.toReadableMap(): ReadableMap {
|
|
|
1067
1020
|
val writableMap = Arguments.createMap()
|
|
1068
1021
|
|
|
1069
1022
|
forEach { (key, value) ->
|
|
1023
|
+
@Suppress("UNCHECKED_CAST")
|
|
1070
1024
|
when (value) {
|
|
1071
1025
|
null -> writableMap.putNull(key)
|
|
1072
1026
|
is Boolean -> writableMap.putBoolean(key, value)
|
|
@@ -1074,7 +1028,7 @@ private fun Map<String, Any?>.toReadableMap(): ReadableMap {
|
|
|
1074
1028
|
is Double -> writableMap.putDouble(key, value)
|
|
1075
1029
|
is String -> writableMap.putString(key, value)
|
|
1076
1030
|
is Map<*, *> -> writableMap.putMap(key, (value as Map<String, Any?>).toReadableMap())
|
|
1077
|
-
is List<*> -> writableMap.putArray(key,
|
|
1031
|
+
is List<*> -> writableMap.putArray(key, value.toWritableArray())
|
|
1078
1032
|
else -> writableMap.putString(key, value.toString())
|
|
1079
1033
|
}
|
|
1080
1034
|
}
|
|
@@ -1084,34 +1038,31 @@ private fun Map<String, Any?>.toReadableMap(): ReadableMap {
|
|
|
1084
1038
|
|
|
1085
1039
|
@OptIn(ExperimentalCustomPaymentMethodsApi::class)
|
|
1086
1040
|
@SuppressLint("RestrictedApi")
|
|
1087
|
-
internal fun parseCustomPaymentMethods(customPaymentMethodConfig:
|
|
1041
|
+
internal fun parseCustomPaymentMethods(customPaymentMethodConfig: ReadableMap?): List<PaymentSheet.CustomPaymentMethod> {
|
|
1088
1042
|
if (customPaymentMethodConfig == null) {
|
|
1089
1043
|
return emptyList()
|
|
1090
1044
|
}
|
|
1091
1045
|
|
|
1092
|
-
val
|
|
1093
|
-
if (
|
|
1094
|
-
val
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
val
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
),
|
|
1109
|
-
)
|
|
1110
|
-
}
|
|
1046
|
+
val customPaymentMethods = customPaymentMethodConfig.getArray("customPaymentMethods")
|
|
1047
|
+
if (customPaymentMethods != null) {
|
|
1048
|
+
val result = mutableListOf<PaymentSheet.CustomPaymentMethod>()
|
|
1049
|
+
|
|
1050
|
+
customPaymentMethods.forEachMap { customPaymentMethodMap ->
|
|
1051
|
+
val id = customPaymentMethodMap.getString("id")
|
|
1052
|
+
if (id != null) {
|
|
1053
|
+
val subtitle = customPaymentMethodMap.getString("subtitle")
|
|
1054
|
+
val disableBillingDetailCollection = customPaymentMethodMap.getBooleanOr("disableBillingDetailCollection", false)
|
|
1055
|
+
result.add(
|
|
1056
|
+
PaymentSheet.CustomPaymentMethod(
|
|
1057
|
+
id = id,
|
|
1058
|
+
subtitle = subtitle,
|
|
1059
|
+
disableBillingDetailCollection = disableBillingDetailCollection,
|
|
1060
|
+
),
|
|
1061
|
+
)
|
|
1111
1062
|
}
|
|
1112
|
-
|
|
1113
|
-
return result
|
|
1114
1063
|
}
|
|
1064
|
+
|
|
1065
|
+
return result
|
|
1115
1066
|
}
|
|
1116
1067
|
|
|
1117
1068
|
return emptyList()
|
|
@@ -1122,10 +1073,10 @@ internal fun mapFromCustomPaymentMethod(
|
|
|
1122
1073
|
customPaymentMethod: PaymentSheet.CustomPaymentMethod,
|
|
1123
1074
|
billingDetails: PaymentMethod.BillingDetails,
|
|
1124
1075
|
): WritableMap =
|
|
1125
|
-
|
|
1076
|
+
Arguments.createMap().apply {
|
|
1126
1077
|
putMap(
|
|
1127
1078
|
"customPaymentMethod",
|
|
1128
|
-
|
|
1079
|
+
Arguments.createMap().apply {
|
|
1129
1080
|
putString("id", customPaymentMethod.id)
|
|
1130
1081
|
},
|
|
1131
1082
|
)
|
|
@@ -1134,7 +1085,7 @@ internal fun mapFromCustomPaymentMethod(
|
|
|
1134
1085
|
|
|
1135
1086
|
@SuppressLint("RestrictedApi")
|
|
1136
1087
|
internal fun mapFromConfirmationToken(confirmationToken: ConfirmationToken): WritableMap {
|
|
1137
|
-
val token: WritableMap =
|
|
1088
|
+
val token: WritableMap = Arguments.createMap()
|
|
1138
1089
|
|
|
1139
1090
|
token.putString("id", confirmationToken.id)
|
|
1140
1091
|
token.putDouble("created", confirmationToken.created.toDouble())
|
|
@@ -1147,7 +1098,7 @@ internal fun mapFromConfirmationToken(confirmationToken: ConfirmationToken): Wri
|
|
|
1147
1098
|
|
|
1148
1099
|
// PaymentMethodPreview
|
|
1149
1100
|
confirmationToken.paymentMethodPreview?.let { preview ->
|
|
1150
|
-
val paymentMethodPreview =
|
|
1101
|
+
val paymentMethodPreview = Arguments.createMap()
|
|
1151
1102
|
paymentMethodPreview.putString("type", mapPaymentMethodType(preview.type))
|
|
1152
1103
|
paymentMethodPreview.putMap("billingDetails", mapFromBillingDetails(preview.billingDetails))
|
|
1153
1104
|
paymentMethodPreview.putString("allowRedisplay", mapFromAllowRedisplay(preview.allowRedisplay))
|
|
@@ -1159,12 +1110,12 @@ internal fun mapFromConfirmationToken(confirmationToken: ConfirmationToken): Wri
|
|
|
1159
1110
|
|
|
1160
1111
|
// Shipping details
|
|
1161
1112
|
confirmationToken.shipping?.let { shippingDetails ->
|
|
1162
|
-
val shipping =
|
|
1113
|
+
val shipping = Arguments.createMap()
|
|
1163
1114
|
shipping.putString("name", shippingDetails.name)
|
|
1164
1115
|
shipping.putString("phone", shippingDetails.phone)
|
|
1165
1116
|
|
|
1166
1117
|
shippingDetails.address?.let { address ->
|
|
1167
|
-
val addressMap =
|
|
1118
|
+
val addressMap = Arguments.createMap()
|
|
1168
1119
|
addressMap.putString("city", address.city)
|
|
1169
1120
|
addressMap.putString("country", address.country)
|
|
1170
1121
|
addressMap.putString("line1", address.line1)
|
|
@@ -1173,7 +1124,7 @@ internal fun mapFromConfirmationToken(confirmationToken: ConfirmationToken): Wri
|
|
|
1173
1124
|
addressMap.putString("state", address.state)
|
|
1174
1125
|
shipping.putMap("address", addressMap)
|
|
1175
1126
|
} ?: run {
|
|
1176
|
-
shipping.putMap("address",
|
|
1127
|
+
shipping.putMap("address", Arguments.createMap())
|
|
1177
1128
|
}
|
|
1178
1129
|
|
|
1179
1130
|
token.putMap("shipping", shipping)
|
|
@@ -1201,3 +1152,45 @@ private fun mapFromAllowRedisplay(allowRedisplay: PaymentMethod.AllowRedisplay?)
|
|
|
1201
1152
|
PaymentMethod.AllowRedisplay.UNSPECIFIED -> "unspecified"
|
|
1202
1153
|
null -> null
|
|
1203
1154
|
}
|
|
1155
|
+
|
|
1156
|
+
fun readableMapOf(vararg pairs: Pair<String, Any?>): ReadableMap =
|
|
1157
|
+
Arguments.createMap().apply {
|
|
1158
|
+
for ((key, value) in pairs) {
|
|
1159
|
+
when (value) {
|
|
1160
|
+
null -> putNull(key)
|
|
1161
|
+
is String -> putString(key, value)
|
|
1162
|
+
is Boolean -> putBoolean(key, value)
|
|
1163
|
+
is Double -> putDouble(key, value)
|
|
1164
|
+
is Float -> putDouble(key, value.toDouble())
|
|
1165
|
+
is Int -> putInt(key, value)
|
|
1166
|
+
is Long -> putLong(key, value)
|
|
1167
|
+
is ReadableMap -> putMap(key, value)
|
|
1168
|
+
is ReadableArray -> putArray(key, value)
|
|
1169
|
+
else -> {
|
|
1170
|
+
val valueType = value.javaClass.canonicalName
|
|
1171
|
+
throw IllegalArgumentException("Illegal value type $valueType for key \"$key\"")
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
fun readableArrayOf(vararg elements: Any?): ReadableArray =
|
|
1178
|
+
Arguments.createArray().apply {
|
|
1179
|
+
for (element in elements) {
|
|
1180
|
+
when (element) {
|
|
1181
|
+
null -> pushNull()
|
|
1182
|
+
is String -> pushString(element)
|
|
1183
|
+
is Boolean -> pushBoolean(element)
|
|
1184
|
+
is Double -> pushDouble(element)
|
|
1185
|
+
is Float -> pushDouble(element.toDouble())
|
|
1186
|
+
is Int -> pushInt(element)
|
|
1187
|
+
is Long -> pushInt(element.toInt())
|
|
1188
|
+
is ReadableMap -> pushMap(element)
|
|
1189
|
+
is ReadableArray -> pushArray(element)
|
|
1190
|
+
else -> {
|
|
1191
|
+
val valueType = element.javaClass.canonicalName
|
|
1192
|
+
throw IllegalArgumentException("Illegal value type $valueType for array element")
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
}
|