react-native-mapsforge-vtm-ext-grib 0.2.0

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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +118 -0
  3. package/android/CMakeLists.txt +13 -0
  4. package/android/build.gradle +108 -0
  5. package/android/generated/java/com/jhotadhari/reactnative/mapsforge/vtm/ext/grib/NativeWeatherOverlaySpec.java +95 -0
  6. package/android/generated/jni/CMakeLists.txt +28 -0
  7. package/android/generated/jni/RNMapsforgeVtmExtGribSpec-generated.cpp +62 -0
  8. package/android/generated/jni/RNMapsforgeVtmExtGribSpec.h +31 -0
  9. package/android/generated/jni/react/renderer/components/RNMapsforgeVtmExtGribSpec/RNMapsforgeVtmExtGribSpecJSI.h +521 -0
  10. package/android/gradle.properties +5 -0
  11. package/android/src/main/AndroidManifest.xml +2 -0
  12. package/android/src/main/AndroidManifestNew.xml +2 -0
  13. package/android/src/main/java/com/jhotadhari/reactnative/mapsforge/vtm/ext/grib/ExtGribPackage.java +62 -0
  14. package/android/src/main/java/com/jhotadhari/reactnative/mapsforge/vtm/ext/grib/modules/WeatherOverlay.java +343 -0
  15. package/android/src/main/java/com/jhotadhari/reactnative/mapsforge/vtm/ext/grib/tiles/ColorRamp.java +165 -0
  16. package/android/src/main/java/com/jhotadhari/reactnative/mapsforge/vtm/ext/grib/tiles/WeatherGridData.java +103 -0
  17. package/android/src/main/java/com/jhotadhari/reactnative/mapsforge/vtm/ext/grib/tiles/WeatherTileDataSource.java +147 -0
  18. package/android/src/main/java/com/jhotadhari/reactnative/mapsforge/vtm/ext/grib/tiles/WeatherTileSource.java +80 -0
  19. package/lib/commonjs/NativeModules/NativeWeatherOverlay.js +9 -0
  20. package/lib/commonjs/NativeModules/NativeWeatherOverlay.js.map +1 -0
  21. package/lib/commonjs/components/WeatherOverlay.js +180 -0
  22. package/lib/commonjs/components/WeatherOverlay.js.map +1 -0
  23. package/lib/commonjs/index.js +21 -0
  24. package/lib/commonjs/index.js.map +1 -0
  25. package/lib/commonjs/package.json +1 -0
  26. package/lib/commonjs/reanimated/index.js +13 -0
  27. package/lib/commonjs/reanimated/index.js.map +1 -0
  28. package/lib/commonjs/reanimated/useWeatherAnimation.js +86 -0
  29. package/lib/commonjs/reanimated/useWeatherAnimation.js.map +1 -0
  30. package/lib/commonjs/reportNativeError.js +14 -0
  31. package/lib/commonjs/reportNativeError.js.map +1 -0
  32. package/lib/commonjs/types.js +2 -0
  33. package/lib/commonjs/types.js.map +1 -0
  34. package/lib/module/NativeModules/NativeWeatherOverlay.js +5 -0
  35. package/lib/module/NativeModules/NativeWeatherOverlay.js.map +1 -0
  36. package/lib/module/components/WeatherOverlay.js +174 -0
  37. package/lib/module/components/WeatherOverlay.js.map +1 -0
  38. package/lib/module/index.js +16 -0
  39. package/lib/module/index.js.map +1 -0
  40. package/lib/module/package.json +1 -0
  41. package/lib/module/reanimated/index.js +4 -0
  42. package/lib/module/reanimated/index.js.map +1 -0
  43. package/lib/module/reanimated/useWeatherAnimation.js +81 -0
  44. package/lib/module/reanimated/useWeatherAnimation.js.map +1 -0
  45. package/lib/module/reportNativeError.js +10 -0
  46. package/lib/module/reportNativeError.js.map +1 -0
  47. package/lib/module/types.js +2 -0
  48. package/lib/module/types.js.map +1 -0
  49. package/lib/typescript/commonjs/package.json +1 -0
  50. package/lib/typescript/commonjs/src/NativeModules/NativeWeatherOverlay.d.ts +63 -0
  51. package/lib/typescript/commonjs/src/NativeModules/NativeWeatherOverlay.d.ts.map +1 -0
  52. package/lib/typescript/commonjs/src/components/WeatherOverlay.d.ts +10 -0
  53. package/lib/typescript/commonjs/src/components/WeatherOverlay.d.ts.map +1 -0
  54. package/lib/typescript/commonjs/src/index.d.ts +11 -0
  55. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  56. package/lib/typescript/commonjs/src/reanimated/index.d.ts +3 -0
  57. package/lib/typescript/commonjs/src/reanimated/index.d.ts.map +1 -0
  58. package/lib/typescript/commonjs/src/reanimated/useWeatherAnimation.d.ts +44 -0
  59. package/lib/typescript/commonjs/src/reanimated/useWeatherAnimation.d.ts.map +1 -0
  60. package/lib/typescript/commonjs/src/reportNativeError.d.ts +3 -0
  61. package/lib/typescript/commonjs/src/reportNativeError.d.ts.map +1 -0
  62. package/lib/typescript/commonjs/src/types.d.ts +51 -0
  63. package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
  64. package/lib/typescript/module/package.json +1 -0
  65. package/lib/typescript/module/src/NativeModules/NativeWeatherOverlay.d.ts +63 -0
  66. package/lib/typescript/module/src/NativeModules/NativeWeatherOverlay.d.ts.map +1 -0
  67. package/lib/typescript/module/src/components/WeatherOverlay.d.ts +10 -0
  68. package/lib/typescript/module/src/components/WeatherOverlay.d.ts.map +1 -0
  69. package/lib/typescript/module/src/index.d.ts +11 -0
  70. package/lib/typescript/module/src/index.d.ts.map +1 -0
  71. package/lib/typescript/module/src/reanimated/index.d.ts +3 -0
  72. package/lib/typescript/module/src/reanimated/index.d.ts.map +1 -0
  73. package/lib/typescript/module/src/reanimated/useWeatherAnimation.d.ts +44 -0
  74. package/lib/typescript/module/src/reanimated/useWeatherAnimation.d.ts.map +1 -0
  75. package/lib/typescript/module/src/reportNativeError.d.ts +3 -0
  76. package/lib/typescript/module/src/reportNativeError.d.ts.map +1 -0
  77. package/lib/typescript/module/src/types.d.ts +51 -0
  78. package/lib/typescript/module/src/types.d.ts.map +1 -0
  79. package/package.json +159 -0
  80. package/react-native.config.js +13 -0
  81. package/src/NativeModules/NativeWeatherOverlay.ts +73 -0
  82. package/src/components/WeatherOverlay.tsx +173 -0
  83. package/src/index.ts +22 -0
  84. package/src/reanimated/index.ts +2 -0
  85. package/src/reanimated/useWeatherAnimation.ts +118 -0
  86. package/src/reportNativeError.ts +15 -0
  87. package/src/types.ts +56 -0
@@ -0,0 +1,521 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleH.js
8
+ */
9
+
10
+ #pragma once
11
+
12
+ #include <ReactCommon/TurboModule.h>
13
+ #include <react/bridging/Bridging.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+ #pragma mark - NativeWeatherOverlayCreateLayerParams
19
+
20
+ template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9>
21
+ struct NativeWeatherOverlayCreateLayerParams {
22
+ P0 dataUrl{};
23
+ P1 parameter{};
24
+ P2 timeIndex{};
25
+ P3 colorMap{};
26
+ P4 opacity{};
27
+ P5 zoomMin{};
28
+ P6 zoomMax{};
29
+ P7 enabledZoomMin{};
30
+ P8 enabledZoomMax{};
31
+ P9 nativeNodeHandle;
32
+ bool operator==(const NativeWeatherOverlayCreateLayerParams &other) const {
33
+ return dataUrl == other.dataUrl && parameter == other.parameter && timeIndex == other.timeIndex && colorMap == other.colorMap && opacity == other.opacity && zoomMin == other.zoomMin && zoomMax == other.zoomMax && enabledZoomMin == other.enabledZoomMin && enabledZoomMax == other.enabledZoomMax && nativeNodeHandle == other.nativeNodeHandle;
34
+ }
35
+ };
36
+
37
+ template <typename T>
38
+ struct NativeWeatherOverlayCreateLayerParamsBridging {
39
+ static T types;
40
+
41
+ static T fromJs(
42
+ jsi::Runtime &rt,
43
+ const jsi::Object &value,
44
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
45
+ T result{
46
+ bridging::fromJs<decltype(types.dataUrl)>(rt, value.getProperty(rt, "dataUrl"), jsInvoker),
47
+ bridging::fromJs<decltype(types.parameter)>(rt, value.getProperty(rt, "parameter"), jsInvoker),
48
+ bridging::fromJs<decltype(types.timeIndex)>(rt, value.getProperty(rt, "timeIndex"), jsInvoker),
49
+ bridging::fromJs<decltype(types.colorMap)>(rt, value.getProperty(rt, "colorMap"), jsInvoker),
50
+ bridging::fromJs<decltype(types.opacity)>(rt, value.getProperty(rt, "opacity"), jsInvoker),
51
+ bridging::fromJs<decltype(types.zoomMin)>(rt, value.getProperty(rt, "zoomMin"), jsInvoker),
52
+ bridging::fromJs<decltype(types.zoomMax)>(rt, value.getProperty(rt, "zoomMax"), jsInvoker),
53
+ bridging::fromJs<decltype(types.enabledZoomMin)>(rt, value.getProperty(rt, "enabledZoomMin"), jsInvoker),
54
+ bridging::fromJs<decltype(types.enabledZoomMax)>(rt, value.getProperty(rt, "enabledZoomMax"), jsInvoker),
55
+ bridging::fromJs<decltype(types.nativeNodeHandle)>(rt, value.getProperty(rt, "nativeNodeHandle"), jsInvoker)};
56
+ return result;
57
+ }
58
+
59
+ #ifdef DEBUG
60
+ static jsi::String dataUrlToJs(jsi::Runtime &rt, decltype(types.dataUrl) value) {
61
+ return bridging::toJs(rt, value);
62
+ }
63
+ static jsi::String parameterToJs(jsi::Runtime &rt, decltype(types.parameter) value) {
64
+ return bridging::toJs(rt, value);
65
+ }
66
+ static int timeIndexToJs(jsi::Runtime &rt, decltype(types.timeIndex) value) {
67
+ return bridging::toJs(rt, value);
68
+ }
69
+ static jsi::String colorMapToJs(jsi::Runtime &rt, decltype(types.colorMap) value) {
70
+ return bridging::toJs(rt, value);
71
+ }
72
+ static double opacityToJs(jsi::Runtime &rt, decltype(types.opacity) value) {
73
+ return bridging::toJs(rt, value);
74
+ }
75
+ static int zoomMinToJs(jsi::Runtime &rt, decltype(types.zoomMin) value) {
76
+ return bridging::toJs(rt, value);
77
+ }
78
+ static int zoomMaxToJs(jsi::Runtime &rt, decltype(types.zoomMax) value) {
79
+ return bridging::toJs(rt, value);
80
+ }
81
+ static int enabledZoomMinToJs(jsi::Runtime &rt, decltype(types.enabledZoomMin) value) {
82
+ return bridging::toJs(rt, value);
83
+ }
84
+ static int enabledZoomMaxToJs(jsi::Runtime &rt, decltype(types.enabledZoomMax) value) {
85
+ return bridging::toJs(rt, value);
86
+ }
87
+ static int nativeNodeHandleToJs(jsi::Runtime &rt, decltype(types.nativeNodeHandle) value) {
88
+ return bridging::toJs(rt, value);
89
+ }
90
+ #endif
91
+
92
+ static jsi::Object toJs(
93
+ jsi::Runtime &rt,
94
+ const T &value,
95
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
96
+ auto result = facebook::jsi::Object(rt);
97
+ if (value.dataUrl) {
98
+ result.setProperty(rt, "dataUrl", bridging::toJs(rt, value.dataUrl.value(), jsInvoker));
99
+ }
100
+ if (value.parameter) {
101
+ result.setProperty(rt, "parameter", bridging::toJs(rt, value.parameter.value(), jsInvoker));
102
+ }
103
+ if (value.timeIndex) {
104
+ result.setProperty(rt, "timeIndex", bridging::toJs(rt, value.timeIndex.value(), jsInvoker));
105
+ }
106
+ if (value.colorMap) {
107
+ result.setProperty(rt, "colorMap", bridging::toJs(rt, value.colorMap.value(), jsInvoker));
108
+ }
109
+ if (value.opacity) {
110
+ result.setProperty(rt, "opacity", bridging::toJs(rt, value.opacity.value(), jsInvoker));
111
+ }
112
+ if (value.zoomMin) {
113
+ result.setProperty(rt, "zoomMin", bridging::toJs(rt, value.zoomMin.value(), jsInvoker));
114
+ }
115
+ if (value.zoomMax) {
116
+ result.setProperty(rt, "zoomMax", bridging::toJs(rt, value.zoomMax.value(), jsInvoker));
117
+ }
118
+ if (value.enabledZoomMin) {
119
+ result.setProperty(rt, "enabledZoomMin", bridging::toJs(rt, value.enabledZoomMin.value(), jsInvoker));
120
+ }
121
+ if (value.enabledZoomMax) {
122
+ result.setProperty(rt, "enabledZoomMax", bridging::toJs(rt, value.enabledZoomMax.value(), jsInvoker));
123
+ }
124
+ if (value.nativeNodeHandle) {
125
+ result.setProperty(rt, "nativeNodeHandle", bridging::toJs(rt, value.nativeNodeHandle.value(), jsInvoker));
126
+ }
127
+ return result;
128
+ }
129
+ };
130
+
131
+
132
+
133
+ #pragma mark - NativeWeatherOverlayModuleParams
134
+
135
+ template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8>
136
+ struct NativeWeatherOverlayModuleParams {
137
+ P0 dataUrl{};
138
+ P1 parameter{};
139
+ P2 timeIndex{};
140
+ P3 colorMap{};
141
+ P4 opacity{};
142
+ P5 zoomMin{};
143
+ P6 zoomMax{};
144
+ P7 enabledZoomMin{};
145
+ P8 enabledZoomMax;
146
+ bool operator==(const NativeWeatherOverlayModuleParams &other) const {
147
+ return dataUrl == other.dataUrl && parameter == other.parameter && timeIndex == other.timeIndex && colorMap == other.colorMap && opacity == other.opacity && zoomMin == other.zoomMin && zoomMax == other.zoomMax && enabledZoomMin == other.enabledZoomMin && enabledZoomMax == other.enabledZoomMax;
148
+ }
149
+ };
150
+
151
+ template <typename T>
152
+ struct NativeWeatherOverlayModuleParamsBridging {
153
+ static T types;
154
+
155
+ static T fromJs(
156
+ jsi::Runtime &rt,
157
+ const jsi::Object &value,
158
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
159
+ T result{
160
+ bridging::fromJs<decltype(types.dataUrl)>(rt, value.getProperty(rt, "dataUrl"), jsInvoker),
161
+ bridging::fromJs<decltype(types.parameter)>(rt, value.getProperty(rt, "parameter"), jsInvoker),
162
+ bridging::fromJs<decltype(types.timeIndex)>(rt, value.getProperty(rt, "timeIndex"), jsInvoker),
163
+ bridging::fromJs<decltype(types.colorMap)>(rt, value.getProperty(rt, "colorMap"), jsInvoker),
164
+ bridging::fromJs<decltype(types.opacity)>(rt, value.getProperty(rt, "opacity"), jsInvoker),
165
+ bridging::fromJs<decltype(types.zoomMin)>(rt, value.getProperty(rt, "zoomMin"), jsInvoker),
166
+ bridging::fromJs<decltype(types.zoomMax)>(rt, value.getProperty(rt, "zoomMax"), jsInvoker),
167
+ bridging::fromJs<decltype(types.enabledZoomMin)>(rt, value.getProperty(rt, "enabledZoomMin"), jsInvoker),
168
+ bridging::fromJs<decltype(types.enabledZoomMax)>(rt, value.getProperty(rt, "enabledZoomMax"), jsInvoker)};
169
+ return result;
170
+ }
171
+
172
+ #ifdef DEBUG
173
+ static jsi::String dataUrlToJs(jsi::Runtime &rt, decltype(types.dataUrl) value) {
174
+ return bridging::toJs(rt, value);
175
+ }
176
+ static jsi::String parameterToJs(jsi::Runtime &rt, decltype(types.parameter) value) {
177
+ return bridging::toJs(rt, value);
178
+ }
179
+ static int timeIndexToJs(jsi::Runtime &rt, decltype(types.timeIndex) value) {
180
+ return bridging::toJs(rt, value);
181
+ }
182
+ static jsi::String colorMapToJs(jsi::Runtime &rt, decltype(types.colorMap) value) {
183
+ return bridging::toJs(rt, value);
184
+ }
185
+ static double opacityToJs(jsi::Runtime &rt, decltype(types.opacity) value) {
186
+ return bridging::toJs(rt, value);
187
+ }
188
+ static int zoomMinToJs(jsi::Runtime &rt, decltype(types.zoomMin) value) {
189
+ return bridging::toJs(rt, value);
190
+ }
191
+ static int zoomMaxToJs(jsi::Runtime &rt, decltype(types.zoomMax) value) {
192
+ return bridging::toJs(rt, value);
193
+ }
194
+ static int enabledZoomMinToJs(jsi::Runtime &rt, decltype(types.enabledZoomMin) value) {
195
+ return bridging::toJs(rt, value);
196
+ }
197
+ static int enabledZoomMaxToJs(jsi::Runtime &rt, decltype(types.enabledZoomMax) value) {
198
+ return bridging::toJs(rt, value);
199
+ }
200
+ #endif
201
+
202
+ static jsi::Object toJs(
203
+ jsi::Runtime &rt,
204
+ const T &value,
205
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
206
+ auto result = facebook::jsi::Object(rt);
207
+ if (value.dataUrl) {
208
+ result.setProperty(rt, "dataUrl", bridging::toJs(rt, value.dataUrl.value(), jsInvoker));
209
+ }
210
+ if (value.parameter) {
211
+ result.setProperty(rt, "parameter", bridging::toJs(rt, value.parameter.value(), jsInvoker));
212
+ }
213
+ if (value.timeIndex) {
214
+ result.setProperty(rt, "timeIndex", bridging::toJs(rt, value.timeIndex.value(), jsInvoker));
215
+ }
216
+ if (value.colorMap) {
217
+ result.setProperty(rt, "colorMap", bridging::toJs(rt, value.colorMap.value(), jsInvoker));
218
+ }
219
+ if (value.opacity) {
220
+ result.setProperty(rt, "opacity", bridging::toJs(rt, value.opacity.value(), jsInvoker));
221
+ }
222
+ if (value.zoomMin) {
223
+ result.setProperty(rt, "zoomMin", bridging::toJs(rt, value.zoomMin.value(), jsInvoker));
224
+ }
225
+ if (value.zoomMax) {
226
+ result.setProperty(rt, "zoomMax", bridging::toJs(rt, value.zoomMax.value(), jsInvoker));
227
+ }
228
+ if (value.enabledZoomMin) {
229
+ result.setProperty(rt, "enabledZoomMin", bridging::toJs(rt, value.enabledZoomMin.value(), jsInvoker));
230
+ }
231
+ if (value.enabledZoomMax) {
232
+ result.setProperty(rt, "enabledZoomMax", bridging::toJs(rt, value.enabledZoomMax.value(), jsInvoker));
233
+ }
234
+ return result;
235
+ }
236
+ };
237
+
238
+
239
+
240
+ #pragma mark - NativeWeatherOverlayRemoveLayerParams
241
+
242
+ template <typename P0, typename P1>
243
+ struct NativeWeatherOverlayRemoveLayerParams {
244
+ P0 nativeNodeHandle{};
245
+ P1 uuid;
246
+ bool operator==(const NativeWeatherOverlayRemoveLayerParams &other) const {
247
+ return nativeNodeHandle == other.nativeNodeHandle && uuid == other.uuid;
248
+ }
249
+ };
250
+
251
+ template <typename T>
252
+ struct NativeWeatherOverlayRemoveLayerParamsBridging {
253
+ static T types;
254
+
255
+ static T fromJs(
256
+ jsi::Runtime &rt,
257
+ const jsi::Object &value,
258
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
259
+ T result{
260
+ bridging::fromJs<decltype(types.nativeNodeHandle)>(rt, value.getProperty(rt, "nativeNodeHandle"), jsInvoker),
261
+ bridging::fromJs<decltype(types.uuid)>(rt, value.getProperty(rt, "uuid"), jsInvoker)};
262
+ return result;
263
+ }
264
+
265
+ #ifdef DEBUG
266
+ static int nativeNodeHandleToJs(jsi::Runtime &rt, decltype(types.nativeNodeHandle) value) {
267
+ return bridging::toJs(rt, value);
268
+ }
269
+ static jsi::String uuidToJs(jsi::Runtime &rt, decltype(types.uuid) value) {
270
+ return bridging::toJs(rt, value);
271
+ }
272
+ #endif
273
+
274
+ static jsi::Object toJs(
275
+ jsi::Runtime &rt,
276
+ const T &value,
277
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
278
+ auto result = facebook::jsi::Object(rt);
279
+ result.setProperty(rt, "nativeNodeHandle", bridging::toJs(rt, value.nativeNodeHandle, jsInvoker));
280
+ result.setProperty(rt, "uuid", bridging::toJs(rt, value.uuid, jsInvoker));
281
+ return result;
282
+ }
283
+ };
284
+
285
+
286
+
287
+ #pragma mark - NativeWeatherOverlaySetOpacityParams
288
+
289
+ template <typename P0, typename P1, typename P2>
290
+ struct NativeWeatherOverlaySetOpacityParams {
291
+ P0 nativeNodeHandle{};
292
+ P1 uuid{};
293
+ P2 opacity;
294
+ bool operator==(const NativeWeatherOverlaySetOpacityParams &other) const {
295
+ return nativeNodeHandle == other.nativeNodeHandle && uuid == other.uuid && opacity == other.opacity;
296
+ }
297
+ };
298
+
299
+ template <typename T>
300
+ struct NativeWeatherOverlaySetOpacityParamsBridging {
301
+ static T types;
302
+
303
+ static T fromJs(
304
+ jsi::Runtime &rt,
305
+ const jsi::Object &value,
306
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
307
+ T result{
308
+ bridging::fromJs<decltype(types.nativeNodeHandle)>(rt, value.getProperty(rt, "nativeNodeHandle"), jsInvoker),
309
+ bridging::fromJs<decltype(types.uuid)>(rt, value.getProperty(rt, "uuid"), jsInvoker),
310
+ bridging::fromJs<decltype(types.opacity)>(rt, value.getProperty(rt, "opacity"), jsInvoker)};
311
+ return result;
312
+ }
313
+
314
+ #ifdef DEBUG
315
+ static int nativeNodeHandleToJs(jsi::Runtime &rt, decltype(types.nativeNodeHandle) value) {
316
+ return bridging::toJs(rt, value);
317
+ }
318
+ static jsi::String uuidToJs(jsi::Runtime &rt, decltype(types.uuid) value) {
319
+ return bridging::toJs(rt, value);
320
+ }
321
+ static double opacityToJs(jsi::Runtime &rt, decltype(types.opacity) value) {
322
+ return bridging::toJs(rt, value);
323
+ }
324
+ #endif
325
+
326
+ static jsi::Object toJs(
327
+ jsi::Runtime &rt,
328
+ const T &value,
329
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
330
+ auto result = facebook::jsi::Object(rt);
331
+ result.setProperty(rt, "nativeNodeHandle", bridging::toJs(rt, value.nativeNodeHandle, jsInvoker));
332
+ result.setProperty(rt, "uuid", bridging::toJs(rt, value.uuid, jsInvoker));
333
+ if (value.opacity) {
334
+ result.setProperty(rt, "opacity", bridging::toJs(rt, value.opacity.value(), jsInvoker));
335
+ }
336
+ return result;
337
+ }
338
+ };
339
+
340
+
341
+
342
+ #pragma mark - NativeWeatherOverlaySetTimeIndexParams
343
+
344
+ template <typename P0, typename P1, typename P2>
345
+ struct NativeWeatherOverlaySetTimeIndexParams {
346
+ P0 nativeNodeHandle{};
347
+ P1 uuid{};
348
+ P2 timeIndex;
349
+ bool operator==(const NativeWeatherOverlaySetTimeIndexParams &other) const {
350
+ return nativeNodeHandle == other.nativeNodeHandle && uuid == other.uuid && timeIndex == other.timeIndex;
351
+ }
352
+ };
353
+
354
+ template <typename T>
355
+ struct NativeWeatherOverlaySetTimeIndexParamsBridging {
356
+ static T types;
357
+
358
+ static T fromJs(
359
+ jsi::Runtime &rt,
360
+ const jsi::Object &value,
361
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
362
+ T result{
363
+ bridging::fromJs<decltype(types.nativeNodeHandle)>(rt, value.getProperty(rt, "nativeNodeHandle"), jsInvoker),
364
+ bridging::fromJs<decltype(types.uuid)>(rt, value.getProperty(rt, "uuid"), jsInvoker),
365
+ bridging::fromJs<decltype(types.timeIndex)>(rt, value.getProperty(rt, "timeIndex"), jsInvoker)};
366
+ return result;
367
+ }
368
+
369
+ #ifdef DEBUG
370
+ static int nativeNodeHandleToJs(jsi::Runtime &rt, decltype(types.nativeNodeHandle) value) {
371
+ return bridging::toJs(rt, value);
372
+ }
373
+ static jsi::String uuidToJs(jsi::Runtime &rt, decltype(types.uuid) value) {
374
+ return bridging::toJs(rt, value);
375
+ }
376
+ static int timeIndexToJs(jsi::Runtime &rt, decltype(types.timeIndex) value) {
377
+ return bridging::toJs(rt, value);
378
+ }
379
+ #endif
380
+
381
+ static jsi::Object toJs(
382
+ jsi::Runtime &rt,
383
+ const T &value,
384
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
385
+ auto result = facebook::jsi::Object(rt);
386
+ result.setProperty(rt, "nativeNodeHandle", bridging::toJs(rt, value.nativeNodeHandle, jsInvoker));
387
+ result.setProperty(rt, "uuid", bridging::toJs(rt, value.uuid, jsInvoker));
388
+ result.setProperty(rt, "timeIndex", bridging::toJs(rt, value.timeIndex, jsInvoker));
389
+ return result;
390
+ }
391
+ };
392
+
393
+
394
+
395
+ #pragma mark - NativeWeatherOverlayUpdateEnabledZoomMinMaxParams
396
+
397
+ template <typename P0, typename P1, typename P2, typename P3>
398
+ struct NativeWeatherOverlayUpdateEnabledZoomMinMaxParams {
399
+ P0 nativeNodeHandle{};
400
+ P1 uuid{};
401
+ P2 enabledZoomMin{};
402
+ P3 enabledZoomMax;
403
+ bool operator==(const NativeWeatherOverlayUpdateEnabledZoomMinMaxParams &other) const {
404
+ return nativeNodeHandle == other.nativeNodeHandle && uuid == other.uuid && enabledZoomMin == other.enabledZoomMin && enabledZoomMax == other.enabledZoomMax;
405
+ }
406
+ };
407
+
408
+ template <typename T>
409
+ struct NativeWeatherOverlayUpdateEnabledZoomMinMaxParamsBridging {
410
+ static T types;
411
+
412
+ static T fromJs(
413
+ jsi::Runtime &rt,
414
+ const jsi::Object &value,
415
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
416
+ T result{
417
+ bridging::fromJs<decltype(types.nativeNodeHandle)>(rt, value.getProperty(rt, "nativeNodeHandle"), jsInvoker),
418
+ bridging::fromJs<decltype(types.uuid)>(rt, value.getProperty(rt, "uuid"), jsInvoker),
419
+ bridging::fromJs<decltype(types.enabledZoomMin)>(rt, value.getProperty(rt, "enabledZoomMin"), jsInvoker),
420
+ bridging::fromJs<decltype(types.enabledZoomMax)>(rt, value.getProperty(rt, "enabledZoomMax"), jsInvoker)};
421
+ return result;
422
+ }
423
+
424
+ #ifdef DEBUG
425
+ static int nativeNodeHandleToJs(jsi::Runtime &rt, decltype(types.nativeNodeHandle) value) {
426
+ return bridging::toJs(rt, value);
427
+ }
428
+ static jsi::String uuidToJs(jsi::Runtime &rt, decltype(types.uuid) value) {
429
+ return bridging::toJs(rt, value);
430
+ }
431
+ static int enabledZoomMinToJs(jsi::Runtime &rt, decltype(types.enabledZoomMin) value) {
432
+ return bridging::toJs(rt, value);
433
+ }
434
+ static int enabledZoomMaxToJs(jsi::Runtime &rt, decltype(types.enabledZoomMax) value) {
435
+ return bridging::toJs(rt, value);
436
+ }
437
+ #endif
438
+
439
+ static jsi::Object toJs(
440
+ jsi::Runtime &rt,
441
+ const T &value,
442
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
443
+ auto result = facebook::jsi::Object(rt);
444
+ result.setProperty(rt, "nativeNodeHandle", bridging::toJs(rt, value.nativeNodeHandle, jsInvoker));
445
+ result.setProperty(rt, "uuid", bridging::toJs(rt, value.uuid, jsInvoker));
446
+ if (value.enabledZoomMin) {
447
+ result.setProperty(rt, "enabledZoomMin", bridging::toJs(rt, value.enabledZoomMin.value(), jsInvoker));
448
+ }
449
+ if (value.enabledZoomMax) {
450
+ result.setProperty(rt, "enabledZoomMax", bridging::toJs(rt, value.enabledZoomMax.value(), jsInvoker));
451
+ }
452
+ return result;
453
+ }
454
+ };
455
+
456
+
457
+ template <typename T>
458
+ class JSI_EXPORT NativeWeatherOverlayCxxSpec : public TurboModule {
459
+ public:
460
+ static constexpr std::string_view kModuleName = "WeatherOverlay";
461
+
462
+ protected:
463
+ NativeWeatherOverlayCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeWeatherOverlayCxxSpec::kModuleName}, jsInvoker) {
464
+ methodMap_["getConstants"] = MethodMetadata {.argCount = 0, .invoker = __getConstants};
465
+ methodMap_["createLayer"] = MethodMetadata {.argCount = 1, .invoker = __createLayer};
466
+ methodMap_["removeLayer"] = MethodMetadata {.argCount = 1, .invoker = __removeLayer};
467
+ methodMap_["updateEnabledZoomMinMax"] = MethodMetadata {.argCount = 1, .invoker = __updateEnabledZoomMinMax};
468
+ methodMap_["setOpacity"] = MethodMetadata {.argCount = 1, .invoker = __setOpacity};
469
+ methodMap_["setTimeIndex"] = MethodMetadata {.argCount = 1, .invoker = __setTimeIndex};
470
+ }
471
+
472
+ private:
473
+ static jsi::Value __getConstants(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
474
+ static_assert(
475
+ bridging::getParameterCount(&T::getConstants) == 1,
476
+ "Expected getConstants(...) to have 1 parameters");
477
+ return bridging::callFromJs<jsi::Object>(rt, &T::getConstants, static_cast<NativeWeatherOverlayCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
478
+ }
479
+
480
+ static jsi::Value __createLayer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
481
+ static_assert(
482
+ bridging::getParameterCount(&T::createLayer) == 2,
483
+ "Expected createLayer(...) to have 2 parameters");
484
+ return bridging::callFromJs<jsi::Value>(rt, &T::createLayer, static_cast<NativeWeatherOverlayCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
485
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
486
+ }
487
+
488
+ static jsi::Value __removeLayer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
489
+ static_assert(
490
+ bridging::getParameterCount(&T::removeLayer) == 2,
491
+ "Expected removeLayer(...) to have 2 parameters");
492
+ return bridging::callFromJs<jsi::Value>(rt, &T::removeLayer, static_cast<NativeWeatherOverlayCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
493
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
494
+ }
495
+
496
+ static jsi::Value __updateEnabledZoomMinMax(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
497
+ static_assert(
498
+ bridging::getParameterCount(&T::updateEnabledZoomMinMax) == 2,
499
+ "Expected updateEnabledZoomMinMax(...) to have 2 parameters");
500
+ return bridging::callFromJs<jsi::Value>(rt, &T::updateEnabledZoomMinMax, static_cast<NativeWeatherOverlayCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
501
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
502
+ }
503
+
504
+ static jsi::Value __setOpacity(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
505
+ static_assert(
506
+ bridging::getParameterCount(&T::setOpacity) == 2,
507
+ "Expected setOpacity(...) to have 2 parameters");
508
+ return bridging::callFromJs<jsi::Value>(rt, &T::setOpacity, static_cast<NativeWeatherOverlayCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
509
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
510
+ }
511
+
512
+ static jsi::Value __setTimeIndex(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
513
+ static_assert(
514
+ bridging::getParameterCount(&T::setTimeIndex) == 2,
515
+ "Expected setTimeIndex(...) to have 2 parameters");
516
+ return bridging::callFromJs<jsi::Value>(rt, &T::setTimeIndex, static_cast<NativeWeatherOverlayCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
517
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
518
+ }
519
+ };
520
+
521
+ } // namespace facebook::react
@@ -0,0 +1,5 @@
1
+ MapsforgeVtmExtGrib_kotlinVersion=2.1.20
2
+ MapsforgeVtmExtGrib_minSdkVersion=24
3
+ MapsforgeVtmExtGrib_targetSdkVersion=36
4
+ MapsforgeVtmExtGrib_compileSdkVersion=36
5
+ MapsforgeVtmExtGrib_ndkVersion=27.1.12297006
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ </manifest>
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ </manifest>
@@ -0,0 +1,62 @@
1
+ package com.jhotadhari.reactnative.mapsforge.vtm.ext.grib;
2
+
3
+ import androidx.annotation.NonNull;
4
+
5
+ import com.facebook.react.BaseReactPackage;
6
+ import com.facebook.react.ReactPackage;
7
+ import com.facebook.react.bridge.NativeModule;
8
+ import com.facebook.react.bridge.ReactApplicationContext;
9
+ import com.facebook.react.module.model.ReactModuleInfo;
10
+ import com.facebook.react.module.model.ReactModuleInfoProvider;
11
+ import com.jhotadhari.reactnative.mapsforge.vtm.ext.grib.modules.WeatherOverlay;
12
+
13
+ import java.util.ArrayList;
14
+ import java.util.HashMap;
15
+ import java.util.List;
16
+ import java.util.Map;
17
+
18
+ // "implements ReactPackage" is redundant (BaseReactPackage already implements it) but required
19
+ // for the react-native CLI's autolinking regex to detect this as the module's package class.
20
+ public class ExtGribPackage extends BaseReactPackage implements ReactPackage {
21
+
22
+ @NonNull
23
+ @Override
24
+ public List<com.facebook.react.uimanager.ViewManager> createViewManagers(
25
+ @NonNull ReactApplicationContext reactContext
26
+ ) {
27
+ // No custom views in this extension — only a TurboModule.
28
+ return new ArrayList<>();
29
+ }
30
+
31
+ @Override
32
+ public NativeModule getModule(
33
+ @NonNull String s,
34
+ @NonNull ReactApplicationContext reactApplicationContext
35
+ ) {
36
+ if (WeatherOverlay.NAME.equals(s)) {
37
+ return new WeatherOverlay(reactApplicationContext);
38
+ }
39
+ return null;
40
+ }
41
+
42
+ @NonNull
43
+ @Override
44
+ public ReactModuleInfoProvider getReactModuleInfoProvider() {
45
+ return new ReactModuleInfoProvider() {
46
+ @NonNull
47
+ @Override
48
+ public Map<String, ReactModuleInfo> getReactModuleInfos() {
49
+ Map<String, ReactModuleInfo> map = new HashMap<>();
50
+ map.put(WeatherOverlay.NAME, new ReactModuleInfo(
51
+ WeatherOverlay.NAME,
52
+ WeatherOverlay.NAME,
53
+ false, // canOverrideExistingModule
54
+ false, // needsEagerInit
55
+ false, // isCxxModule
56
+ true // isTurboModule
57
+ ));
58
+ return map;
59
+ }
60
+ };
61
+ }
62
+ }