@gmisoftware/react-native-pay 0.0.4
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/NitroPay.podspec +31 -0
- package/README.md +455 -0
- package/android/CMakeLists.txt +29 -0
- package/android/build.gradle +144 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +8 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/pay/Constants.kt +49 -0
- package/android/src/main/java/com/margelo/nitro/pay/GooglePayButtonFactory.kt +95 -0
- package/android/src/main/java/com/margelo/nitro/pay/GooglePayRequestBuilder.kt +170 -0
- package/android/src/main/java/com/margelo/nitro/pay/HybridGooglePayButton.kt +146 -0
- package/android/src/main/java/com/margelo/nitro/pay/HybridPaymentHandler.kt +184 -0
- package/android/src/main/java/com/margelo/nitro/pay/NitroPayPackage.kt +26 -0
- package/android/src/main/java/com/margelo/nitro/pay/PaymentMapper.kt +89 -0
- package/app.plugin.js +1 -0
- package/ios/ApplePayButtonFactory.swift +53 -0
- package/ios/Bridge.h +8 -0
- package/ios/HybridApplePayButton.swift +60 -0
- package/ios/HybridPaymentHandler.swift +248 -0
- package/ios/PassKitTypeMapper.swift +192 -0
- package/lib/hooks/index.d.ts +7 -0
- package/lib/hooks/index.js +10 -0
- package/lib/hooks/usePaymentCheckout.d.ts +95 -0
- package/lib/hooks/usePaymentCheckout.js +183 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.js +29 -0
- package/lib/plugin/index.d.ts +4 -0
- package/lib/plugin/index.js +10 -0
- package/lib/plugin/type.d.ts +4 -0
- package/lib/plugin/type.js +2 -0
- package/lib/plugin/withApplePay.d.ts +4 -0
- package/lib/plugin/withApplePay.js +32 -0
- package/lib/plugin/withGooglePay.d.ts +4 -0
- package/lib/plugin/withGooglePay.js +24 -0
- package/lib/specs/ApplePayButton.nitro.d.ts +13 -0
- package/lib/specs/ApplePayButton.nitro.js +2 -0
- package/lib/specs/GooglePayButton.nitro.d.ts +14 -0
- package/lib/specs/GooglePayButton.nitro.js +2 -0
- package/lib/specs/PaymentHandler.nitro.d.ts +10 -0
- package/lib/specs/PaymentHandler.nitro.js +2 -0
- package/lib/types/Contact.d.ts +51 -0
- package/lib/types/Contact.js +6 -0
- package/lib/types/Payment.d.ts +67 -0
- package/lib/types/Payment.js +6 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +18 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/index.js +20 -0
- package/lib/utils/paymentHelpers.d.ts +144 -0
- package/lib/utils/paymentHelpers.js +190 -0
- package/nitro.json +30 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroPay+autolinking.cmake +87 -0
- package/nitrogen/generated/android/NitroPay+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroPayOnLoad.cpp +58 -0
- package/nitrogen/generated/android/NitroPayOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JCNContact.hpp +202 -0
- package/nitrogen/generated/android/c++/JCNContactType.hpp +59 -0
- package/nitrogen/generated/android/c++/JCNLabeledEmailAddress.hpp +62 -0
- package/nitrogen/generated/android/c++/JCNLabeledPhoneNumber.hpp +64 -0
- package/nitrogen/generated/android/c++/JCNLabeledPostalAddress.hpp +64 -0
- package/nitrogen/generated/android/c++/JCNPhoneNumber.hpp +57 -0
- package/nitrogen/generated/android/c++/JCNPostalAddress.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
- package/nitrogen/generated/android/c++/JGooglePayButtonTheme.hpp +59 -0
- package/nitrogen/generated/android/c++/JGooglePayButtonType.hpp +77 -0
- package/nitrogen/generated/android/c++/JGooglePayEnvironment.hpp +59 -0
- package/nitrogen/generated/android/c++/JHybridGooglePayButtonSpec.cpp +96 -0
- package/nitrogen/generated/android/c++/JHybridGooglePayButtonSpec.hpp +71 -0
- package/nitrogen/generated/android/c++/JHybridPaymentHandlerSpec.cpp +154 -0
- package/nitrogen/generated/android/c++/JHybridPaymentHandlerSpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JPKSecureElementPass.hpp +96 -0
- package/nitrogen/generated/android/c++/JPassActivationState.hpp +68 -0
- package/nitrogen/generated/android/c++/JPayServiceStatus.hpp +61 -0
- package/nitrogen/generated/android/c++/JPaymentItem.hpp +67 -0
- package/nitrogen/generated/android/c++/JPaymentItemType.hpp +59 -0
- package/nitrogen/generated/android/c++/JPaymentMethod.hpp +97 -0
- package/nitrogen/generated/android/c++/JPaymentMethodType.hpp +68 -0
- package/nitrogen/generated/android/c++/JPaymentNetwork.hpp +86 -0
- package/nitrogen/generated/android/c++/JPaymentRequest.hpp +181 -0
- package/nitrogen/generated/android/c++/JPaymentResult.hpp +97 -0
- package/nitrogen/generated/android/c++/JPaymentToken.hpp +91 -0
- package/nitrogen/generated/android/c++/views/JHybridGooglePayButtonStateUpdater.cpp +68 -0
- package/nitrogen/generated/android/c++/views/JHybridGooglePayButtonStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNContact.kt +96 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNContactType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNLabeledEmailAddress.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNLabeledPhoneNumber.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNLabeledPostalAddress.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNPhoneNumber.kt +36 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNPostalAddress.kt +51 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/GooglePayButtonTheme.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/GooglePayButtonType.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/GooglePayEnvironment.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/HybridGooglePayButtonSpec.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/HybridPaymentHandlerSpec.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/NitroPayOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PKSecureElementPass.kt +63 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PassActivationState.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PayServiceStatus.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentItem.kt +42 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentItemType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentMethod.kt +48 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentMethodType.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentNetwork.kt +30 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentRequest.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentResult.kt +45 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentToken.kt +42 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/views/HybridGooglePayButtonManager.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/views/HybridGooglePayButtonStateUpdater.kt +23 -0
- package/nitrogen/generated/ios/NitroPay+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroPay-Swift-Cxx-Bridge.cpp +73 -0
- package/nitrogen/generated/ios/NitroPay-Swift-Cxx-Bridge.hpp +415 -0
- package/nitrogen/generated/ios/NitroPay-Swift-Cxx-Umbrella.hpp +116 -0
- package/nitrogen/generated/ios/NitroPayAutolinking.mm +41 -0
- package/nitrogen/generated/ios/NitroPayAutolinking.swift +40 -0
- package/nitrogen/generated/ios/c++/HybridApplePayButtonSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridApplePayButtonSpecSwift.hpp +92 -0
- package/nitrogen/generated/ios/c++/HybridPaymentHandlerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridPaymentHandlerSpecSwift.hpp +148 -0
- package/nitrogen/generated/ios/c++/views/HybridApplePayButtonComponent.mm +106 -0
- package/nitrogen/generated/ios/swift/ApplePayButtonStyle.swift +44 -0
- package/nitrogen/generated/ios/swift/ApplePayButtonType.swift +84 -0
- package/nitrogen/generated/ios/swift/CNContact.swift +329 -0
- package/nitrogen/generated/ios/swift/CNContactType.swift +40 -0
- package/nitrogen/generated/ios/swift/CNLabeledEmailAddress.swift +65 -0
- package/nitrogen/generated/ios/swift/CNLabeledPhoneNumber.swift +65 -0
- package/nitrogen/generated/ios/swift/CNLabeledPostalAddress.swift +65 -0
- package/nitrogen/generated/ios/swift/CNPhoneNumber.swift +35 -0
- package/nitrogen/generated/ios/swift/CNPostalAddress.swift +204 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_PaymentResult.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/GooglePayEnvironment.swift +40 -0
- package/nitrogen/generated/ios/swift/HybridApplePayButtonSpec.swift +51 -0
- package/nitrogen/generated/ios/swift/HybridApplePayButtonSpec_cxx.swift +175 -0
- package/nitrogen/generated/ios/swift/HybridPaymentHandlerSpec.swift +52 -0
- package/nitrogen/generated/ios/swift/HybridPaymentHandlerSpec_cxx.swift +155 -0
- package/nitrogen/generated/ios/swift/PKSecureElementPass.swift +191 -0
- package/nitrogen/generated/ios/swift/PassActivationState.swift +52 -0
- package/nitrogen/generated/ios/swift/PayServiceStatus.swift +46 -0
- package/nitrogen/generated/ios/swift/PaymentItem.swift +57 -0
- package/nitrogen/generated/ios/swift/PaymentItemType.swift +40 -0
- package/nitrogen/generated/ios/swift/PaymentMethod.swift +134 -0
- package/nitrogen/generated/ios/swift/PaymentMethodType.swift +52 -0
- package/nitrogen/generated/ios/swift/PaymentNetwork.swift +76 -0
- package/nitrogen/generated/ios/swift/PaymentRequest.swift +341 -0
- package/nitrogen/generated/ios/swift/PaymentResult.swift +118 -0
- package/nitrogen/generated/ios/swift/PaymentToken.swift +57 -0
- package/nitrogen/generated/shared/c++/ApplePayButtonStyle.hpp +80 -0
- package/nitrogen/generated/shared/c++/ApplePayButtonType.hpp +120 -0
- package/nitrogen/generated/shared/c++/CNContact.hpp +168 -0
- package/nitrogen/generated/shared/c++/CNContactType.hpp +76 -0
- package/nitrogen/generated/shared/c++/CNLabeledEmailAddress.hpp +80 -0
- package/nitrogen/generated/shared/c++/CNLabeledPhoneNumber.hpp +82 -0
- package/nitrogen/generated/shared/c++/CNLabeledPostalAddress.hpp +82 -0
- package/nitrogen/generated/shared/c++/CNPhoneNumber.hpp +75 -0
- package/nitrogen/generated/shared/c++/CNPostalAddress.hpp +96 -0
- package/nitrogen/generated/shared/c++/GooglePayButtonTheme.hpp +76 -0
- package/nitrogen/generated/shared/c++/GooglePayButtonType.hpp +100 -0
- package/nitrogen/generated/shared/c++/GooglePayEnvironment.hpp +76 -0
- package/nitrogen/generated/shared/c++/HybridApplePayButtonSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridApplePayButtonSpec.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridGooglePayButtonSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridGooglePayButtonSpec.hpp +75 -0
- package/nitrogen/generated/shared/c++/HybridPaymentHandlerSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridPaymentHandlerSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/PKSecureElementPass.hpp +114 -0
- package/nitrogen/generated/shared/c++/PassActivationState.hpp +88 -0
- package/nitrogen/generated/shared/c++/PayServiceStatus.hpp +79 -0
- package/nitrogen/generated/shared/c++/PaymentItem.hpp +85 -0
- package/nitrogen/generated/shared/c++/PaymentItemType.hpp +76 -0
- package/nitrogen/generated/shared/c++/PaymentMethod.hpp +103 -0
- package/nitrogen/generated/shared/c++/PaymentMethodType.hpp +88 -0
- package/nitrogen/generated/shared/c++/PaymentNetwork.hpp +112 -0
- package/nitrogen/generated/shared/c++/PaymentRequest.hpp +130 -0
- package/nitrogen/generated/shared/c++/PaymentResult.hpp +90 -0
- package/nitrogen/generated/shared/c++/PaymentToken.hpp +85 -0
- package/nitrogen/generated/shared/c++/views/HybridApplePayButtonComponent.cpp +111 -0
- package/nitrogen/generated/shared/c++/views/HybridApplePayButtonComponent.hpp +111 -0
- package/nitrogen/generated/shared/c++/views/HybridGooglePayButtonComponent.cpp +123 -0
- package/nitrogen/generated/shared/c++/views/HybridGooglePayButtonComponent.hpp +112 -0
- package/nitrogen/generated/shared/json/ApplePayButtonConfig.json +12 -0
- package/nitrogen/generated/shared/json/GooglePayButtonConfig.json +13 -0
- package/package.json +116 -0
- package/react-native.config.js +16 -0
- package/src/hooks/index.ts +12 -0
- package/src/hooks/usePaymentCheckout.ts +281 -0
- package/src/index.ts +32 -0
- package/src/plugin/index.ts +17 -0
- package/src/plugin/type.ts +4 -0
- package/src/plugin/withApplePay.ts +44 -0
- package/src/plugin/withGooglePay.ts +41 -0
- package/src/specs/ApplePayButton.nitro.ts +37 -0
- package/src/specs/GooglePayButton.nitro.ts +34 -0
- package/src/specs/PaymentHandler.nitro.ts +13 -0
- package/src/types/Contact.ts +58 -0
- package/src/types/Payment.ts +104 -0
- package/src/types/index.ts +2 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/paymentHelpers.ts +215 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JGooglePayButtonTheme.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "GooglePayButtonTheme.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::pay {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "GooglePayButtonTheme" and the the Kotlin enum "GooglePayButtonTheme".
|
|
19
|
+
*/
|
|
20
|
+
struct JGooglePayButtonTheme final: public jni::JavaClass<JGooglePayButtonTheme> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/pay/GooglePayButtonTheme;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum GooglePayButtonTheme.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
GooglePayButtonTheme toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<GooglePayButtonTheme>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JGooglePayButtonTheme> fromCpp(GooglePayButtonTheme value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldDARK = clazz->getStaticField<JGooglePayButtonTheme>("DARK");
|
|
45
|
+
static const auto fieldLIGHT = clazz->getStaticField<JGooglePayButtonTheme>("LIGHT");
|
|
46
|
+
|
|
47
|
+
switch (value) {
|
|
48
|
+
case GooglePayButtonTheme::DARK:
|
|
49
|
+
return clazz->getStaticFieldValue(fieldDARK);
|
|
50
|
+
case GooglePayButtonTheme::LIGHT:
|
|
51
|
+
return clazz->getStaticFieldValue(fieldLIGHT);
|
|
52
|
+
default:
|
|
53
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
54
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
} // namespace margelo::nitro::pay
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JGooglePayButtonType.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "GooglePayButtonType.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::pay {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "GooglePayButtonType" and the the Kotlin enum "GooglePayButtonType".
|
|
19
|
+
*/
|
|
20
|
+
struct JGooglePayButtonType final: public jni::JavaClass<JGooglePayButtonType> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/pay/GooglePayButtonType;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum GooglePayButtonType.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
GooglePayButtonType toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<GooglePayButtonType>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JGooglePayButtonType> fromCpp(GooglePayButtonType value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldBUY = clazz->getStaticField<JGooglePayButtonType>("BUY");
|
|
45
|
+
static const auto fieldBOOK = clazz->getStaticField<JGooglePayButtonType>("BOOK");
|
|
46
|
+
static const auto fieldDONATE = clazz->getStaticField<JGooglePayButtonType>("DONATE");
|
|
47
|
+
static const auto fieldORDER = clazz->getStaticField<JGooglePayButtonType>("ORDER");
|
|
48
|
+
static const auto fieldCHECKOUT = clazz->getStaticField<JGooglePayButtonType>("CHECKOUT");
|
|
49
|
+
static const auto fieldPAY = clazz->getStaticField<JGooglePayButtonType>("PAY");
|
|
50
|
+
static const auto fieldSUBSCRIBE = clazz->getStaticField<JGooglePayButtonType>("SUBSCRIBE");
|
|
51
|
+
static const auto fieldPLAIN = clazz->getStaticField<JGooglePayButtonType>("PLAIN");
|
|
52
|
+
|
|
53
|
+
switch (value) {
|
|
54
|
+
case GooglePayButtonType::BUY:
|
|
55
|
+
return clazz->getStaticFieldValue(fieldBUY);
|
|
56
|
+
case GooglePayButtonType::BOOK:
|
|
57
|
+
return clazz->getStaticFieldValue(fieldBOOK);
|
|
58
|
+
case GooglePayButtonType::DONATE:
|
|
59
|
+
return clazz->getStaticFieldValue(fieldDONATE);
|
|
60
|
+
case GooglePayButtonType::ORDER:
|
|
61
|
+
return clazz->getStaticFieldValue(fieldORDER);
|
|
62
|
+
case GooglePayButtonType::CHECKOUT:
|
|
63
|
+
return clazz->getStaticFieldValue(fieldCHECKOUT);
|
|
64
|
+
case GooglePayButtonType::PAY:
|
|
65
|
+
return clazz->getStaticFieldValue(fieldPAY);
|
|
66
|
+
case GooglePayButtonType::SUBSCRIBE:
|
|
67
|
+
return clazz->getStaticFieldValue(fieldSUBSCRIBE);
|
|
68
|
+
case GooglePayButtonType::PLAIN:
|
|
69
|
+
return clazz->getStaticFieldValue(fieldPLAIN);
|
|
70
|
+
default:
|
|
71
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
72
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
} // namespace margelo::nitro::pay
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JGooglePayEnvironment.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "GooglePayEnvironment.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::pay {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "GooglePayEnvironment" and the the Kotlin enum "GooglePayEnvironment".
|
|
19
|
+
*/
|
|
20
|
+
struct JGooglePayEnvironment final: public jni::JavaClass<JGooglePayEnvironment> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/pay/GooglePayEnvironment;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum GooglePayEnvironment.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
GooglePayEnvironment toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<GooglePayEnvironment>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JGooglePayEnvironment> fromCpp(GooglePayEnvironment value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldTEST = clazz->getStaticField<JGooglePayEnvironment>("TEST");
|
|
45
|
+
static const auto fieldPRODUCTION = clazz->getStaticField<JGooglePayEnvironment>("PRODUCTION");
|
|
46
|
+
|
|
47
|
+
switch (value) {
|
|
48
|
+
case GooglePayEnvironment::TEST:
|
|
49
|
+
return clazz->getStaticFieldValue(fieldTEST);
|
|
50
|
+
case GooglePayEnvironment::PRODUCTION:
|
|
51
|
+
return clazz->getStaticFieldValue(fieldPRODUCTION);
|
|
52
|
+
default:
|
|
53
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
54
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
} // namespace margelo::nitro::pay
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridGooglePayButtonSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridGooglePayButtonSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `GooglePayButtonType` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::pay { enum class GooglePayButtonType; }
|
|
12
|
+
// Forward declaration of `GooglePayButtonTheme` to properly resolve imports.
|
|
13
|
+
namespace margelo::nitro::pay { enum class GooglePayButtonTheme; }
|
|
14
|
+
|
|
15
|
+
#include "GooglePayButtonType.hpp"
|
|
16
|
+
#include "JGooglePayButtonType.hpp"
|
|
17
|
+
#include "GooglePayButtonTheme.hpp"
|
|
18
|
+
#include "JGooglePayButtonTheme.hpp"
|
|
19
|
+
#include <optional>
|
|
20
|
+
#include <functional>
|
|
21
|
+
#include "JFunc_void.hpp"
|
|
22
|
+
|
|
23
|
+
namespace margelo::nitro::pay {
|
|
24
|
+
|
|
25
|
+
jni::local_ref<JHybridGooglePayButtonSpec::jhybriddata> JHybridGooglePayButtonSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
26
|
+
return makeCxxInstance(jThis);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void JHybridGooglePayButtonSpec::registerNatives() {
|
|
30
|
+
registerHybrid({
|
|
31
|
+
makeNativeMethod("initHybrid", JHybridGooglePayButtonSpec::initHybrid),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
size_t JHybridGooglePayButtonSpec::getExternalMemorySize() noexcept {
|
|
36
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
37
|
+
return method(_javaPart);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
void JHybridGooglePayButtonSpec::dispose() noexcept {
|
|
41
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
42
|
+
method(_javaPart);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Properties
|
|
46
|
+
GooglePayButtonType JHybridGooglePayButtonSpec::getButtonType() {
|
|
47
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JGooglePayButtonType>()>("getButtonType");
|
|
48
|
+
auto __result = method(_javaPart);
|
|
49
|
+
return __result->toCpp();
|
|
50
|
+
}
|
|
51
|
+
void JHybridGooglePayButtonSpec::setButtonType(GooglePayButtonType buttonType) {
|
|
52
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JGooglePayButtonType> /* buttonType */)>("setButtonType");
|
|
53
|
+
method(_javaPart, JGooglePayButtonType::fromCpp(buttonType));
|
|
54
|
+
}
|
|
55
|
+
GooglePayButtonTheme JHybridGooglePayButtonSpec::getTheme() {
|
|
56
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JGooglePayButtonTheme>()>("getTheme");
|
|
57
|
+
auto __result = method(_javaPart);
|
|
58
|
+
return __result->toCpp();
|
|
59
|
+
}
|
|
60
|
+
void JHybridGooglePayButtonSpec::setTheme(GooglePayButtonTheme theme) {
|
|
61
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JGooglePayButtonTheme> /* theme */)>("setTheme");
|
|
62
|
+
method(_javaPart, JGooglePayButtonTheme::fromCpp(theme));
|
|
63
|
+
}
|
|
64
|
+
std::optional<double> JHybridGooglePayButtonSpec::getRadius() {
|
|
65
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JDouble>()>("getRadius");
|
|
66
|
+
auto __result = method(_javaPart);
|
|
67
|
+
return __result != nullptr ? std::make_optional(__result->value()) : std::nullopt;
|
|
68
|
+
}
|
|
69
|
+
void JHybridGooglePayButtonSpec::setRadius(std::optional<double> radius) {
|
|
70
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JDouble> /* radius */)>("setRadius");
|
|
71
|
+
method(_javaPart, radius.has_value() ? jni::JDouble::valueOf(radius.value()) : nullptr);
|
|
72
|
+
}
|
|
73
|
+
std::optional<std::function<void()>> JHybridGooglePayButtonSpec::getOnPress() {
|
|
74
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnPress_cxx");
|
|
75
|
+
auto __result = method(_javaPart);
|
|
76
|
+
return __result != nullptr ? std::make_optional([&]() -> std::function<void()> {
|
|
77
|
+
if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
|
|
78
|
+
auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(__result);
|
|
79
|
+
return downcast->cthis()->getFunction();
|
|
80
|
+
} else {
|
|
81
|
+
auto __resultRef = jni::make_global(__result);
|
|
82
|
+
return [__resultRef]() -> void {
|
|
83
|
+
return __resultRef->invoke();
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}()) : std::nullopt;
|
|
87
|
+
}
|
|
88
|
+
void JHybridGooglePayButtonSpec::setOnPress(const std::optional<std::function<void()>>& onPress) {
|
|
89
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onPress */)>("setOnPress_cxx");
|
|
90
|
+
method(_javaPart, onPress.has_value() ? JFunc_void_cxx::fromCpp(onPress.value()) : nullptr);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Methods
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
} // namespace margelo::nitro::pay
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridGooglePayButtonSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridGooglePayButtonSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::pay {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridGooglePayButtonSpec: public jni::HybridClass<JHybridGooglePayButtonSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridGooglePayButtonSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/pay/HybridGooglePayButtonSpec;";
|
|
25
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
26
|
+
static void registerNatives();
|
|
27
|
+
|
|
28
|
+
protected:
|
|
29
|
+
// C++ constructor (called from Java via `initHybrid()`)
|
|
30
|
+
explicit JHybridGooglePayButtonSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridGooglePayButtonSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridGooglePayButtonSpec() override {
|
|
37
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public:
|
|
42
|
+
size_t getExternalMemorySize() noexcept override;
|
|
43
|
+
void dispose() noexcept override;
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
inline const jni::global_ref<JHybridGooglePayButtonSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
return _javaPart;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
// Properties
|
|
52
|
+
GooglePayButtonType getButtonType() override;
|
|
53
|
+
void setButtonType(GooglePayButtonType buttonType) override;
|
|
54
|
+
GooglePayButtonTheme getTheme() override;
|
|
55
|
+
void setTheme(GooglePayButtonTheme theme) override;
|
|
56
|
+
std::optional<double> getRadius() override;
|
|
57
|
+
void setRadius(std::optional<double> radius) override;
|
|
58
|
+
std::optional<std::function<void()>> getOnPress() override;
|
|
59
|
+
void setOnPress(const std::optional<std::function<void()>>& onPress) override;
|
|
60
|
+
|
|
61
|
+
public:
|
|
62
|
+
// Methods
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
private:
|
|
66
|
+
friend HybridBase;
|
|
67
|
+
using HybridBase::HybridBase;
|
|
68
|
+
jni::global_ref<JHybridGooglePayButtonSpec::javaobject> _javaPart;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
} // namespace margelo::nitro::pay
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridPaymentHandlerSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridPaymentHandlerSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `PayServiceStatus` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::pay { struct PayServiceStatus; }
|
|
12
|
+
// Forward declaration of `PaymentResult` to properly resolve imports.
|
|
13
|
+
namespace margelo::nitro::pay { struct PaymentResult; }
|
|
14
|
+
// Forward declaration of `PaymentToken` to properly resolve imports.
|
|
15
|
+
namespace margelo::nitro::pay { struct PaymentToken; }
|
|
16
|
+
// Forward declaration of `PaymentMethod` to properly resolve imports.
|
|
17
|
+
namespace margelo::nitro::pay { struct PaymentMethod; }
|
|
18
|
+
// Forward declaration of `PaymentNetwork` to properly resolve imports.
|
|
19
|
+
namespace margelo::nitro::pay { enum class PaymentNetwork; }
|
|
20
|
+
// Forward declaration of `PaymentMethodType` to properly resolve imports.
|
|
21
|
+
namespace margelo::nitro::pay { enum class PaymentMethodType; }
|
|
22
|
+
// Forward declaration of `PKSecureElementPass` to properly resolve imports.
|
|
23
|
+
namespace margelo::nitro::pay { struct PKSecureElementPass; }
|
|
24
|
+
// Forward declaration of `PassActivationState` to properly resolve imports.
|
|
25
|
+
namespace margelo::nitro::pay { enum class PassActivationState; }
|
|
26
|
+
// Forward declaration of `CNContact` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::pay { struct CNContact; }
|
|
28
|
+
// Forward declaration of `CNContactType` to properly resolve imports.
|
|
29
|
+
namespace margelo::nitro::pay { enum class CNContactType; }
|
|
30
|
+
// Forward declaration of `CNLabeledPhoneNumber` to properly resolve imports.
|
|
31
|
+
namespace margelo::nitro::pay { struct CNLabeledPhoneNumber; }
|
|
32
|
+
// Forward declaration of `CNPhoneNumber` to properly resolve imports.
|
|
33
|
+
namespace margelo::nitro::pay { struct CNPhoneNumber; }
|
|
34
|
+
// Forward declaration of `CNLabeledEmailAddress` to properly resolve imports.
|
|
35
|
+
namespace margelo::nitro::pay { struct CNLabeledEmailAddress; }
|
|
36
|
+
// Forward declaration of `CNLabeledPostalAddress` to properly resolve imports.
|
|
37
|
+
namespace margelo::nitro::pay { struct CNLabeledPostalAddress; }
|
|
38
|
+
// Forward declaration of `CNPostalAddress` to properly resolve imports.
|
|
39
|
+
namespace margelo::nitro::pay { struct CNPostalAddress; }
|
|
40
|
+
// Forward declaration of `PaymentRequest` to properly resolve imports.
|
|
41
|
+
namespace margelo::nitro::pay { struct PaymentRequest; }
|
|
42
|
+
// Forward declaration of `PaymentItem` to properly resolve imports.
|
|
43
|
+
namespace margelo::nitro::pay { struct PaymentItem; }
|
|
44
|
+
// Forward declaration of `PaymentItemType` to properly resolve imports.
|
|
45
|
+
namespace margelo::nitro::pay { enum class PaymentItemType; }
|
|
46
|
+
// Forward declaration of `GooglePayEnvironment` to properly resolve imports.
|
|
47
|
+
namespace margelo::nitro::pay { enum class GooglePayEnvironment; }
|
|
48
|
+
|
|
49
|
+
#include "PayServiceStatus.hpp"
|
|
50
|
+
#include "JPayServiceStatus.hpp"
|
|
51
|
+
#include "PaymentResult.hpp"
|
|
52
|
+
#include <NitroModules/Promise.hpp>
|
|
53
|
+
#include <NitroModules/JPromise.hpp>
|
|
54
|
+
#include "JPaymentResult.hpp"
|
|
55
|
+
#include <string>
|
|
56
|
+
#include <optional>
|
|
57
|
+
#include "PaymentToken.hpp"
|
|
58
|
+
#include "JPaymentToken.hpp"
|
|
59
|
+
#include "PaymentMethod.hpp"
|
|
60
|
+
#include "JPaymentMethod.hpp"
|
|
61
|
+
#include "PaymentNetwork.hpp"
|
|
62
|
+
#include "JPaymentNetwork.hpp"
|
|
63
|
+
#include "PaymentMethodType.hpp"
|
|
64
|
+
#include "JPaymentMethodType.hpp"
|
|
65
|
+
#include "PKSecureElementPass.hpp"
|
|
66
|
+
#include "JPKSecureElementPass.hpp"
|
|
67
|
+
#include "PassActivationState.hpp"
|
|
68
|
+
#include "JPassActivationState.hpp"
|
|
69
|
+
#include "CNContact.hpp"
|
|
70
|
+
#include "JCNContact.hpp"
|
|
71
|
+
#include "CNContactType.hpp"
|
|
72
|
+
#include "JCNContactType.hpp"
|
|
73
|
+
#include "CNLabeledPhoneNumber.hpp"
|
|
74
|
+
#include <vector>
|
|
75
|
+
#include "JCNLabeledPhoneNumber.hpp"
|
|
76
|
+
#include "CNPhoneNumber.hpp"
|
|
77
|
+
#include "JCNPhoneNumber.hpp"
|
|
78
|
+
#include "CNLabeledEmailAddress.hpp"
|
|
79
|
+
#include "JCNLabeledEmailAddress.hpp"
|
|
80
|
+
#include "CNLabeledPostalAddress.hpp"
|
|
81
|
+
#include "JCNLabeledPostalAddress.hpp"
|
|
82
|
+
#include "CNPostalAddress.hpp"
|
|
83
|
+
#include "JCNPostalAddress.hpp"
|
|
84
|
+
#include "PaymentRequest.hpp"
|
|
85
|
+
#include "JPaymentRequest.hpp"
|
|
86
|
+
#include "PaymentItem.hpp"
|
|
87
|
+
#include "JPaymentItem.hpp"
|
|
88
|
+
#include "PaymentItemType.hpp"
|
|
89
|
+
#include "JPaymentItemType.hpp"
|
|
90
|
+
#include "GooglePayEnvironment.hpp"
|
|
91
|
+
#include "JGooglePayEnvironment.hpp"
|
|
92
|
+
|
|
93
|
+
namespace margelo::nitro::pay {
|
|
94
|
+
|
|
95
|
+
jni::local_ref<JHybridPaymentHandlerSpec::jhybriddata> JHybridPaymentHandlerSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
96
|
+
return makeCxxInstance(jThis);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
void JHybridPaymentHandlerSpec::registerNatives() {
|
|
100
|
+
registerHybrid({
|
|
101
|
+
makeNativeMethod("initHybrid", JHybridPaymentHandlerSpec::initHybrid),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
size_t JHybridPaymentHandlerSpec::getExternalMemorySize() noexcept {
|
|
106
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
107
|
+
return method(_javaPart);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
void JHybridPaymentHandlerSpec::dispose() noexcept {
|
|
111
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
112
|
+
method(_javaPart);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Properties
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
// Methods
|
|
119
|
+
PayServiceStatus JHybridPaymentHandlerSpec::payServiceStatus() {
|
|
120
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPayServiceStatus>()>("payServiceStatus");
|
|
121
|
+
auto __result = method(_javaPart);
|
|
122
|
+
return __result->toCpp();
|
|
123
|
+
}
|
|
124
|
+
std::shared_ptr<Promise<PaymentResult>> JHybridPaymentHandlerSpec::startPayment(const PaymentRequest& request) {
|
|
125
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JPaymentRequest> /* request */)>("startPayment");
|
|
126
|
+
auto __result = method(_javaPart, JPaymentRequest::fromCpp(request));
|
|
127
|
+
return [&]() {
|
|
128
|
+
auto __promise = Promise<PaymentResult>::create();
|
|
129
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
130
|
+
auto __result = jni::static_ref_cast<JPaymentResult>(__boxedResult);
|
|
131
|
+
__promise->resolve(__result->toCpp());
|
|
132
|
+
});
|
|
133
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
134
|
+
jni::JniException __jniError(__throwable);
|
|
135
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
136
|
+
});
|
|
137
|
+
return __promise;
|
|
138
|
+
}();
|
|
139
|
+
}
|
|
140
|
+
bool JHybridPaymentHandlerSpec::canMakePayments(const std::vector<std::string>& usingNetworks) {
|
|
141
|
+
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JArrayClass<jni::JString>> /* usingNetworks */)>("canMakePayments");
|
|
142
|
+
auto __result = method(_javaPart, [&]() {
|
|
143
|
+
size_t __size = usingNetworks.size();
|
|
144
|
+
jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
|
|
145
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
146
|
+
const auto& __element = usingNetworks[__i];
|
|
147
|
+
__array->setElement(__i, *jni::make_jstring(__element));
|
|
148
|
+
}
|
|
149
|
+
return __array;
|
|
150
|
+
}());
|
|
151
|
+
return static_cast<bool>(__result);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
} // namespace margelo::nitro::pay
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridPaymentHandlerSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridPaymentHandlerSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::pay {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridPaymentHandlerSpec: public jni::HybridClass<JHybridPaymentHandlerSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridPaymentHandlerSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/pay/HybridPaymentHandlerSpec;";
|
|
25
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
26
|
+
static void registerNatives();
|
|
27
|
+
|
|
28
|
+
protected:
|
|
29
|
+
// C++ constructor (called from Java via `initHybrid()`)
|
|
30
|
+
explicit JHybridPaymentHandlerSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridPaymentHandlerSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridPaymentHandlerSpec() override {
|
|
37
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public:
|
|
42
|
+
size_t getExternalMemorySize() noexcept override;
|
|
43
|
+
void dispose() noexcept override;
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
inline const jni::global_ref<JHybridPaymentHandlerSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
return _javaPart;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
// Properties
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
public:
|
|
55
|
+
// Methods
|
|
56
|
+
PayServiceStatus payServiceStatus() override;
|
|
57
|
+
std::shared_ptr<Promise<PaymentResult>> startPayment(const PaymentRequest& request) override;
|
|
58
|
+
bool canMakePayments(const std::vector<std::string>& usingNetworks) override;
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
friend HybridBase;
|
|
62
|
+
using HybridBase::HybridBase;
|
|
63
|
+
jni::global_ref<JHybridPaymentHandlerSpec::javaobject> _javaPart;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
} // namespace margelo::nitro::pay
|