react-native-iap 14.4.26 → 14.4.28
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 +1 -1
- package/ios/RnIapHelper.swift +7 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/type-bridge.js +2 -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 +52 -8
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +1 -1
- 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++/JAndroidSubscriptionOfferInput.hpp +5 -1
- package/nitrogen/generated/android/c++/JExternalPurchaseLinkResultIOS.hpp +5 -1
- package/nitrogen/generated/android/c++/JExternalPurchaseNoticeResultIOS.hpp +5 -1
- package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +2 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +4 -0
- package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroActiveSubscription.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidOptions.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesIosOptions.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesOptions.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroDeepLinkOptionsAndroid.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroFinishTransactionAndroidParams.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroFinishTransactionIosParams.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroFinishTransactionParams.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroProduct.hpp +11 -5
- package/nitrogen/generated/android/c++/JNitroPurchase.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroPurchaseResult.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroReceiptValidationAndroidOptions.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroReceiptValidationResultAndroid.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroRenewalInfoIOS.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseIos.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroSubscriptionStatus.hpp +5 -1
- package/nitrogen/generated/android/c++/JPaymentModeIOS.hpp +65 -0
- package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +5 -1
- package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +5 -1
- package/nitrogen/generated/android/c++/JPurchaseOfferIOS.hpp +5 -1
- package/nitrogen/generated/android/c++/JRenewalInfoIOS.hpp +5 -1
- package/nitrogen/generated/android/c++/JUserChoiceBillingDetails.hpp +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AndroidSubscriptionOfferInput.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseLinkResultIOS.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseNoticeResultIOS.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroProduct.kt +0 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchase.kt +0 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchaseResult.kt +0 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_UserChoiceBillingDetails.kt +0 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +3 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +13 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroActiveSubscription.kt +52 -45
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidOptions.kt +13 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt +22 -15
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDeepLinkOptionsAndroid.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionAndroidParams.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionIosParams.kt +13 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionParams.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +19 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +102 -95
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +132 -125
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseResult.kt +25 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationAndroidOptions.kt +22 -15
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultAndroid.kt +66 -59
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultIOS.kt +22 -15
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRenewalInfoIOS.kt +43 -36
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +31 -24
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseIos.kt +25 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +28 -21
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionStatus.kt +19 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PaymentModeIOS.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Purchase.kt +18 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +69 -62
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +111 -104
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseOfferIOS.kt +19 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalInfoIOS.kt +43 -36
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RequestPurchaseResult.kt +23 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/UserChoiceBillingDetails.kt +16 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult.kt +18 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +18 -1
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +22 -22
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +26 -22
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +7 -4
- package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroProduct_.swift +1 -8
- package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroPurchase_.swift +1 -8
- package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +1 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +3 -16
- package/nitrogen/generated/ios/swift/NitroActiveSubscription.swift +17 -10
- package/nitrogen/generated/ios/swift/NitroAvailablePurchasesIosOptions.swift +32 -4
- package/nitrogen/generated/ios/swift/NitroAvailablePurchasesOptions.swift +2 -16
- package/nitrogen/generated/ios/swift/NitroFinishTransactionAndroidParams.swift +8 -1
- package/nitrogen/generated/ios/swift/NitroFinishTransactionParams.swift +2 -16
- package/nitrogen/generated/ios/swift/NitroProduct.swift +14 -33
- package/nitrogen/generated/ios/swift/NitroPurchase.swift +25 -11
- package/nitrogen/generated/ios/swift/NitroPurchaseRequest.swift +2 -16
- package/nitrogen/generated/ios/swift/NitroReceiptValidationAndroidOptions.swift +8 -1
- package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +1 -8
- package/nitrogen/generated/ios/swift/NitroReceiptValidationResultIOS.swift +1 -8
- package/nitrogen/generated/ios/swift/NitroRenewalInfoIOS.swift +8 -1
- package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +8 -1
- package/nitrogen/generated/ios/swift/NitroRequestPurchaseIos.swift +8 -1
- package/nitrogen/generated/ios/swift/NitroSubscriptionStatus.swift +1 -8
- package/nitrogen/generated/ios/swift/PaymentModeIOS.swift +48 -0
- package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +16 -2
- package/nitrogen/generated/ios/swift/PurchaseIOS.swift +10 -17
- package/nitrogen/generated/ios/swift/RenewalInfoIOS.swift +8 -1
- package/nitrogen/generated/shared/c++/AndroidSubscriptionOfferInput.hpp +8 -0
- package/nitrogen/generated/shared/c++/ExternalPurchaseLinkResultIOS.hpp +8 -0
- package/nitrogen/generated/shared/c++/ExternalPurchaseNoticeResultIOS.hpp +8 -0
- package/nitrogen/generated/shared/c++/InitConnectionConfig.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroActiveSubscription.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroAvailablePurchasesAndroidOptions.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroAvailablePurchasesIosOptions.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroAvailablePurchasesOptions.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroDeepLinkOptionsAndroid.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroFinishTransactionAndroidParams.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroFinishTransactionIosParams.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroFinishTransactionParams.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroProduct.hpp +16 -5
- package/nitrogen/generated/shared/c++/NitroPurchase.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroReceiptValidationAndroidOptions.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroReceiptValidationResultAndroid.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroRenewalInfoIOS.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroRequestPurchaseIos.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +8 -0
- package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +8 -0
- package/nitrogen/generated/shared/c++/PaymentModeIOS.hpp +84 -0
- package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +8 -0
- package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +8 -0
- package/nitrogen/generated/shared/c++/PurchaseOfferIOS.hpp +8 -0
- package/nitrogen/generated/shared/c++/RenewalInfoIOS.hpp +8 -0
- package/nitrogen/generated/shared/c++/UserChoiceBillingDetails.hpp +8 -0
- package/openiap-versions.json +2 -2
- package/package.json +4 -4
- package/src/index.ts +18 -0
- package/src/specs/RnIap.nitro.ts +52 -7
- package/src/types.ts +1 -1
- package/src/utils/type-bridge.ts +2 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JPaymentModeIOS.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 "PaymentModeIOS.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::iap {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "PaymentModeIOS" and the the Kotlin enum "PaymentModeIOS".
|
|
19
|
+
*/
|
|
20
|
+
struct JPaymentModeIOS final: public jni::JavaClass<JPaymentModeIOS> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/PaymentModeIOS;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum PaymentModeIOS.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
PaymentModeIOS 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<PaymentModeIOS>(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<JPaymentModeIOS> fromCpp(PaymentModeIOS value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldEMPTY = clazz->getStaticField<JPaymentModeIOS>("EMPTY");
|
|
45
|
+
static const auto fieldFREE_TRIAL = clazz->getStaticField<JPaymentModeIOS>("FREE_TRIAL");
|
|
46
|
+
static const auto fieldPAY_AS_YOU_GO = clazz->getStaticField<JPaymentModeIOS>("PAY_AS_YOU_GO");
|
|
47
|
+
static const auto fieldPAY_UP_FRONT = clazz->getStaticField<JPaymentModeIOS>("PAY_UP_FRONT");
|
|
48
|
+
|
|
49
|
+
switch (value) {
|
|
50
|
+
case PaymentModeIOS::EMPTY:
|
|
51
|
+
return clazz->getStaticFieldValue(fieldEMPTY);
|
|
52
|
+
case PaymentModeIOS::FREE_TRIAL:
|
|
53
|
+
return clazz->getStaticFieldValue(fieldFREE_TRIAL);
|
|
54
|
+
case PaymentModeIOS::PAY_AS_YOU_GO:
|
|
55
|
+
return clazz->getStaticFieldValue(fieldPAY_AS_YOU_GO);
|
|
56
|
+
case PaymentModeIOS::PAY_UP_FRONT:
|
|
57
|
+
return clazz->getStaticFieldValue(fieldPAY_UP_FRONT);
|
|
58
|
+
default:
|
|
59
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
60
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::iap
|
|
@@ -113,7 +113,11 @@ namespace margelo::nitro::iap {
|
|
|
113
113
|
*/
|
|
114
114
|
[[maybe_unused]]
|
|
115
115
|
static jni::local_ref<JPurchaseAndroid::javaobject> fromCpp(const PurchaseAndroid& value) {
|
|
116
|
-
|
|
116
|
+
using JSignature = JPurchaseAndroid(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::JArrayClass<jni::JString>>, jni::alias_ref<jni::JBoolean>, jboolean, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JIapPlatform>, jni::alias_ref<jni::JString>, jni::alias_ref<JPurchaseState>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>);
|
|
117
|
+
static const auto clazz = javaClassStatic();
|
|
118
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
119
|
+
return create(
|
|
120
|
+
clazz,
|
|
117
121
|
value.autoRenewingAndroid.has_value() ? jni::JBoolean::valueOf(value.autoRenewingAndroid.value()) : nullptr,
|
|
118
122
|
value.currentPlanId.has_value() ? jni::make_jstring(value.currentPlanId.value()) : nullptr,
|
|
119
123
|
value.dataAndroid.has_value() ? jni::make_jstring(value.dataAndroid.value()) : nullptr,
|
|
@@ -159,7 +159,11 @@ namespace margelo::nitro::iap {
|
|
|
159
159
|
*/
|
|
160
160
|
[[maybe_unused]]
|
|
161
161
|
static jni::local_ref<JPurchaseIOS::javaobject> fromCpp(const PurchaseIOS& value) {
|
|
162
|
-
|
|
162
|
+
using JSignature = JPurchaseIOS(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::JString>, jni::alias_ref<jni::JArrayClass<jni::JString>>, jboolean, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JPurchaseOfferIOS>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JIapPlatform>, jni::alias_ref<jni::JString>, jni::alias_ref<JPurchaseState>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JRenewalInfoIOS>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
|
|
163
|
+
static const auto clazz = javaClassStatic();
|
|
164
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
165
|
+
return create(
|
|
166
|
+
clazz,
|
|
163
167
|
value.appAccountToken.has_value() ? jni::make_jstring(value.appAccountToken.value()) : nullptr,
|
|
164
168
|
value.appBundleIdIOS.has_value() ? jni::make_jstring(value.appBundleIdIOS.value()) : nullptr,
|
|
165
169
|
value.countryCodeIOS.has_value() ? jni::make_jstring(value.countryCodeIOS.value()) : nullptr,
|
|
@@ -50,7 +50,11 @@ namespace margelo::nitro::iap {
|
|
|
50
50
|
*/
|
|
51
51
|
[[maybe_unused]]
|
|
52
52
|
static jni::local_ref<JPurchaseOfferIOS::javaobject> fromCpp(const PurchaseOfferIOS& value) {
|
|
53
|
-
|
|
53
|
+
using JSignature = JPurchaseOfferIOS(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
|
|
54
|
+
static const auto clazz = javaClassStatic();
|
|
55
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
56
|
+
return create(
|
|
57
|
+
clazz,
|
|
54
58
|
jni::make_jstring(value.id),
|
|
55
59
|
jni::make_jstring(value.paymentMode),
|
|
56
60
|
jni::make_jstring(value.type)
|
|
@@ -75,7 +75,11 @@ namespace margelo::nitro::iap {
|
|
|
75
75
|
*/
|
|
76
76
|
[[maybe_unused]]
|
|
77
77
|
static jni::local_ref<JRenewalInfoIOS::javaobject> fromCpp(const RenewalInfoIOS& value) {
|
|
78
|
-
|
|
78
|
+
using JSignature = JRenewalInfoIOS(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::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jboolean);
|
|
79
|
+
static const auto clazz = javaClassStatic();
|
|
80
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
81
|
+
return create(
|
|
82
|
+
clazz,
|
|
79
83
|
value.autoRenewPreference.has_value() ? jni::make_jstring(value.autoRenewPreference.value()) : nullptr,
|
|
80
84
|
value.expirationReason.has_value() ? jni::make_jstring(value.expirationReason.value()) : nullptr,
|
|
81
85
|
value.gracePeriodExpirationDate.has_value() ? jni::JDouble::valueOf(value.gracePeriodExpirationDate.value()) : nullptr,
|
|
@@ -57,7 +57,11 @@ namespace margelo::nitro::iap {
|
|
|
57
57
|
*/
|
|
58
58
|
[[maybe_unused]]
|
|
59
59
|
static jni::local_ref<JUserChoiceBillingDetails::javaobject> fromCpp(const UserChoiceBillingDetails& value) {
|
|
60
|
-
|
|
60
|
+
using JSignature = JUserChoiceBillingDetails(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<jni::JString>>);
|
|
61
|
+
static const auto clazz = javaClassStatic();
|
|
62
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
63
|
+
return create(
|
|
64
|
+
clazz,
|
|
61
65
|
jni::make_jstring(value.externalTransactionToken),
|
|
62
66
|
[&]() {
|
|
63
67
|
size_t __size = value.products.size();
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AndroidSubscriptionOfferInput.kt
CHANGED
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,16 +16,24 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class AndroidSubscriptionOfferInput
|
|
19
|
+
data class AndroidSubscriptionOfferInput(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
val offerToken: String,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val sku: String
|
|
26
|
+
) {
|
|
27
|
+
private companion object {
|
|
28
|
+
/**
|
|
29
|
+
* Constructor called from C++
|
|
30
|
+
*/
|
|
27
31
|
@DoNotStrip
|
|
28
32
|
@Keep
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
@Suppress("unused")
|
|
34
|
+
@JvmStatic
|
|
35
|
+
private fun fromCpp(offerToken: String, sku: String): AndroidSubscriptionOfferInput {
|
|
36
|
+
return AndroidSubscriptionOfferInput(offerToken, sku)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
32
39
|
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseLinkResultIOS.kt
CHANGED
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,16 +16,24 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class ExternalPurchaseLinkResultIOS
|
|
19
|
+
data class ExternalPurchaseLinkResultIOS(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
val error: String?,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val success: Boolean
|
|
26
|
+
) {
|
|
27
|
+
private companion object {
|
|
28
|
+
/**
|
|
29
|
+
* Constructor called from C++
|
|
30
|
+
*/
|
|
27
31
|
@DoNotStrip
|
|
28
32
|
@Keep
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
@Suppress("unused")
|
|
34
|
+
@JvmStatic
|
|
35
|
+
private fun fromCpp(error: String?, success: Boolean): ExternalPurchaseLinkResultIOS {
|
|
36
|
+
return ExternalPurchaseLinkResultIOS(error, success)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
32
39
|
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseNoticeResultIOS.kt
CHANGED
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,16 +16,24 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class ExternalPurchaseNoticeResultIOS
|
|
19
|
+
data class ExternalPurchaseNoticeResultIOS(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
val error: String?,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val result: ExternalPurchaseNoticeAction
|
|
26
|
+
) {
|
|
27
|
+
private companion object {
|
|
28
|
+
/**
|
|
29
|
+
* Constructor called from C++
|
|
30
|
+
*/
|
|
27
31
|
@DoNotStrip
|
|
28
32
|
@Keep
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
@Suppress("unused")
|
|
34
|
+
@JvmStatic
|
|
35
|
+
private fun fromCpp(error: String?, result: ExternalPurchaseNoticeAction): ExternalPurchaseNoticeResultIOS {
|
|
36
|
+
return ExternalPurchaseNoticeResultIOS(error, result)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
32
39
|
}
|
|
@@ -10,7 +10,8 @@ package com.margelo.nitro.iap
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.jni.HybridData
|
|
12
12
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
13
|
-
import com.margelo.nitro.core
|
|
13
|
+
import com.margelo.nitro.core.Promise
|
|
14
|
+
import com.margelo.nitro.core.HybridObject
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* A Kotlin class representing the RnIap HybridObject.
|
|
@@ -263,6 +264,6 @@ abstract class HybridRnIapSpec: HybridObject() {
|
|
|
263
264
|
private external fun initHybrid(): HybridData
|
|
264
265
|
|
|
265
266
|
companion object {
|
|
266
|
-
|
|
267
|
+
protected const val TAG = "HybridRnIapSpec"
|
|
267
268
|
}
|
|
268
269
|
}
|
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,13 +16,21 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class InitConnectionConfig
|
|
19
|
+
data class InitConnectionConfig(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
22
|
+
val alternativeBillingModeAndroid: AlternativeBillingModeAndroid?
|
|
23
|
+
) {
|
|
24
|
+
private companion object {
|
|
25
|
+
/**
|
|
26
|
+
* Constructor called from C++
|
|
27
|
+
*/
|
|
24
28
|
@DoNotStrip
|
|
25
29
|
@Keep
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
@Suppress("unused")
|
|
31
|
+
@JvmStatic
|
|
32
|
+
private fun fromCpp(alternativeBillingModeAndroid: AlternativeBillingModeAndroid?): InitConnectionConfig {
|
|
33
|
+
return InitConnectionConfig(alternativeBillingModeAndroid)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
29
36
|
}
|
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,52 +16,60 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class NitroActiveSubscription
|
|
19
|
+
data class NitroActiveSubscription(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
22
|
+
val productId: String,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val isActive: Boolean,
|
|
26
|
+
@DoNotStrip
|
|
27
|
+
@Keep
|
|
28
|
+
val transactionId: String,
|
|
29
|
+
@DoNotStrip
|
|
30
|
+
@Keep
|
|
31
|
+
val purchaseToken: String?,
|
|
32
|
+
@DoNotStrip
|
|
33
|
+
@Keep
|
|
34
|
+
val transactionDate: Double,
|
|
35
|
+
@DoNotStrip
|
|
36
|
+
@Keep
|
|
37
|
+
val expirationDateIOS: Double?,
|
|
38
|
+
@DoNotStrip
|
|
39
|
+
@Keep
|
|
40
|
+
val environmentIOS: String?,
|
|
41
|
+
@DoNotStrip
|
|
42
|
+
@Keep
|
|
43
|
+
val willExpireSoon: Boolean?,
|
|
44
|
+
@DoNotStrip
|
|
45
|
+
@Keep
|
|
46
|
+
val daysUntilExpirationIOS: Double?,
|
|
47
|
+
@DoNotStrip
|
|
48
|
+
@Keep
|
|
49
|
+
val renewalInfoIOS: NitroRenewalInfoIOS?,
|
|
50
|
+
@DoNotStrip
|
|
51
|
+
@Keep
|
|
52
|
+
val autoRenewingAndroid: Boolean?,
|
|
53
|
+
@DoNotStrip
|
|
54
|
+
@Keep
|
|
55
|
+
val basePlanIdAndroid: String?,
|
|
56
|
+
@DoNotStrip
|
|
57
|
+
@Keep
|
|
58
|
+
val currentPlanId: String?,
|
|
59
|
+
@DoNotStrip
|
|
60
|
+
@Keep
|
|
61
|
+
val purchaseTokenAndroid: String?
|
|
62
|
+
) {
|
|
63
|
+
private companion object {
|
|
64
|
+
/**
|
|
65
|
+
* Constructor called from C++
|
|
66
|
+
*/
|
|
63
67
|
@DoNotStrip
|
|
64
68
|
@Keep
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
@Suppress("unused")
|
|
70
|
+
@JvmStatic
|
|
71
|
+
private fun fromCpp(productId: String, isActive: Boolean, transactionId: String, purchaseToken: String?, transactionDate: Double, expirationDateIOS: Double?, environmentIOS: String?, willExpireSoon: Boolean?, daysUntilExpirationIOS: Double?, renewalInfoIOS: NitroRenewalInfoIOS?, autoRenewingAndroid: Boolean?, basePlanIdAndroid: String?, currentPlanId: String?, purchaseTokenAndroid: String?): NitroActiveSubscription {
|
|
72
|
+
return NitroActiveSubscription(productId, isActive, transactionId, purchaseToken, transactionDate, expirationDateIOS, environmentIOS, willExpireSoon, daysUntilExpirationIOS, renewalInfoIOS, autoRenewingAndroid, basePlanIdAndroid, currentPlanId, purchaseTokenAndroid)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
68
75
|
}
|
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,13 +16,21 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class NitroAvailablePurchasesAndroidOptions
|
|
19
|
+
data class NitroAvailablePurchasesAndroidOptions(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
22
|
+
val type: NitroAvailablePurchasesAndroidType?
|
|
23
|
+
) {
|
|
24
|
+
private companion object {
|
|
25
|
+
/**
|
|
26
|
+
* Constructor called from C++
|
|
27
|
+
*/
|
|
24
28
|
@DoNotStrip
|
|
25
29
|
@Keep
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
@Suppress("unused")
|
|
31
|
+
@JvmStatic
|
|
32
|
+
private fun fromCpp(type: NitroAvailablePurchasesAndroidType?): NitroAvailablePurchasesAndroidOptions {
|
|
33
|
+
return NitroAvailablePurchasesAndroidOptions(type)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
29
36
|
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt
CHANGED
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,22 +16,30 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class NitroAvailablePurchasesIosOptions
|
|
19
|
+
data class NitroAvailablePurchasesIosOptions(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
val alsoPublishToEventListener: Boolean?,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val onlyIncludeActiveItems: Boolean?,
|
|
26
|
+
@DoNotStrip
|
|
27
|
+
@Keep
|
|
28
|
+
val alsoPublishToEventListenerIOS: Boolean?,
|
|
29
|
+
@DoNotStrip
|
|
30
|
+
@Keep
|
|
31
|
+
val onlyIncludeActiveItemsIOS: Boolean?
|
|
32
|
+
) {
|
|
33
|
+
private companion object {
|
|
34
|
+
/**
|
|
35
|
+
* Constructor called from C++
|
|
36
|
+
*/
|
|
33
37
|
@DoNotStrip
|
|
34
38
|
@Keep
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
@Suppress("unused")
|
|
40
|
+
@JvmStatic
|
|
41
|
+
private fun fromCpp(alsoPublishToEventListener: Boolean?, onlyIncludeActiveItems: Boolean?, alsoPublishToEventListenerIOS: Boolean?, onlyIncludeActiveItemsIOS: Boolean?): NitroAvailablePurchasesIosOptions {
|
|
42
|
+
return NitroAvailablePurchasesIosOptions(alsoPublishToEventListener, onlyIncludeActiveItems, alsoPublishToEventListenerIOS, onlyIncludeActiveItemsIOS)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
38
45
|
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt
CHANGED
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,16 +16,24 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class NitroAvailablePurchasesOptions
|
|
19
|
+
data class NitroAvailablePurchasesOptions(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
val ios: NitroAvailablePurchasesIosOptions?,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val android: NitroAvailablePurchasesAndroidOptions?
|
|
26
|
+
) {
|
|
27
|
+
private companion object {
|
|
28
|
+
/**
|
|
29
|
+
* Constructor called from C++
|
|
30
|
+
*/
|
|
27
31
|
@DoNotStrip
|
|
28
32
|
@Keep
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
@Suppress("unused")
|
|
34
|
+
@JvmStatic
|
|
35
|
+
private fun fromCpp(ios: NitroAvailablePurchasesIosOptions?, android: NitroAvailablePurchasesAndroidOptions?): NitroAvailablePurchasesOptions {
|
|
36
|
+
return NitroAvailablePurchasesOptions(ios, android)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
32
39
|
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDeepLinkOptionsAndroid.kt
CHANGED
|
@@ -9,7 +9,6 @@ package com.margelo.nitro.iap
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
import com.margelo.nitro.core.*
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -17,16 +16,24 @@ import com.margelo.nitro.core.*
|
|
|
17
16
|
*/
|
|
18
17
|
@DoNotStrip
|
|
19
18
|
@Keep
|
|
20
|
-
data class NitroDeepLinkOptionsAndroid
|
|
19
|
+
data class NitroDeepLinkOptionsAndroid(
|
|
21
20
|
@DoNotStrip
|
|
22
21
|
@Keep
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
val skuAndroid: String?,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val packageNameAndroid: String?
|
|
26
|
+
) {
|
|
27
|
+
private companion object {
|
|
28
|
+
/**
|
|
29
|
+
* Constructor called from C++
|
|
30
|
+
*/
|
|
27
31
|
@DoNotStrip
|
|
28
32
|
@Keep
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
@Suppress("unused")
|
|
34
|
+
@JvmStatic
|
|
35
|
+
private fun fromCpp(skuAndroid: String?, packageNameAndroid: String?): NitroDeepLinkOptionsAndroid {
|
|
36
|
+
return NitroDeepLinkOptionsAndroid(skuAndroid, packageNameAndroid)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
32
39
|
}
|