react-native-iap 14.4.47 → 14.5.1-rc.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/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +76 -16
- package/ios/HybridRnIap.swift +17 -5
- package/ios/RnIapHelper.swift +8 -0
- package/ios/reactnativeiap.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/reactnativeiap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/lib/module/index.js +6 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +35 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/type-bridge.js +21 -1
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +71 -4
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +155 -10
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +13 -0
- package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +2 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +32 -4
- package/nitrogen/generated/android/c++/{JIapkitStore.hpp → JIapStore.hpp} +19 -13
- package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +64 -0
- package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +70 -3
- package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JNitroProduct.hpp +35 -5
- package/nitrogen/generated/android/c++/JNitroPurchase.hpp +13 -3
- package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +11 -3
- package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +2 -0
- package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +62 -0
- package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitResult.hpp +6 -6
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderError.hpp +62 -0
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderResult.hpp +24 -16
- package/nitrogen/generated/android/c++/JPurchase.hpp +2 -0
- package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +11 -1
- package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +7 -1
- package/nitrogen/generated/android/c++/JRequestPurchaseResult.hpp +2 -0
- package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +2 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{IapkitStore.kt → IapStore.kt} +7 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +30 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +9 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +9 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitResult.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderResult.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +8 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +5 -2
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +178 -26
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +24 -3
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +24 -3
- package/nitrogen/generated/ios/swift/{IapkitStore.swift → IapStore.swift} +14 -6
- package/nitrogen/generated/ios/swift/NitroDiscountAmountAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroDiscountDisplayInfoAndroid.swift +70 -0
- package/nitrogen/generated/ios/swift/NitroLimitedQuantityInfoAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +211 -2
- package/nitrogen/generated/ios/swift/NitroPreorderDetailsAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroProduct.swift +26 -7
- package/nitrogen/generated/ios/swift/NitroPurchase.swift +43 -2
- package/nitrogen/generated/ios/swift/NitroPurchaseRequest.swift +47 -1
- package/nitrogen/generated/ios/swift/NitroRentalDetailsAndroid.swift +65 -0
- package/nitrogen/generated/ios/swift/NitroValidTimeWindowAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithIapkitResult.swift +2 -2
- package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithProviderError.swift +65 -0
- package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithProviderResult.swift +55 -13
- package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +44 -3
- package/nitrogen/generated/ios/swift/PurchaseIOS.swift +13 -2
- package/nitrogen/generated/shared/c++/{IapkitStore.hpp → IapStore.hpp} +23 -15
- package/nitrogen/generated/shared/c++/NitroDiscountAmountAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroDiscountDisplayInfoAndroid.hpp +81 -0
- package/nitrogen/generated/shared/c++/NitroLimitedQuantityInfoAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +55 -3
- package/nitrogen/generated/shared/c++/NitroPreorderDetailsAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroProduct.hpp +6 -5
- package/nitrogen/generated/shared/c++/NitroPurchase.hpp +13 -2
- package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +10 -2
- package/nitrogen/generated/shared/c++/NitroRentalDetailsAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/NitroValidTimeWindowAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitResult.hpp +8 -8
- package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderError.hpp +80 -0
- package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderResult.hpp +13 -5
- package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +12 -1
- package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +8 -1
- package/openiap-versions.json +3 -3
- package/package.json +1 -1
- package/plugin/build/src/withIAP.d.ts +3 -0
- package/plugin/build/src/withIAP.js +81 -0
- package/plugin/build/tsconfig.tsbuildinfo +1 -0
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/src/index.ts +8 -5
- package/src/specs/RnIap.nitro.ts +79 -4
- package/src/types.ts +163 -11
- package/src/utils/type-bridge.ts +23 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNitroPreorderDetailsAndroid.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 "NitroPreorderDetailsAndroid.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::iap {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "NitroPreorderDetailsAndroid" and the the Kotlin data class "NitroPreorderDetailsAndroid".
|
|
21
|
+
*/
|
|
22
|
+
struct JNitroPreorderDetailsAndroid final: public jni::JavaClass<JNitroPreorderDetailsAndroid> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroPreorderDetailsAndroid;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NitroPreorderDetailsAndroid by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
NitroPreorderDetailsAndroid toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldPreorderPresaleEndTimeMillis = clazz->getField<jni::JString>("preorderPresaleEndTimeMillis");
|
|
35
|
+
jni::local_ref<jni::JString> preorderPresaleEndTimeMillis = this->getFieldValue(fieldPreorderPresaleEndTimeMillis);
|
|
36
|
+
static const auto fieldPreorderReleaseTimeMillis = clazz->getField<jni::JString>("preorderReleaseTimeMillis");
|
|
37
|
+
jni::local_ref<jni::JString> preorderReleaseTimeMillis = this->getFieldValue(fieldPreorderReleaseTimeMillis);
|
|
38
|
+
return NitroPreorderDetailsAndroid(
|
|
39
|
+
preorderPresaleEndTimeMillis->toStdString(),
|
|
40
|
+
preorderReleaseTimeMillis->toStdString()
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public:
|
|
45
|
+
/**
|
|
46
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
47
|
+
*/
|
|
48
|
+
[[maybe_unused]]
|
|
49
|
+
static jni::local_ref<JNitroPreorderDetailsAndroid::javaobject> fromCpp(const NitroPreorderDetailsAndroid& value) {
|
|
50
|
+
using JSignature = JNitroPreorderDetailsAndroid(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
|
|
51
|
+
static const auto clazz = javaClassStatic();
|
|
52
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
53
|
+
return create(
|
|
54
|
+
clazz,
|
|
55
|
+
jni::make_jstring(value.preorderPresaleEndTimeMillis),
|
|
56
|
+
jni::make_jstring(value.preorderReleaseTimeMillis)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::iap
|
|
@@ -12,12 +12,25 @@
|
|
|
12
12
|
|
|
13
13
|
#include "IapPlatform.hpp"
|
|
14
14
|
#include "JIapPlatform.hpp"
|
|
15
|
+
#include "JNitroDiscountAmountAndroid.hpp"
|
|
16
|
+
#include "JNitroDiscountDisplayInfoAndroid.hpp"
|
|
17
|
+
#include "JNitroLimitedQuantityInfoAndroid.hpp"
|
|
15
18
|
#include "JNitroOneTimePurchaseOfferDetail.hpp"
|
|
19
|
+
#include "JNitroPreorderDetailsAndroid.hpp"
|
|
20
|
+
#include "JNitroRentalDetailsAndroid.hpp"
|
|
21
|
+
#include "JNitroValidTimeWindowAndroid.hpp"
|
|
16
22
|
#include "JPaymentModeIOS.hpp"
|
|
23
|
+
#include "NitroDiscountAmountAndroid.hpp"
|
|
24
|
+
#include "NitroDiscountDisplayInfoAndroid.hpp"
|
|
25
|
+
#include "NitroLimitedQuantityInfoAndroid.hpp"
|
|
17
26
|
#include "NitroOneTimePurchaseOfferDetail.hpp"
|
|
27
|
+
#include "NitroPreorderDetailsAndroid.hpp"
|
|
28
|
+
#include "NitroRentalDetailsAndroid.hpp"
|
|
29
|
+
#include "NitroValidTimeWindowAndroid.hpp"
|
|
18
30
|
#include "PaymentModeIOS.hpp"
|
|
19
31
|
#include <optional>
|
|
20
32
|
#include <string>
|
|
33
|
+
#include <vector>
|
|
21
34
|
|
|
22
35
|
namespace margelo::nitro::iap {
|
|
23
36
|
|
|
@@ -96,8 +109,8 @@ namespace margelo::nitro::iap {
|
|
|
96
109
|
jni::local_ref<jni::JString> freeTrialPeriodAndroid = this->getFieldValue(fieldFreeTrialPeriodAndroid);
|
|
97
110
|
static const auto fieldSubscriptionOfferDetailsAndroid = clazz->getField<jni::JString>("subscriptionOfferDetailsAndroid");
|
|
98
111
|
jni::local_ref<jni::JString> subscriptionOfferDetailsAndroid = this->getFieldValue(fieldSubscriptionOfferDetailsAndroid);
|
|
99
|
-
static const auto fieldOneTimePurchaseOfferDetailsAndroid = clazz->getField<JNitroOneTimePurchaseOfferDetail
|
|
100
|
-
jni::local_ref<JNitroOneTimePurchaseOfferDetail
|
|
112
|
+
static const auto fieldOneTimePurchaseOfferDetailsAndroid = clazz->getField<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>>("oneTimePurchaseOfferDetailsAndroid");
|
|
113
|
+
jni::local_ref<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>> oneTimePurchaseOfferDetailsAndroid = this->getFieldValue(fieldOneTimePurchaseOfferDetailsAndroid);
|
|
101
114
|
return NitroProduct(
|
|
102
115
|
id->toStdString(),
|
|
103
116
|
title->toStdString(),
|
|
@@ -128,7 +141,16 @@ namespace margelo::nitro::iap {
|
|
|
128
141
|
subscriptionPeriodAndroid != nullptr ? std::make_optional(subscriptionPeriodAndroid->toStdString()) : std::nullopt,
|
|
129
142
|
freeTrialPeriodAndroid != nullptr ? std::make_optional(freeTrialPeriodAndroid->toStdString()) : std::nullopt,
|
|
130
143
|
subscriptionOfferDetailsAndroid != nullptr ? std::make_optional(subscriptionOfferDetailsAndroid->toStdString()) : std::nullopt,
|
|
131
|
-
oneTimePurchaseOfferDetailsAndroid != nullptr ? std::make_optional(
|
|
144
|
+
oneTimePurchaseOfferDetailsAndroid != nullptr ? std::make_optional([&]() {
|
|
145
|
+
size_t __size = oneTimePurchaseOfferDetailsAndroid->size();
|
|
146
|
+
std::vector<NitroOneTimePurchaseOfferDetail> __vector;
|
|
147
|
+
__vector.reserve(__size);
|
|
148
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
149
|
+
auto __element = oneTimePurchaseOfferDetailsAndroid->getElement(__i);
|
|
150
|
+
__vector.push_back(__element->toCpp());
|
|
151
|
+
}
|
|
152
|
+
return __vector;
|
|
153
|
+
}()) : std::nullopt
|
|
132
154
|
);
|
|
133
155
|
}
|
|
134
156
|
|
|
@@ -138,7 +160,7 @@ namespace margelo::nitro::iap {
|
|
|
138
160
|
*/
|
|
139
161
|
[[maybe_unused]]
|
|
140
162
|
static jni::local_ref<JNitroProduct::javaobject> fromCpp(const NitroProduct& value) {
|
|
141
|
-
using JSignature = JNitroProduct(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JIapPlatform>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JPaymentModeIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JNitroOneTimePurchaseOfferDetail
|
|
163
|
+
using JSignature = JNitroProduct(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JIapPlatform>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JPaymentModeIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>>);
|
|
142
164
|
static const auto clazz = javaClassStatic();
|
|
143
165
|
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
144
166
|
return create(
|
|
@@ -172,7 +194,15 @@ namespace margelo::nitro::iap {
|
|
|
172
194
|
value.subscriptionPeriodAndroid.has_value() ? jni::make_jstring(value.subscriptionPeriodAndroid.value()) : nullptr,
|
|
173
195
|
value.freeTrialPeriodAndroid.has_value() ? jni::make_jstring(value.freeTrialPeriodAndroid.value()) : nullptr,
|
|
174
196
|
value.subscriptionOfferDetailsAndroid.has_value() ? jni::make_jstring(value.subscriptionOfferDetailsAndroid.value()) : nullptr,
|
|
175
|
-
value.oneTimePurchaseOfferDetailsAndroid.has_value() ?
|
|
197
|
+
value.oneTimePurchaseOfferDetailsAndroid.has_value() ? [&]() {
|
|
198
|
+
size_t __size = value.oneTimePurchaseOfferDetailsAndroid.value().size();
|
|
199
|
+
jni::local_ref<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>> __array = jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>::newArray(__size);
|
|
200
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
201
|
+
const auto& __element = value.oneTimePurchaseOfferDetailsAndroid.value()[__i];
|
|
202
|
+
__array->setElement(__i, *JNitroOneTimePurchaseOfferDetail::fromCpp(__element));
|
|
203
|
+
}
|
|
204
|
+
return __array;
|
|
205
|
+
}() : nullptr
|
|
176
206
|
);
|
|
177
207
|
}
|
|
178
208
|
};
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
#include "NitroPurchase.hpp"
|
|
12
12
|
|
|
13
13
|
#include "IapPlatform.hpp"
|
|
14
|
+
#include "IapStore.hpp"
|
|
14
15
|
#include "JIapPlatform.hpp"
|
|
16
|
+
#include "JIapStore.hpp"
|
|
15
17
|
#include "JNitroRenewalInfoIOS.hpp"
|
|
16
18
|
#include "JPurchaseState.hpp"
|
|
17
19
|
#include "NitroRenewalInfoIOS.hpp"
|
|
@@ -48,6 +50,8 @@ namespace margelo::nitro::iap {
|
|
|
48
50
|
jni::local_ref<jni::JString> purchaseToken = this->getFieldValue(fieldPurchaseToken);
|
|
49
51
|
static const auto fieldPlatform = clazz->getField<JIapPlatform>("platform");
|
|
50
52
|
jni::local_ref<JIapPlatform> platform = this->getFieldValue(fieldPlatform);
|
|
53
|
+
static const auto fieldStore = clazz->getField<JIapStore>("store");
|
|
54
|
+
jni::local_ref<JIapStore> store = this->getFieldValue(fieldStore);
|
|
51
55
|
static const auto fieldQuantity = clazz->getField<double>("quantity");
|
|
52
56
|
double quantity = this->getFieldValue(fieldQuantity);
|
|
53
57
|
static const auto fieldPurchaseState = clazz->getField<JPurchaseState>("purchaseState");
|
|
@@ -118,12 +122,15 @@ namespace margelo::nitro::iap {
|
|
|
118
122
|
jni::local_ref<jni::JString> obfuscatedProfileIdAndroid = this->getFieldValue(fieldObfuscatedProfileIdAndroid);
|
|
119
123
|
static const auto fieldDeveloperPayloadAndroid = clazz->getField<jni::JString>("developerPayloadAndroid");
|
|
120
124
|
jni::local_ref<jni::JString> developerPayloadAndroid = this->getFieldValue(fieldDeveloperPayloadAndroid);
|
|
125
|
+
static const auto fieldIsSuspendedAndroid = clazz->getField<jni::JBoolean>("isSuspendedAndroid");
|
|
126
|
+
jni::local_ref<jni::JBoolean> isSuspendedAndroid = this->getFieldValue(fieldIsSuspendedAndroid);
|
|
121
127
|
return NitroPurchase(
|
|
122
128
|
id->toStdString(),
|
|
123
129
|
productId->toStdString(),
|
|
124
130
|
transactionDate,
|
|
125
131
|
purchaseToken != nullptr ? std::make_optional(purchaseToken->toStdString()) : std::nullopt,
|
|
126
132
|
platform->toCpp(),
|
|
133
|
+
store->toCpp(),
|
|
127
134
|
quantity,
|
|
128
135
|
purchaseState->toCpp(),
|
|
129
136
|
static_cast<bool>(isAutoRenewing),
|
|
@@ -158,7 +165,8 @@ namespace margelo::nitro::iap {
|
|
|
158
165
|
packageNameAndroid != nullptr ? std::make_optional(packageNameAndroid->toStdString()) : std::nullopt,
|
|
159
166
|
obfuscatedAccountIdAndroid != nullptr ? std::make_optional(obfuscatedAccountIdAndroid->toStdString()) : std::nullopt,
|
|
160
167
|
obfuscatedProfileIdAndroid != nullptr ? std::make_optional(obfuscatedProfileIdAndroid->toStdString()) : std::nullopt,
|
|
161
|
-
developerPayloadAndroid != nullptr ? std::make_optional(developerPayloadAndroid->toStdString()) : std::nullopt
|
|
168
|
+
developerPayloadAndroid != nullptr ? std::make_optional(developerPayloadAndroid->toStdString()) : std::nullopt,
|
|
169
|
+
isSuspendedAndroid != nullptr ? std::make_optional(static_cast<bool>(isSuspendedAndroid->value())) : std::nullopt
|
|
162
170
|
);
|
|
163
171
|
}
|
|
164
172
|
|
|
@@ -168,7 +176,7 @@ namespace margelo::nitro::iap {
|
|
|
168
176
|
*/
|
|
169
177
|
[[maybe_unused]]
|
|
170
178
|
static jni::local_ref<JNitroPurchase::javaobject> fromCpp(const NitroPurchase& value) {
|
|
171
|
-
using JSignature = JNitroPurchase(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, jni::alias_ref<JIapPlatform>, double, jni::alias_ref<JPurchaseState>, jboolean, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JNitroRenewalInfoIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
|
|
179
|
+
using JSignature = JNitroPurchase(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, jni::alias_ref<JIapPlatform>, jni::alias_ref<JIapStore>, double, jni::alias_ref<JPurchaseState>, jboolean, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JNitroRenewalInfoIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>);
|
|
172
180
|
static const auto clazz = javaClassStatic();
|
|
173
181
|
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
174
182
|
return create(
|
|
@@ -178,6 +186,7 @@ namespace margelo::nitro::iap {
|
|
|
178
186
|
value.transactionDate,
|
|
179
187
|
value.purchaseToken.has_value() ? jni::make_jstring(value.purchaseToken.value()) : nullptr,
|
|
180
188
|
JIapPlatform::fromCpp(value.platform),
|
|
189
|
+
JIapStore::fromCpp(value.store),
|
|
181
190
|
value.quantity,
|
|
182
191
|
JPurchaseState::fromCpp(value.purchaseState),
|
|
183
192
|
value.isAutoRenewing,
|
|
@@ -212,7 +221,8 @@ namespace margelo::nitro::iap {
|
|
|
212
221
|
value.packageNameAndroid.has_value() ? jni::make_jstring(value.packageNameAndroid.value()) : nullptr,
|
|
213
222
|
value.obfuscatedAccountIdAndroid.has_value() ? jni::make_jstring(value.obfuscatedAccountIdAndroid.value()) : nullptr,
|
|
214
223
|
value.obfuscatedProfileIdAndroid.has_value() ? jni::make_jstring(value.obfuscatedProfileIdAndroid.value()) : nullptr,
|
|
215
|
-
value.developerPayloadAndroid.has_value() ? jni::make_jstring(value.developerPayloadAndroid.value()) : nullptr
|
|
224
|
+
value.developerPayloadAndroid.has_value() ? jni::make_jstring(value.developerPayloadAndroid.value()) : nullptr,
|
|
225
|
+
value.isSuspendedAndroid.has_value() ? jni::JBoolean::valueOf(value.isSuspendedAndroid.value()) : nullptr
|
|
216
226
|
);
|
|
217
227
|
}
|
|
218
228
|
};
|
|
@@ -44,9 +44,15 @@ namespace margelo::nitro::iap {
|
|
|
44
44
|
jni::local_ref<JNitroRequestPurchaseIos> ios = this->getFieldValue(fieldIos);
|
|
45
45
|
static const auto fieldAndroid = clazz->getField<JNitroRequestPurchaseAndroid>("android");
|
|
46
46
|
jni::local_ref<JNitroRequestPurchaseAndroid> android = this->getFieldValue(fieldAndroid);
|
|
47
|
+
static const auto fieldApple = clazz->getField<JNitroRequestPurchaseIos>("apple");
|
|
48
|
+
jni::local_ref<JNitroRequestPurchaseIos> apple = this->getFieldValue(fieldApple);
|
|
49
|
+
static const auto fieldGoogle = clazz->getField<JNitroRequestPurchaseAndroid>("google");
|
|
50
|
+
jni::local_ref<JNitroRequestPurchaseAndroid> google = this->getFieldValue(fieldGoogle);
|
|
47
51
|
return NitroPurchaseRequest(
|
|
48
52
|
ios != nullptr ? std::make_optional(ios->toCpp()) : std::nullopt,
|
|
49
|
-
android != nullptr ? std::make_optional(android->toCpp()) : std::nullopt
|
|
53
|
+
android != nullptr ? std::make_optional(android->toCpp()) : std::nullopt,
|
|
54
|
+
apple != nullptr ? std::make_optional(apple->toCpp()) : std::nullopt,
|
|
55
|
+
google != nullptr ? std::make_optional(google->toCpp()) : std::nullopt
|
|
50
56
|
);
|
|
51
57
|
}
|
|
52
58
|
|
|
@@ -56,13 +62,15 @@ namespace margelo::nitro::iap {
|
|
|
56
62
|
*/
|
|
57
63
|
[[maybe_unused]]
|
|
58
64
|
static jni::local_ref<JNitroPurchaseRequest::javaobject> fromCpp(const NitroPurchaseRequest& value) {
|
|
59
|
-
using JSignature = JNitroPurchaseRequest(jni::alias_ref<JNitroRequestPurchaseIos>, jni::alias_ref<JNitroRequestPurchaseAndroid>);
|
|
65
|
+
using JSignature = JNitroPurchaseRequest(jni::alias_ref<JNitroRequestPurchaseIos>, jni::alias_ref<JNitroRequestPurchaseAndroid>, jni::alias_ref<JNitroRequestPurchaseIos>, jni::alias_ref<JNitroRequestPurchaseAndroid>);
|
|
60
66
|
static const auto clazz = javaClassStatic();
|
|
61
67
|
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
62
68
|
return create(
|
|
63
69
|
clazz,
|
|
64
70
|
value.ios.has_value() ? JNitroRequestPurchaseIos::fromCpp(value.ios.value()) : nullptr,
|
|
65
|
-
value.android.has_value() ? JNitroRequestPurchaseAndroid::fromCpp(value.android.value()) : nullptr
|
|
71
|
+
value.android.has_value() ? JNitroRequestPurchaseAndroid::fromCpp(value.android.value()) : nullptr,
|
|
72
|
+
value.apple.has_value() ? JNitroRequestPurchaseIos::fromCpp(value.apple.value()) : nullptr,
|
|
73
|
+
value.google.has_value() ? JNitroRequestPurchaseAndroid::fromCpp(value.google.value()) : nullptr
|
|
66
74
|
);
|
|
67
75
|
}
|
|
68
76
|
};
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
#include "NitroReceiptValidationResultIOS.hpp"
|
|
12
12
|
|
|
13
13
|
#include "IapPlatform.hpp"
|
|
14
|
+
#include "IapStore.hpp"
|
|
14
15
|
#include "JIapPlatform.hpp"
|
|
16
|
+
#include "JIapStore.hpp"
|
|
15
17
|
#include "JNitroPurchase.hpp"
|
|
16
18
|
#include "JNitroRenewalInfoIOS.hpp"
|
|
17
19
|
#include "JPurchaseState.hpp"
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNitroRentalDetailsAndroid.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 "NitroRentalDetailsAndroid.hpp"
|
|
12
|
+
|
|
13
|
+
#include <optional>
|
|
14
|
+
#include <string>
|
|
15
|
+
|
|
16
|
+
namespace margelo::nitro::iap {
|
|
17
|
+
|
|
18
|
+
using namespace facebook;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The C++ JNI bridge between the C++ struct "NitroRentalDetailsAndroid" and the the Kotlin data class "NitroRentalDetailsAndroid".
|
|
22
|
+
*/
|
|
23
|
+
struct JNitroRentalDetailsAndroid final: public jni::JavaClass<JNitroRentalDetailsAndroid> {
|
|
24
|
+
public:
|
|
25
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroRentalDetailsAndroid;";
|
|
26
|
+
|
|
27
|
+
public:
|
|
28
|
+
/**
|
|
29
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NitroRentalDetailsAndroid by copying all values to C++.
|
|
30
|
+
*/
|
|
31
|
+
[[maybe_unused]]
|
|
32
|
+
[[nodiscard]]
|
|
33
|
+
NitroRentalDetailsAndroid toCpp() const {
|
|
34
|
+
static const auto clazz = javaClassStatic();
|
|
35
|
+
static const auto fieldRentalExpirationPeriod = clazz->getField<jni::JString>("rentalExpirationPeriod");
|
|
36
|
+
jni::local_ref<jni::JString> rentalExpirationPeriod = this->getFieldValue(fieldRentalExpirationPeriod);
|
|
37
|
+
static const auto fieldRentalPeriod = clazz->getField<jni::JString>("rentalPeriod");
|
|
38
|
+
jni::local_ref<jni::JString> rentalPeriod = this->getFieldValue(fieldRentalPeriod);
|
|
39
|
+
return NitroRentalDetailsAndroid(
|
|
40
|
+
rentalExpirationPeriod != nullptr ? std::make_optional(rentalExpirationPeriod->toStdString()) : std::nullopt,
|
|
41
|
+
rentalPeriod->toStdString()
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
/**
|
|
47
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
48
|
+
*/
|
|
49
|
+
[[maybe_unused]]
|
|
50
|
+
static jni::local_ref<JNitroRentalDetailsAndroid::javaobject> fromCpp(const NitroRentalDetailsAndroid& value) {
|
|
51
|
+
using JSignature = JNitroRentalDetailsAndroid(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
|
|
52
|
+
static const auto clazz = javaClassStatic();
|
|
53
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
54
|
+
return create(
|
|
55
|
+
clazz,
|
|
56
|
+
value.rentalExpirationPeriod.has_value() ? jni::make_jstring(value.rentalExpirationPeriod.value()) : nullptr,
|
|
57
|
+
jni::make_jstring(value.rentalPeriod)
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
} // namespace margelo::nitro::iap
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNitroValidTimeWindowAndroid.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 "NitroValidTimeWindowAndroid.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::iap {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "NitroValidTimeWindowAndroid" and the the Kotlin data class "NitroValidTimeWindowAndroid".
|
|
21
|
+
*/
|
|
22
|
+
struct JNitroValidTimeWindowAndroid final: public jni::JavaClass<JNitroValidTimeWindowAndroid> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroValidTimeWindowAndroid;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NitroValidTimeWindowAndroid by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
NitroValidTimeWindowAndroid toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldEndTimeMillis = clazz->getField<jni::JString>("endTimeMillis");
|
|
35
|
+
jni::local_ref<jni::JString> endTimeMillis = this->getFieldValue(fieldEndTimeMillis);
|
|
36
|
+
static const auto fieldStartTimeMillis = clazz->getField<jni::JString>("startTimeMillis");
|
|
37
|
+
jni::local_ref<jni::JString> startTimeMillis = this->getFieldValue(fieldStartTimeMillis);
|
|
38
|
+
return NitroValidTimeWindowAndroid(
|
|
39
|
+
endTimeMillis->toStdString(),
|
|
40
|
+
startTimeMillis->toStdString()
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public:
|
|
45
|
+
/**
|
|
46
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
47
|
+
*/
|
|
48
|
+
[[maybe_unused]]
|
|
49
|
+
static jni::local_ref<JNitroValidTimeWindowAndroid::javaobject> fromCpp(const NitroValidTimeWindowAndroid& value) {
|
|
50
|
+
using JSignature = JNitroValidTimeWindowAndroid(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
|
|
51
|
+
static const auto clazz = javaClassStatic();
|
|
52
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
53
|
+
return create(
|
|
54
|
+
clazz,
|
|
55
|
+
jni::make_jstring(value.endTimeMillis),
|
|
56
|
+
jni::make_jstring(value.startTimeMillis)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::iap
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
#include <fbjni/fbjni.h>
|
|
11
11
|
#include "NitroVerifyPurchaseWithIapkitResult.hpp"
|
|
12
12
|
|
|
13
|
+
#include "IapStore.hpp"
|
|
13
14
|
#include "IapkitPurchaseState.hpp"
|
|
14
|
-
#include "
|
|
15
|
+
#include "JIapStore.hpp"
|
|
15
16
|
#include "JIapkitPurchaseState.hpp"
|
|
16
|
-
#include "JIapkitStore.hpp"
|
|
17
17
|
|
|
18
18
|
namespace margelo::nitro::iap {
|
|
19
19
|
|
|
@@ -38,8 +38,8 @@ namespace margelo::nitro::iap {
|
|
|
38
38
|
jboolean isValid = this->getFieldValue(fieldIsValid);
|
|
39
39
|
static const auto fieldState = clazz->getField<JIapkitPurchaseState>("state");
|
|
40
40
|
jni::local_ref<JIapkitPurchaseState> state = this->getFieldValue(fieldState);
|
|
41
|
-
static const auto fieldStore = clazz->getField<
|
|
42
|
-
jni::local_ref<
|
|
41
|
+
static const auto fieldStore = clazz->getField<JIapStore>("store");
|
|
42
|
+
jni::local_ref<JIapStore> store = this->getFieldValue(fieldStore);
|
|
43
43
|
return NitroVerifyPurchaseWithIapkitResult(
|
|
44
44
|
static_cast<bool>(isValid),
|
|
45
45
|
state->toCpp(),
|
|
@@ -53,14 +53,14 @@ namespace margelo::nitro::iap {
|
|
|
53
53
|
*/
|
|
54
54
|
[[maybe_unused]]
|
|
55
55
|
static jni::local_ref<JNitroVerifyPurchaseWithIapkitResult::javaobject> fromCpp(const NitroVerifyPurchaseWithIapkitResult& value) {
|
|
56
|
-
using JSignature = JNitroVerifyPurchaseWithIapkitResult(jboolean, jni::alias_ref<JIapkitPurchaseState>, jni::alias_ref<
|
|
56
|
+
using JSignature = JNitroVerifyPurchaseWithIapkitResult(jboolean, jni::alias_ref<JIapkitPurchaseState>, jni::alias_ref<JIapStore>);
|
|
57
57
|
static const auto clazz = javaClassStatic();
|
|
58
58
|
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
59
59
|
return create(
|
|
60
60
|
clazz,
|
|
61
61
|
value.isValid,
|
|
62
62
|
JIapkitPurchaseState::fromCpp(value.state),
|
|
63
|
-
|
|
63
|
+
JIapStore::fromCpp(value.store)
|
|
64
64
|
);
|
|
65
65
|
}
|
|
66
66
|
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JNitroVerifyPurchaseWithProviderError.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 "NitroVerifyPurchaseWithProviderError.hpp"
|
|
12
|
+
|
|
13
|
+
#include <optional>
|
|
14
|
+
#include <string>
|
|
15
|
+
|
|
16
|
+
namespace margelo::nitro::iap {
|
|
17
|
+
|
|
18
|
+
using namespace facebook;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The C++ JNI bridge between the C++ struct "NitroVerifyPurchaseWithProviderError" and the the Kotlin data class "NitroVerifyPurchaseWithProviderError".
|
|
22
|
+
*/
|
|
23
|
+
struct JNitroVerifyPurchaseWithProviderError final: public jni::JavaClass<JNitroVerifyPurchaseWithProviderError> {
|
|
24
|
+
public:
|
|
25
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError;";
|
|
26
|
+
|
|
27
|
+
public:
|
|
28
|
+
/**
|
|
29
|
+
* Convert this Java/Kotlin-based struct to the C++ struct NitroVerifyPurchaseWithProviderError by copying all values to C++.
|
|
30
|
+
*/
|
|
31
|
+
[[maybe_unused]]
|
|
32
|
+
[[nodiscard]]
|
|
33
|
+
NitroVerifyPurchaseWithProviderError toCpp() const {
|
|
34
|
+
static const auto clazz = javaClassStatic();
|
|
35
|
+
static const auto fieldCode = clazz->getField<jni::JString>("code");
|
|
36
|
+
jni::local_ref<jni::JString> code = this->getFieldValue(fieldCode);
|
|
37
|
+
static const auto fieldMessage = clazz->getField<jni::JString>("message");
|
|
38
|
+
jni::local_ref<jni::JString> message = this->getFieldValue(fieldMessage);
|
|
39
|
+
return NitroVerifyPurchaseWithProviderError(
|
|
40
|
+
code != nullptr ? std::make_optional(code->toStdString()) : std::nullopt,
|
|
41
|
+
message->toStdString()
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
/**
|
|
47
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
48
|
+
*/
|
|
49
|
+
[[maybe_unused]]
|
|
50
|
+
static jni::local_ref<JNitroVerifyPurchaseWithProviderError::javaobject> fromCpp(const NitroVerifyPurchaseWithProviderError& value) {
|
|
51
|
+
using JSignature = JNitroVerifyPurchaseWithProviderError(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
|
|
52
|
+
static const auto clazz = javaClassStatic();
|
|
53
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
54
|
+
return create(
|
|
55
|
+
clazz,
|
|
56
|
+
value.code.has_value() ? jni::make_jstring(value.code.value()) : nullptr,
|
|
57
|
+
jni::make_jstring(value.message)
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
} // namespace margelo::nitro::iap
|
|
@@ -10,14 +10,18 @@
|
|
|
10
10
|
#include <fbjni/fbjni.h>
|
|
11
11
|
#include "NitroVerifyPurchaseWithProviderResult.hpp"
|
|
12
12
|
|
|
13
|
+
#include "IapStore.hpp"
|
|
13
14
|
#include "IapkitPurchaseState.hpp"
|
|
14
|
-
#include "
|
|
15
|
+
#include "JIapStore.hpp"
|
|
15
16
|
#include "JIapkitPurchaseState.hpp"
|
|
16
|
-
#include "JIapkitStore.hpp"
|
|
17
17
|
#include "JNitroVerifyPurchaseWithIapkitResult.hpp"
|
|
18
|
+
#include "JNitroVerifyPurchaseWithProviderError.hpp"
|
|
18
19
|
#include "JPurchaseVerificationProvider.hpp"
|
|
19
20
|
#include "NitroVerifyPurchaseWithIapkitResult.hpp"
|
|
21
|
+
#include "NitroVerifyPurchaseWithProviderError.hpp"
|
|
20
22
|
#include "PurchaseVerificationProvider.hpp"
|
|
23
|
+
#include <optional>
|
|
24
|
+
#include <string>
|
|
21
25
|
#include <vector>
|
|
22
26
|
|
|
23
27
|
namespace margelo::nitro::iap {
|
|
@@ -39,21 +43,24 @@ namespace margelo::nitro::iap {
|
|
|
39
43
|
[[nodiscard]]
|
|
40
44
|
NitroVerifyPurchaseWithProviderResult toCpp() const {
|
|
41
45
|
static const auto clazz = javaClassStatic();
|
|
42
|
-
static const auto fieldIapkit = clazz->getField<
|
|
43
|
-
jni::local_ref<
|
|
46
|
+
static const auto fieldIapkit = clazz->getField<JNitroVerifyPurchaseWithIapkitResult>("iapkit");
|
|
47
|
+
jni::local_ref<JNitroVerifyPurchaseWithIapkitResult> iapkit = this->getFieldValue(fieldIapkit);
|
|
48
|
+
static const auto fieldErrors = clazz->getField<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>>("errors");
|
|
49
|
+
jni::local_ref<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>> errors = this->getFieldValue(fieldErrors);
|
|
44
50
|
static const auto fieldProvider = clazz->getField<JPurchaseVerificationProvider>("provider");
|
|
45
51
|
jni::local_ref<JPurchaseVerificationProvider> provider = this->getFieldValue(fieldProvider);
|
|
46
52
|
return NitroVerifyPurchaseWithProviderResult(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
iapkit != nullptr ? std::make_optional(iapkit->toCpp()) : std::nullopt,
|
|
54
|
+
errors != nullptr ? std::make_optional([&]() {
|
|
55
|
+
size_t __size = errors->size();
|
|
56
|
+
std::vector<NitroVerifyPurchaseWithProviderError> __vector;
|
|
50
57
|
__vector.reserve(__size);
|
|
51
58
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
52
|
-
auto __element =
|
|
59
|
+
auto __element = errors->getElement(__i);
|
|
53
60
|
__vector.push_back(__element->toCpp());
|
|
54
61
|
}
|
|
55
62
|
return __vector;
|
|
56
|
-
}(),
|
|
63
|
+
}()) : std::nullopt,
|
|
57
64
|
provider->toCpp()
|
|
58
65
|
);
|
|
59
66
|
}
|
|
@@ -64,20 +71,21 @@ namespace margelo::nitro::iap {
|
|
|
64
71
|
*/
|
|
65
72
|
[[maybe_unused]]
|
|
66
73
|
static jni::local_ref<JNitroVerifyPurchaseWithProviderResult::javaobject> fromCpp(const NitroVerifyPurchaseWithProviderResult& value) {
|
|
67
|
-
using JSignature = JNitroVerifyPurchaseWithProviderResult(jni::alias_ref<jni::JArrayClass<
|
|
74
|
+
using JSignature = JNitroVerifyPurchaseWithProviderResult(jni::alias_ref<JNitroVerifyPurchaseWithIapkitResult>, jni::alias_ref<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>>, jni::alias_ref<JPurchaseVerificationProvider>);
|
|
68
75
|
static const auto clazz = javaClassStatic();
|
|
69
76
|
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
70
77
|
return create(
|
|
71
78
|
clazz,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
value.iapkit.has_value() ? JNitroVerifyPurchaseWithIapkitResult::fromCpp(value.iapkit.value()) : nullptr,
|
|
80
|
+
value.errors.has_value() ? [&]() {
|
|
81
|
+
size_t __size = value.errors.value().size();
|
|
82
|
+
jni::local_ref<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>> __array = jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>::newArray(__size);
|
|
75
83
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
76
|
-
const auto& __element = value.
|
|
77
|
-
__array->setElement(__i, *
|
|
84
|
+
const auto& __element = value.errors.value()[__i];
|
|
85
|
+
__array->setElement(__i, *JNitroVerifyPurchaseWithProviderError::fromCpp(__element));
|
|
78
86
|
}
|
|
79
87
|
return __array;
|
|
80
|
-
}(),
|
|
88
|
+
}() : nullptr,
|
|
81
89
|
JPurchaseVerificationProvider::fromCpp(value.provider)
|
|
82
90
|
);
|
|
83
91
|
}
|