@iternio/react-native-auto-play 0.1.16 → 0.2.0-alpha.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/README.md +429 -14
- package/android/build.gradle +15 -1
- package/android/gradle.properties +1 -1
- package/android/src/{main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryObserver.kt → auto/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt} +31 -76
- package/android/src/automotive/AndroidManifest.xml +91 -0
- package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt +191 -0
- package/android/src/main/AndroidManifest.xml +0 -10
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoScreen.kt +3 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryHolder.kt +97 -19
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetry.kt +39 -3
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplate.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/TelemetryObserver.kt +56 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/VirtualRenderer.kt +15 -10
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/AutomotivePermissionRequestTemplate.kt +103 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/GridTemplate.kt +0 -2
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/Parser.kt +8 -2
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/SignInTemplate.kt +159 -0
- package/ios/extensions/CarPlayExtensions.swift +4 -2
- package/ios/extensions/NitroImageExtensions.swift +4 -4
- package/ios/hybrid/HybridAutoPlay.swift +31 -42
- package/ios/hybrid/HybridCluster.swift +4 -2
- package/ios/hybrid/HybridGridTemplate.swift +11 -11
- package/ios/hybrid/HybridInformationTemplate.swift +12 -13
- package/ios/hybrid/HybridListTemplate.swift +12 -13
- package/ios/hybrid/HybridMapTemplate.swift +13 -16
- package/ios/hybrid/HybridMessageTemplate.swift +7 -4
- package/ios/hybrid/HybridSearchTemplate.swift +12 -13
- package/ios/scenes/AutoPlayInterfaceController.swift +44 -13
- package/ios/scenes/AutoPlayScene.swift +2 -1
- package/ios/scenes/AutoPlaySceneViewController.swift +8 -2
- package/ios/scenes/DashboardSceneDelegate.swift +15 -7
- package/ios/scenes/HeadUnitSceneDelegate.swift +12 -7
- package/ios/scenes/WindowApplicationSceneDelegate.swift +1 -1
- package/ios/templates/AutoPlayTemplate.swift +23 -15
- package/ios/templates/GridTemplate.swift +23 -16
- package/ios/templates/InformationTemplate.swift +12 -11
- package/ios/templates/ListTemplate.swift +11 -11
- package/ios/templates/MapTemplate.swift +40 -32
- package/ios/templates/MessageTemplate.swift +8 -12
- package/ios/templates/Parser.swift +2 -1
- package/ios/templates/SearchTemplate.swift +19 -17
- package/ios/templates/TemplateStore.swift +17 -9
- package/ios/utils/RootModule.swift +19 -12
- package/ios/utils/SymbolFont.swift +2 -1
- package/ios/utils/ViewUtils.swift +2 -2
- package/lib/hooks/useAndroidAutoTelemetry.d.ts +22 -4
- package/lib/hooks/useAndroidAutoTelemetry.js +52 -24
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/specs/AndroidAutoTelemetry.nitro.d.ts +14 -1
- package/lib/specs/SignInTemplate.nitro.d.ts +12 -0
- package/lib/templates/SignInTemplate.d.ts +49 -0
- package/lib/templates/SignInTemplate.js +51 -0
- package/lib/types/SignInMethod.d.ts +38 -0
- package/lib/types/SignInMethod.js +19 -0
- package/lib/types/Telemetry.d.ts +27 -0
- package/lib/types/Telemetry.js +7 -0
- package/nitro.json +3 -0
- package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.cmake +3 -0
- package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +12 -2
- package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +87 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +10 -10
- package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +41 -5
- package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +133 -0
- package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JInputSignIn.hpp +103 -0
- package/nitrogen/generated/android/c++/JKeyboardType.hpp +65 -0
- package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +98 -0
- package/nitrogen/generated/android/c++/JPinSignIn.hpp +63 -0
- package/nitrogen/generated/android/c++/JQrSignIn.hpp +63 -0
- package/nitrogen/generated/android/c++/JSignInMethods.hpp +65 -0
- package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +217 -0
- package/nitrogen/generated/android/c++/JTelemetry.hpp +25 -3
- package/nitrogen/generated/android/c++/JTextInputType.hpp +59 -0
- package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn.cpp +30 -0
- package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn.hpp +99 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AssetImage.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AutoText.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/BooleanTelemetryItem.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/{Func_void_std__optional_Telemetry__std__optional_std__string_.kt → Func_void_std__optional_Telemetry_.kt} +14 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GlyphImage.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GridTemplateConfig.kt +8 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +7 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InformationTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InputSignIn.kt +63 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeyboardType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ListTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MapTemplateConfig.kt +17 -17
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MessageTemplateConfig.kt +11 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NavigationAlertAction.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAction.kt +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedString.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroBaseMapTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButton.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMessageManeuver.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroNavigationAlert.kt +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRoutingManeuver.kt +12 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRow.kt +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSection.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PermissionRequestResult.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PinSignIn.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/QrSignIn.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SafeAreaInsets.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SearchTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInMethods.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInTemplateConfig.kt +78 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Telemetry.kt +23 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TextInputType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TravelEstimates.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_QrSignIn_PinSignIn_InputSignIn.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VehicleTelemetryItem.kt +3 -3
- package/nitrogen/generated/shared/c++/BooleanTelemetryItem.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.hpp +7 -1
- package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.hpp +66 -0
- package/nitrogen/generated/shared/c++/InputSignIn.hpp +113 -0
- package/nitrogen/generated/shared/c++/KeyboardType.hpp +64 -0
- package/nitrogen/generated/shared/c++/PermissionRequestResult.hpp +80 -0
- package/nitrogen/generated/shared/c++/PinSignIn.hpp +81 -0
- package/nitrogen/generated/shared/c++/QrSignIn.hpp +81 -0
- package/nitrogen/generated/shared/c++/SignInMethods.hpp +64 -0
- package/nitrogen/generated/shared/c++/SignInTemplateConfig.hpp +138 -0
- package/nitrogen/generated/shared/c++/Telemetry.hpp +25 -2
- package/nitrogen/generated/shared/c++/TextInputType.hpp +62 -0
- package/package.json +4 -2
- package/src/hooks/useAndroidAutoTelemetry.ts +80 -27
- package/src/index.ts +2 -0
- package/src/specs/AndroidAutoTelemetry.nitro.ts +19 -1
- package/src/specs/SignInTemplate.nitro.ts +10 -0
- package/src/templates/SignInTemplate.ts +117 -0
- package/src/types/SignInMethod.ts +41 -0
- package/src/types/Telemetry.ts +29 -0
- package/lib/specs/VoiceInput.nitro.d.ts +0 -8
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry__std__optional_std__string_.hpp +0 -85
- /package/lib/specs/{VoiceInput.nitro.js → SignInTemplate.nitro.js} +0 -0
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* Represents the Java/Kotlin callback `(
|
|
22
|
+
* Represents the Java/Kotlin callback `(text: String) -> Unit`.
|
|
23
23
|
* This can be passed around between C++ and Java/Kotlin.
|
|
24
24
|
*/
|
|
25
25
|
struct JFunc_void_std__string: public jni::JavaClass<JFunc_void_std__string> {
|
|
@@ -30,9 +30,9 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
30
30
|
/**
|
|
31
31
|
* Invokes the function this `JFunc_void_std__string` instance holds through JNI.
|
|
32
32
|
*/
|
|
33
|
-
void invoke(const std::string&
|
|
34
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /*
|
|
35
|
-
method(self(), jni::make_jstring(
|
|
33
|
+
void invoke(const std::string& text) const {
|
|
34
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* text */)>("invoke");
|
|
35
|
+
method(self(), jni::make_jstring(text));
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
|
|
@@ -41,7 +41,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
41
41
|
*/
|
|
42
42
|
class JFunc_void_std__string_cxx final: public jni::HybridClass<JFunc_void_std__string_cxx, JFunc_void_std__string> {
|
|
43
43
|
public:
|
|
44
|
-
static jni::local_ref<JFunc_void_std__string::javaobject> fromCpp(const std::function<void(const std::string& /*
|
|
44
|
+
static jni::local_ref<JFunc_void_std__string::javaobject> fromCpp(const std::function<void(const std::string& /* text */)>& func) {
|
|
45
45
|
return JFunc_void_std__string_cxx::newObjectCxxArgs(func);
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -49,13 +49,13 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
49
49
|
/**
|
|
50
50
|
* Invokes the C++ `std::function<...>` this `JFunc_void_std__string_cxx` instance holds.
|
|
51
51
|
*/
|
|
52
|
-
void invoke_cxx(jni::alias_ref<jni::JString>
|
|
53
|
-
_func(
|
|
52
|
+
void invoke_cxx(jni::alias_ref<jni::JString> text) {
|
|
53
|
+
_func(text->toStdString());
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
public:
|
|
57
57
|
[[nodiscard]]
|
|
58
|
-
inline const std::function<void(const std::string& /*
|
|
58
|
+
inline const std::function<void(const std::string& /* text */)>& getFunction() const {
|
|
59
59
|
return _func;
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -66,11 +66,11 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
private:
|
|
69
|
-
explicit JFunc_void_std__string_cxx(const std::function<void(const std::string& /*
|
|
69
|
+
explicit JFunc_void_std__string_cxx(const std::function<void(const std::string& /* text */)>& func): _func(func) { }
|
|
70
70
|
|
|
71
71
|
private:
|
|
72
72
|
friend HybridBase;
|
|
73
|
-
std::function<void(const std::string& /*
|
|
73
|
+
std::function<void(const std::string& /* text */)> _func;
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
} // namespace margelo::nitro::swe::iternio::reactnativeautoplay
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
#include "JHybridAndroidAutoTelemetrySpec.hpp"
|
|
9
9
|
|
|
10
|
+
// Forward declaration of `PermissionRequestResult` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct PermissionRequestResult; }
|
|
10
12
|
// Forward declaration of `Telemetry` to properly resolve imports.
|
|
11
13
|
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct Telemetry; }
|
|
12
14
|
// Forward declaration of `NumericTelemetryItem` to properly resolve imports.
|
|
@@ -15,14 +17,21 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NumericTele
|
|
|
15
17
|
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct VehicleTelemetryItem; }
|
|
16
18
|
// Forward declaration of `StringTelemetryItem` to properly resolve imports.
|
|
17
19
|
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct StringTelemetryItem; }
|
|
20
|
+
// Forward declaration of `BooleanTelemetryItem` to properly resolve imports.
|
|
21
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct BooleanTelemetryItem; }
|
|
18
22
|
|
|
19
23
|
#include <functional>
|
|
20
24
|
#include "JFunc_void.hpp"
|
|
21
25
|
#include <NitroModules/JNICallable.hpp>
|
|
26
|
+
#include "PermissionRequestResult.hpp"
|
|
27
|
+
#include <NitroModules/Promise.hpp>
|
|
28
|
+
#include <NitroModules/JPromise.hpp>
|
|
29
|
+
#include "JPermissionRequestResult.hpp"
|
|
30
|
+
#include <string>
|
|
31
|
+
#include <vector>
|
|
22
32
|
#include "Telemetry.hpp"
|
|
23
33
|
#include <optional>
|
|
24
|
-
#include
|
|
25
|
-
#include "JFunc_void_std__optional_Telemetry__std__optional_std__string_.hpp"
|
|
34
|
+
#include "JFunc_void_std__optional_Telemetry_.hpp"
|
|
26
35
|
#include "JTelemetry.hpp"
|
|
27
36
|
#include "NumericTelemetryItem.hpp"
|
|
28
37
|
#include "JNumericTelemetryItem.hpp"
|
|
@@ -30,6 +39,8 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct StringTelem
|
|
|
30
39
|
#include "JVehicleTelemetryItem.hpp"
|
|
31
40
|
#include "StringTelemetryItem.hpp"
|
|
32
41
|
#include "JStringTelemetryItem.hpp"
|
|
42
|
+
#include "BooleanTelemetryItem.hpp"
|
|
43
|
+
#include "JBooleanTelemetryItem.hpp"
|
|
33
44
|
|
|
34
45
|
namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
35
46
|
|
|
@@ -63,9 +74,9 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
63
74
|
|
|
64
75
|
|
|
65
76
|
// Methods
|
|
66
|
-
std::function<void()> JHybridAndroidAutoTelemetrySpec::registerTelemetryListener(const std::function<void(const std::optional<Telemetry>& /* tlm
|
|
67
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<
|
|
68
|
-
auto __result = method(_javaPart,
|
|
77
|
+
std::function<void()> JHybridAndroidAutoTelemetrySpec::registerTelemetryListener(const std::function<void(const std::optional<Telemetry>& /* tlm */)>& callback) {
|
|
78
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__optional_Telemetry_::javaobject> /* callback */)>("registerTelemetryListener_cxx");
|
|
79
|
+
auto __result = method(_javaPart, JFunc_void_std__optional_Telemetry__cxx::fromCpp(callback));
|
|
69
80
|
return [&]() -> std::function<void()> {
|
|
70
81
|
if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
|
|
71
82
|
auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(__result);
|
|
@@ -76,5 +87,30 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
76
87
|
}
|
|
77
88
|
}();
|
|
78
89
|
}
|
|
90
|
+
std::shared_ptr<Promise<PermissionRequestResult>> JHybridAndroidAutoTelemetrySpec::requestAutomotivePermissions(const std::vector<std::string>& permissions, const std::string& message, const std::string& grantButtonText, const std::optional<std::string>& cancelButtonText) {
|
|
91
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayClass<jni::JString>> /* permissions */, jni::alias_ref<jni::JString> /* message */, jni::alias_ref<jni::JString> /* grantButtonText */, jni::alias_ref<jni::JString> /* cancelButtonText */)>("requestAutomotivePermissions");
|
|
92
|
+
auto __result = method(_javaPart, [&]() {
|
|
93
|
+
size_t __size = permissions.size();
|
|
94
|
+
jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
|
|
95
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
96
|
+
const auto& __element = permissions[__i];
|
|
97
|
+
auto __elementJni = jni::make_jstring(__element);
|
|
98
|
+
__array->setElement(__i, *__elementJni);
|
|
99
|
+
}
|
|
100
|
+
return __array;
|
|
101
|
+
}(), jni::make_jstring(message), jni::make_jstring(grantButtonText), cancelButtonText.has_value() ? jni::make_jstring(cancelButtonText.value()) : nullptr);
|
|
102
|
+
return [&]() {
|
|
103
|
+
auto __promise = Promise<PermissionRequestResult>::create();
|
|
104
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
105
|
+
auto __result = jni::static_ref_cast<JPermissionRequestResult>(__boxedResult);
|
|
106
|
+
__promise->resolve(__result->toCpp());
|
|
107
|
+
});
|
|
108
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
109
|
+
jni::JniException __jniError(__throwable);
|
|
110
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
111
|
+
});
|
|
112
|
+
return __promise;
|
|
113
|
+
}();
|
|
114
|
+
}
|
|
79
115
|
|
|
80
116
|
} // namespace margelo::nitro::swe::iternio::reactnativeautoplay
|
|
@@ -54,7 +54,8 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
54
54
|
|
|
55
55
|
public:
|
|
56
56
|
// Methods
|
|
57
|
-
std::function<void()> registerTelemetryListener(const std::function<void(const std::optional<Telemetry>& /* tlm
|
|
57
|
+
std::function<void()> registerTelemetryListener(const std::function<void(const std::optional<Telemetry>& /* tlm */)>& callback) override;
|
|
58
|
+
std::shared_ptr<Promise<PermissionRequestResult>> requestAutomotivePermissions(const std::vector<std::string>& permissions, const std::string& message, const std::string& grantButtonText, const std::optional<std::string>& cancelButtonText) override;
|
|
58
59
|
|
|
59
60
|
private:
|
|
60
61
|
friend HybridBase;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridSignInTemplateSpec.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 "JHybridSignInTemplateSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `SignInTemplateConfig` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct SignInTemplateConfig; }
|
|
12
|
+
// Forward declaration of `QrSignIn` to properly resolve imports.
|
|
13
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct QrSignIn; }
|
|
14
|
+
// Forward declaration of `PinSignIn` to properly resolve imports.
|
|
15
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct PinSignIn; }
|
|
16
|
+
// Forward declaration of `InputSignIn` to properly resolve imports.
|
|
17
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct InputSignIn; }
|
|
18
|
+
// Forward declaration of `SignInMethods` to properly resolve imports.
|
|
19
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class SignInMethods; }
|
|
20
|
+
// Forward declaration of `KeyboardType` to properly resolve imports.
|
|
21
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class KeyboardType; }
|
|
22
|
+
// Forward declaration of `TextInputType` to properly resolve imports.
|
|
23
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class TextInputType; }
|
|
24
|
+
// Forward declaration of `NitroAction` to properly resolve imports.
|
|
25
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroAction; }
|
|
26
|
+
// Forward declaration of `GlyphImage` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct GlyphImage; }
|
|
28
|
+
// Forward declaration of `AssetImage` to properly resolve imports.
|
|
29
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct AssetImage; }
|
|
30
|
+
// Forward declaration of `NitroColor` to properly resolve imports.
|
|
31
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroColor; }
|
|
32
|
+
// Forward declaration of `NitroActionType` to properly resolve imports.
|
|
33
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroActionType; }
|
|
34
|
+
// Forward declaration of `NitroAlignment` to properly resolve imports.
|
|
35
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroAlignment; }
|
|
36
|
+
// Forward declaration of `NitroButtonStyle` to properly resolve imports.
|
|
37
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroButtonStyle; }
|
|
38
|
+
|
|
39
|
+
#include <NitroModules/Promise.hpp>
|
|
40
|
+
#include <NitroModules/JPromise.hpp>
|
|
41
|
+
#include "SignInTemplateConfig.hpp"
|
|
42
|
+
#include "JSignInTemplateConfig.hpp"
|
|
43
|
+
#include <string>
|
|
44
|
+
#include <optional>
|
|
45
|
+
#include <functional>
|
|
46
|
+
#include "JFunc_void_std__optional_bool_.hpp"
|
|
47
|
+
#include <NitroModules/JNICallable.hpp>
|
|
48
|
+
#include "JFunc_void.hpp"
|
|
49
|
+
#include "QrSignIn.hpp"
|
|
50
|
+
#include "PinSignIn.hpp"
|
|
51
|
+
#include "InputSignIn.hpp"
|
|
52
|
+
#include <variant>
|
|
53
|
+
#include "JVariant_QrSignIn_PinSignIn_InputSignIn.hpp"
|
|
54
|
+
#include "JQrSignIn.hpp"
|
|
55
|
+
#include "SignInMethods.hpp"
|
|
56
|
+
#include "JSignInMethods.hpp"
|
|
57
|
+
#include "JPinSignIn.hpp"
|
|
58
|
+
#include "JInputSignIn.hpp"
|
|
59
|
+
#include "KeyboardType.hpp"
|
|
60
|
+
#include "JKeyboardType.hpp"
|
|
61
|
+
#include "JFunc_void_std__string.hpp"
|
|
62
|
+
#include "TextInputType.hpp"
|
|
63
|
+
#include "JTextInputType.hpp"
|
|
64
|
+
#include "NitroAction.hpp"
|
|
65
|
+
#include <vector>
|
|
66
|
+
#include "JNitroAction.hpp"
|
|
67
|
+
#include "GlyphImage.hpp"
|
|
68
|
+
#include "AssetImage.hpp"
|
|
69
|
+
#include "JVariant_GlyphImage_AssetImage.hpp"
|
|
70
|
+
#include "JGlyphImage.hpp"
|
|
71
|
+
#include "NitroColor.hpp"
|
|
72
|
+
#include "JNitroColor.hpp"
|
|
73
|
+
#include "JAssetImage.hpp"
|
|
74
|
+
#include "NitroActionType.hpp"
|
|
75
|
+
#include "JNitroActionType.hpp"
|
|
76
|
+
#include "NitroAlignment.hpp"
|
|
77
|
+
#include "JNitroAlignment.hpp"
|
|
78
|
+
#include "NitroButtonStyle.hpp"
|
|
79
|
+
#include "JNitroButtonStyle.hpp"
|
|
80
|
+
|
|
81
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
82
|
+
|
|
83
|
+
jni::local_ref<JHybridSignInTemplateSpec::jhybriddata> JHybridSignInTemplateSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
84
|
+
return makeCxxInstance(jThis);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
void JHybridSignInTemplateSpec::registerNatives() {
|
|
88
|
+
registerHybrid({
|
|
89
|
+
makeNativeMethod("initHybrid", JHybridSignInTemplateSpec::initHybrid),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
size_t JHybridSignInTemplateSpec::getExternalMemorySize() noexcept {
|
|
94
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
95
|
+
return method(_javaPart);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
void JHybridSignInTemplateSpec::dispose() noexcept {
|
|
99
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
100
|
+
method(_javaPart);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
std::string JHybridSignInTemplateSpec::toString() {
|
|
104
|
+
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
105
|
+
auto javaString = method(_javaPart);
|
|
106
|
+
return javaString->toStdString();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Properties
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
// Methods
|
|
113
|
+
void JHybridSignInTemplateSpec::createSignInTemplate(const SignInTemplateConfig& config) {
|
|
114
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JSignInTemplateConfig> /* config */)>("createSignInTemplate");
|
|
115
|
+
method(_javaPart, JSignInTemplateConfig::fromCpp(config));
|
|
116
|
+
}
|
|
117
|
+
std::shared_ptr<Promise<void>> JHybridSignInTemplateSpec::updateTemplate(const std::string& templateId, const SignInTemplateConfig& config) {
|
|
118
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JSignInTemplateConfig> /* config */)>("updateTemplate");
|
|
119
|
+
auto __result = method(_javaPart, jni::make_jstring(templateId), JSignInTemplateConfig::fromCpp(config));
|
|
120
|
+
return [&]() {
|
|
121
|
+
auto __promise = Promise<void>::create();
|
|
122
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
123
|
+
__promise->resolve();
|
|
124
|
+
});
|
|
125
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
126
|
+
jni::JniException __jniError(__throwable);
|
|
127
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
128
|
+
});
|
|
129
|
+
return __promise;
|
|
130
|
+
}();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
} // namespace margelo::nitro::swe::iternio::reactnativeautoplay
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridSignInTemplateSpec.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 "HybridSignInTemplateSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridSignInTemplateSpec: public jni::HybridClass<JHybridSignInTemplateSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridSignInTemplateSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec;";
|
|
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 JHybridSignInTemplateSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridSignInTemplateSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridSignInTemplateSpec() 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
|
+
std::string toString() override;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridSignInTemplateSpec::javaobject>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
void createSignInTemplate(const SignInTemplateConfig& config) override;
|
|
58
|
+
std::shared_ptr<Promise<void>> updateTemplate(const std::string& templateId, const SignInTemplateConfig& config) override;
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
friend HybridBase;
|
|
62
|
+
using HybridBase::HybridBase;
|
|
63
|
+
jni::global_ref<JHybridSignInTemplateSpec::javaobject> _javaPart;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
} // namespace margelo::nitro::swe::iternio::reactnativeautoplay
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JInputSignIn.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 "InputSignIn.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JFunc_void_std__string.hpp"
|
|
14
|
+
#include "JKeyboardType.hpp"
|
|
15
|
+
#include "JSignInMethods.hpp"
|
|
16
|
+
#include "JTextInputType.hpp"
|
|
17
|
+
#include "KeyboardType.hpp"
|
|
18
|
+
#include "SignInMethods.hpp"
|
|
19
|
+
#include "TextInputType.hpp"
|
|
20
|
+
#include <NitroModules/JNICallable.hpp>
|
|
21
|
+
#include <functional>
|
|
22
|
+
#include <optional>
|
|
23
|
+
#include <string>
|
|
24
|
+
|
|
25
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
26
|
+
|
|
27
|
+
using namespace facebook;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The C++ JNI bridge between the C++ struct "InputSignIn" and the the Kotlin data class "InputSignIn".
|
|
31
|
+
*/
|
|
32
|
+
struct JInputSignIn final: public jni::JavaClass<JInputSignIn> {
|
|
33
|
+
public:
|
|
34
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/InputSignIn;";
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
/**
|
|
38
|
+
* Convert this Java/Kotlin-based struct to the C++ struct InputSignIn by copying all values to C++.
|
|
39
|
+
*/
|
|
40
|
+
[[maybe_unused]]
|
|
41
|
+
[[nodiscard]]
|
|
42
|
+
InputSignIn toCpp() const {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldMethod = clazz->getField<JSignInMethods>("method");
|
|
45
|
+
jni::local_ref<JSignInMethods> method = this->getFieldValue(fieldMethod);
|
|
46
|
+
static const auto fieldKeyboardType = clazz->getField<JKeyboardType>("keyboardType");
|
|
47
|
+
jni::local_ref<JKeyboardType> keyboardType = this->getFieldValue(fieldKeyboardType);
|
|
48
|
+
static const auto fieldHint = clazz->getField<jni::JString>("hint");
|
|
49
|
+
jni::local_ref<jni::JString> hint = this->getFieldValue(fieldHint);
|
|
50
|
+
static const auto fieldDefaultValue = clazz->getField<jni::JString>("defaultValue");
|
|
51
|
+
jni::local_ref<jni::JString> defaultValue = this->getFieldValue(fieldDefaultValue);
|
|
52
|
+
static const auto fieldErrorMessage = clazz->getField<jni::JString>("errorMessage");
|
|
53
|
+
jni::local_ref<jni::JString> errorMessage = this->getFieldValue(fieldErrorMessage);
|
|
54
|
+
static const auto fieldCallback = clazz->getField<JFunc_void_std__string::javaobject>("callback");
|
|
55
|
+
jni::local_ref<JFunc_void_std__string::javaobject> callback = this->getFieldValue(fieldCallback);
|
|
56
|
+
static const auto fieldShowKeyboardByDefault = clazz->getField<jni::JBoolean>("showKeyboardByDefault");
|
|
57
|
+
jni::local_ref<jni::JBoolean> showKeyboardByDefault = this->getFieldValue(fieldShowKeyboardByDefault);
|
|
58
|
+
static const auto fieldInputType = clazz->getField<JTextInputType>("inputType");
|
|
59
|
+
jni::local_ref<JTextInputType> inputType = this->getFieldValue(fieldInputType);
|
|
60
|
+
return InputSignIn(
|
|
61
|
+
method->toCpp(),
|
|
62
|
+
keyboardType != nullptr ? std::make_optional(keyboardType->toCpp()) : std::nullopt,
|
|
63
|
+
hint != nullptr ? std::make_optional(hint->toStdString()) : std::nullopt,
|
|
64
|
+
defaultValue != nullptr ? std::make_optional(defaultValue->toStdString()) : std::nullopt,
|
|
65
|
+
errorMessage != nullptr ? std::make_optional(errorMessage->toStdString()) : std::nullopt,
|
|
66
|
+
[&]() -> std::function<void(const std::string& /* text */)> {
|
|
67
|
+
if (callback->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
|
|
68
|
+
auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(callback);
|
|
69
|
+
return downcast->cthis()->getFunction();
|
|
70
|
+
} else {
|
|
71
|
+
auto callbackRef = jni::make_global(callback);
|
|
72
|
+
return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(callbackRef));
|
|
73
|
+
}
|
|
74
|
+
}(),
|
|
75
|
+
showKeyboardByDefault != nullptr ? std::make_optional(static_cast<bool>(showKeyboardByDefault->value())) : std::nullopt,
|
|
76
|
+
inputType->toCpp()
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public:
|
|
81
|
+
/**
|
|
82
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
83
|
+
*/
|
|
84
|
+
[[maybe_unused]]
|
|
85
|
+
static jni::local_ref<JInputSignIn::javaobject> fromCpp(const InputSignIn& value) {
|
|
86
|
+
using JSignature = JInputSignIn(jni::alias_ref<JSignInMethods>, jni::alias_ref<JKeyboardType>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JFunc_void_std__string::javaobject>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JTextInputType>);
|
|
87
|
+
static const auto clazz = javaClassStatic();
|
|
88
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
89
|
+
return create(
|
|
90
|
+
clazz,
|
|
91
|
+
JSignInMethods::fromCpp(value.method),
|
|
92
|
+
value.keyboardType.has_value() ? JKeyboardType::fromCpp(value.keyboardType.value()) : nullptr,
|
|
93
|
+
value.hint.has_value() ? jni::make_jstring(value.hint.value()) : nullptr,
|
|
94
|
+
value.defaultValue.has_value() ? jni::make_jstring(value.defaultValue.value()) : nullptr,
|
|
95
|
+
value.errorMessage.has_value() ? jni::make_jstring(value.errorMessage.value()) : nullptr,
|
|
96
|
+
JFunc_void_std__string_cxx::fromCpp(value.callback),
|
|
97
|
+
value.showKeyboardByDefault.has_value() ? jni::JBoolean::valueOf(value.showKeyboardByDefault.value()) : nullptr,
|
|
98
|
+
JTextInputType::fromCpp(value.inputType)
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
} // namespace margelo::nitro::swe::iternio::reactnativeautoplay
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JKeyboardType.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 "KeyboardType.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "KeyboardType" and the the Kotlin enum "KeyboardType".
|
|
19
|
+
*/
|
|
20
|
+
struct JKeyboardType final: public jni::JavaClass<JKeyboardType> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/KeyboardType;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum KeyboardType.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
KeyboardType 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<KeyboardType>(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<JKeyboardType> fromCpp(KeyboardType value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldDEFAULT = clazz->getStaticField<JKeyboardType>("DEFAULT");
|
|
45
|
+
static const auto fieldEMAIL = clazz->getStaticField<JKeyboardType>("EMAIL");
|
|
46
|
+
static const auto fieldPHONE = clazz->getStaticField<JKeyboardType>("PHONE");
|
|
47
|
+
static const auto fieldNUMBER = clazz->getStaticField<JKeyboardType>("NUMBER");
|
|
48
|
+
|
|
49
|
+
switch (value) {
|
|
50
|
+
case KeyboardType::DEFAULT:
|
|
51
|
+
return clazz->getStaticFieldValue(fieldDEFAULT);
|
|
52
|
+
case KeyboardType::EMAIL:
|
|
53
|
+
return clazz->getStaticFieldValue(fieldEMAIL);
|
|
54
|
+
case KeyboardType::PHONE:
|
|
55
|
+
return clazz->getStaticFieldValue(fieldPHONE);
|
|
56
|
+
case KeyboardType::NUMBER:
|
|
57
|
+
return clazz->getStaticFieldValue(fieldNUMBER);
|
|
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::swe::iternio::reactnativeautoplay
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JPermissionRequestResult.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 "PermissionRequestResult.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
#include <vector>
|
|
15
|
+
|
|
16
|
+
namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
17
|
+
|
|
18
|
+
using namespace facebook;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The C++ JNI bridge between the C++ struct "PermissionRequestResult" and the the Kotlin data class "PermissionRequestResult".
|
|
22
|
+
*/
|
|
23
|
+
struct JPermissionRequestResult final: public jni::JavaClass<JPermissionRequestResult> {
|
|
24
|
+
public:
|
|
25
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/PermissionRequestResult;";
|
|
26
|
+
|
|
27
|
+
public:
|
|
28
|
+
/**
|
|
29
|
+
* Convert this Java/Kotlin-based struct to the C++ struct PermissionRequestResult by copying all values to C++.
|
|
30
|
+
*/
|
|
31
|
+
[[maybe_unused]]
|
|
32
|
+
[[nodiscard]]
|
|
33
|
+
PermissionRequestResult toCpp() const {
|
|
34
|
+
static const auto clazz = javaClassStatic();
|
|
35
|
+
static const auto fieldGranted = clazz->getField<jni::JArrayClass<jni::JString>>("granted");
|
|
36
|
+
jni::local_ref<jni::JArrayClass<jni::JString>> granted = this->getFieldValue(fieldGranted);
|
|
37
|
+
static const auto fieldDenied = clazz->getField<jni::JArrayClass<jni::JString>>("denied");
|
|
38
|
+
jni::local_ref<jni::JArrayClass<jni::JString>> denied = this->getFieldValue(fieldDenied);
|
|
39
|
+
return PermissionRequestResult(
|
|
40
|
+
[&]() {
|
|
41
|
+
size_t __size = granted->size();
|
|
42
|
+
std::vector<std::string> __vector;
|
|
43
|
+
__vector.reserve(__size);
|
|
44
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
45
|
+
auto __element = granted->getElement(__i);
|
|
46
|
+
__vector.push_back(__element->toStdString());
|
|
47
|
+
}
|
|
48
|
+
return __vector;
|
|
49
|
+
}(),
|
|
50
|
+
[&]() {
|
|
51
|
+
size_t __size = denied->size();
|
|
52
|
+
std::vector<std::string> __vector;
|
|
53
|
+
__vector.reserve(__size);
|
|
54
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
55
|
+
auto __element = denied->getElement(__i);
|
|
56
|
+
__vector.push_back(__element->toStdString());
|
|
57
|
+
}
|
|
58
|
+
return __vector;
|
|
59
|
+
}()
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
/**
|
|
65
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
66
|
+
*/
|
|
67
|
+
[[maybe_unused]]
|
|
68
|
+
static jni::local_ref<JPermissionRequestResult::javaobject> fromCpp(const PermissionRequestResult& value) {
|
|
69
|
+
using JSignature = JPermissionRequestResult(jni::alias_ref<jni::JArrayClass<jni::JString>>, jni::alias_ref<jni::JArrayClass<jni::JString>>);
|
|
70
|
+
static const auto clazz = javaClassStatic();
|
|
71
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
72
|
+
return create(
|
|
73
|
+
clazz,
|
|
74
|
+
[&]() {
|
|
75
|
+
size_t __size = value.granted.size();
|
|
76
|
+
jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
|
|
77
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
78
|
+
const auto& __element = value.granted[__i];
|
|
79
|
+
auto __elementJni = jni::make_jstring(__element);
|
|
80
|
+
__array->setElement(__i, *__elementJni);
|
|
81
|
+
}
|
|
82
|
+
return __array;
|
|
83
|
+
}(),
|
|
84
|
+
[&]() {
|
|
85
|
+
size_t __size = value.denied.size();
|
|
86
|
+
jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
|
|
87
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
88
|
+
const auto& __element = value.denied[__i];
|
|
89
|
+
auto __elementJni = jni::make_jstring(__element);
|
|
90
|
+
__array->setElement(__i, *__elementJni);
|
|
91
|
+
}
|
|
92
|
+
return __array;
|
|
93
|
+
}()
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
} // namespace margelo::nitro::swe::iternio::reactnativeautoplay
|