react-native-google-maps-plus 1.0.3-dev.1 → 1.1.0-dev.2

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 (92) hide show
  1. package/RNGoogleMapsPlus.podspec +2 -0
  2. package/android/src/main/java/com/rngooglemapsplus/GoogleMapsViewImpl.kt +122 -29
  3. package/android/src/main/java/com/rngooglemapsplus/LocationHandler.kt +44 -44
  4. package/android/src/main/java/com/rngooglemapsplus/{MapCircle.kt → MapCircleBuilder.kt} +2 -12
  5. package/android/src/main/java/com/rngooglemapsplus/{MapMarker.kt → MapMarkerBuilder.kt} +23 -27
  6. package/android/src/main/java/com/rngooglemapsplus/{MapPolygon.kt → MapPolygonBuilder.kt} +2 -18
  7. package/android/src/main/java/com/rngooglemapsplus/{MapPolyline.kt → MapPolylineBuilder.kt.kt} +2 -19
  8. package/android/src/main/java/com/rngooglemapsplus/RNGoogleMapsPlusView.kt +45 -54
  9. package/android/src/main/java/com/rngooglemapsplus/extensions/RNCameraExtension.kt +19 -0
  10. package/android/src/main/java/com/rngooglemapsplus/extensions/RNLocationPriorityExtension.kt +12 -0
  11. package/android/src/main/java/com/rngooglemapsplus/extensions/RNMapCircleExtension.kt +14 -0
  12. package/android/src/main/java/com/rngooglemapsplus/extensions/RNMarkerExtension.kt +17 -0
  13. package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolygonExtension.kt +20 -0
  14. package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolylineExtension.kt +21 -0
  15. package/android/src/main/java/com/rngooglemapsplus/extensions/RNUserInterfaceExtension.kt +12 -0
  16. package/android/src/main/java/com/rngooglemapsplus/{Color.kt → extensions/StringExtension.kt} +1 -1
  17. package/android/src/main/java/com/rngooglemapsplus/extensions/ThrowableExtension.kt +38 -0
  18. package/ios/GoogleMapViewImpl.swift +165 -22
  19. package/ios/LocationHandler.swift +29 -69
  20. package/ios/MapCircleBuilder.swift +20 -0
  21. package/ios/{MapMarker.swift → MapMarkerBuilder.swift} +17 -32
  22. package/ios/MapPolygonBuilder.swift +20 -0
  23. package/ios/MapPolylineBuilder.swift +24 -0
  24. package/ios/RNGoogleMapsPlusView.swift +63 -116
  25. package/ios/extensions/RNCamera+Extension.swift +22 -0
  26. package/ios/{MapCircle.swift → extensions/RNCircle+Extension.swift} +0 -19
  27. package/ios/extensions/RNIOSLocationAccuracy+Extensions.swift +19 -0
  28. package/ios/extensions/RNMarker+Extension.swift +25 -0
  29. package/ios/{MapPolygon.swift → extensions/RNPolygon+Extension.swift.swift} +0 -19
  30. package/ios/{MapPolyline.swift → extensions/RNPolyline+Extension.swift.swift} +16 -39
  31. package/ios/extensions/RNUserInterface+Extension.swift +16 -0
  32. package/lib/module/types.js +14 -0
  33. package/lib/module/types.js.map +1 -1
  34. package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts +5 -1
  35. package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -1
  36. package/lib/typescript/src/types.d.ts +43 -2
  37. package/lib/typescript/src/types.d.ts.map +1 -1
  38. package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.cpp +64 -0
  39. package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.hpp +8 -0
  40. package/nitrogen/generated/android/c++/JRNAndroidLocationConfig.hpp +63 -0
  41. package/nitrogen/generated/android/c++/JRNAndroidLocationPriority.hpp +65 -0
  42. package/nitrogen/generated/android/c++/JRNIOSLocationAccuracy.hpp +65 -0
  43. package/nitrogen/generated/android/c++/JRNIOSLocationConfig.hpp +59 -0
  44. package/nitrogen/generated/android/c++/JRNInitialProps.hpp +4 -4
  45. package/nitrogen/generated/android/c++/JRNLocationConfig.hpp +65 -0
  46. package/nitrogen/generated/android/c++/JRNMapUiSettings.hpp +93 -0
  47. package/nitrogen/generated/android/c++/JRNMarker.hpp +6 -12
  48. package/nitrogen/generated/android/c++/JRNMarkerSvg.hpp +61 -0
  49. package/nitrogen/generated/android/c++/views/JHybridRNGoogleMapsPlusViewStateUpdater.cpp +16 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt +24 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationConfig.kt +35 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationPriority.kt +23 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationAccuracy.kt +23 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationConfig.kt +32 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNInitialProps.kt +1 -1
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNLocationConfig.kt +32 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapUiSettings.kt +59 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMarker.kt +1 -7
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMarkerSvg.kt +35 -0
  60. package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp +126 -0
  61. package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +21 -0
  62. package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.hpp +49 -0
  63. package/nitrogen/generated/ios/c++/views/HybridRNGoogleMapsPlusViewComponent.mm +20 -0
  64. package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +4 -0
  65. package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec_cxx.swift +82 -0
  66. package/nitrogen/generated/ios/swift/RNAndroidLocationConfig.swift +93 -0
  67. package/nitrogen/generated/ios/swift/RNAndroidLocationPriority.swift +48 -0
  68. package/nitrogen/generated/ios/swift/RNIOSLocationAccuracy.swift +48 -0
  69. package/nitrogen/generated/ios/swift/RNIOSLocationConfig.swift +70 -0
  70. package/nitrogen/generated/ios/swift/RNInitialProps.swift +6 -6
  71. package/nitrogen/generated/ios/swift/RNLocationConfig.swift +84 -0
  72. package/nitrogen/generated/ios/swift/RNMapUiSettings.swift +277 -0
  73. package/nitrogen/generated/ios/swift/RNMarker.swift +24 -27
  74. package/nitrogen/generated/ios/swift/RNMarkerSvg.swift +57 -0
  75. package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +8 -0
  76. package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.hpp +14 -0
  77. package/nitrogen/generated/shared/c++/RNAndroidLocationConfig.hpp +77 -0
  78. package/nitrogen/generated/shared/c++/RNAndroidLocationPriority.hpp +64 -0
  79. package/nitrogen/generated/shared/c++/RNIOSLocationAccuracy.hpp +64 -0
  80. package/nitrogen/generated/shared/c++/RNIOSLocationConfig.hpp +73 -0
  81. package/nitrogen/generated/shared/c++/RNInitialProps.hpp +5 -5
  82. package/nitrogen/generated/shared/c++/RNLocationConfig.hpp +76 -0
  83. package/nitrogen/generated/shared/c++/RNMapUiSettings.hpp +107 -0
  84. package/nitrogen/generated/shared/c++/RNMarker.hpp +8 -13
  85. package/nitrogen/generated/shared/c++/RNMarkerSvg.hpp +75 -0
  86. package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.cpp +48 -0
  87. package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +6 -0
  88. package/nitrogen/generated/shared/json/RNGoogleMapsPlusViewConfig.json +4 -0
  89. package/package.json +1 -1
  90. package/src/RNGoogleMapsPlusView.nitro.ts +6 -0
  91. package/src/types.ts +49 -2
  92. /package/ios/{Color.swift → extensions/String+Extensions.swift} +0 -0
@@ -40,12 +40,12 @@ namespace margelo::nitro::rngooglemapsplus {
40
40
  jni::local_ref<jni::JString> mapId = this->getFieldValue(fieldMapId);
41
41
  static const auto fieldLiteMode = clazz->getField<jni::JBoolean>("liteMode");
42
42
  jni::local_ref<jni::JBoolean> liteMode = this->getFieldValue(fieldLiteMode);
43
- static const auto fieldInitialCamera = clazz->getField<JRNCamera>("initialCamera");
44
- jni::local_ref<JRNCamera> initialCamera = this->getFieldValue(fieldInitialCamera);
43
+ static const auto fieldCamera = clazz->getField<JRNCamera>("camera");
44
+ jni::local_ref<JRNCamera> camera = this->getFieldValue(fieldCamera);
45
45
  return RNInitialProps(
46
46
  mapId != nullptr ? std::make_optional(mapId->toStdString()) : std::nullopt,
47
47
  liteMode != nullptr ? std::make_optional(static_cast<bool>(liteMode->value())) : std::nullopt,
48
- initialCamera != nullptr ? std::make_optional(initialCamera->toCpp()) : std::nullopt
48
+ camera != nullptr ? std::make_optional(camera->toCpp()) : std::nullopt
49
49
  );
50
50
  }
51
51
 
@@ -58,7 +58,7 @@ namespace margelo::nitro::rngooglemapsplus {
58
58
  return newInstance(
59
59
  value.mapId.has_value() ? jni::make_jstring(value.mapId.value()) : nullptr,
60
60
  value.liteMode.has_value() ? jni::JBoolean::valueOf(value.liteMode.value()) : nullptr,
61
- value.initialCamera.has_value() ? JRNCamera::fromCpp(value.initialCamera.value()) : nullptr
61
+ value.camera.has_value() ? JRNCamera::fromCpp(value.camera.value()) : nullptr
62
62
  );
63
63
  }
64
64
  };
@@ -0,0 +1,65 @@
1
+ ///
2
+ /// JRNLocationConfig.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 "RNLocationConfig.hpp"
12
+
13
+ #include "JRNAndroidLocationConfig.hpp"
14
+ #include "JRNAndroidLocationPriority.hpp"
15
+ #include "JRNIOSLocationAccuracy.hpp"
16
+ #include "JRNIOSLocationConfig.hpp"
17
+ #include "RNAndroidLocationConfig.hpp"
18
+ #include "RNAndroidLocationPriority.hpp"
19
+ #include "RNIOSLocationAccuracy.hpp"
20
+ #include "RNIOSLocationConfig.hpp"
21
+ #include <optional>
22
+
23
+ namespace margelo::nitro::rngooglemapsplus {
24
+
25
+ using namespace facebook;
26
+
27
+ /**
28
+ * The C++ JNI bridge between the C++ struct "RNLocationConfig" and the the Kotlin data class "RNLocationConfig".
29
+ */
30
+ struct JRNLocationConfig final: public jni::JavaClass<JRNLocationConfig> {
31
+ public:
32
+ static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNLocationConfig;";
33
+
34
+ public:
35
+ /**
36
+ * Convert this Java/Kotlin-based struct to the C++ struct RNLocationConfig by copying all values to C++.
37
+ */
38
+ [[maybe_unused]]
39
+ [[nodiscard]]
40
+ RNLocationConfig toCpp() const {
41
+ static const auto clazz = javaClassStatic();
42
+ static const auto fieldAndroid = clazz->getField<JRNAndroidLocationConfig>("android");
43
+ jni::local_ref<JRNAndroidLocationConfig> android = this->getFieldValue(fieldAndroid);
44
+ static const auto fieldIos = clazz->getField<JRNIOSLocationConfig>("ios");
45
+ jni::local_ref<JRNIOSLocationConfig> ios = this->getFieldValue(fieldIos);
46
+ return RNLocationConfig(
47
+ android != nullptr ? std::make_optional(android->toCpp()) : std::nullopt,
48
+ ios != nullptr ? std::make_optional(ios->toCpp()) : std::nullopt
49
+ );
50
+ }
51
+
52
+ public:
53
+ /**
54
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
55
+ */
56
+ [[maybe_unused]]
57
+ static jni::local_ref<JRNLocationConfig::javaobject> fromCpp(const RNLocationConfig& value) {
58
+ return newInstance(
59
+ value.android.has_value() ? JRNAndroidLocationConfig::fromCpp(value.android.value()) : nullptr,
60
+ value.ios.has_value() ? JRNIOSLocationConfig::fromCpp(value.ios.value()) : nullptr
61
+ );
62
+ }
63
+ };
64
+
65
+ } // namespace margelo::nitro::rngooglemapsplus
@@ -0,0 +1,93 @@
1
+ ///
2
+ /// JRNMapUiSettings.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 "RNMapUiSettings.hpp"
12
+
13
+ #include <optional>
14
+
15
+ namespace margelo::nitro::rngooglemapsplus {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "RNMapUiSettings" and the the Kotlin data class "RNMapUiSettings".
21
+ */
22
+ struct JRNMapUiSettings final: public jni::JavaClass<JRNMapUiSettings> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNMapUiSettings;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct RNMapUiSettings by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ RNMapUiSettings toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldAllGesturesEnabled = clazz->getField<jni::JBoolean>("allGesturesEnabled");
35
+ jni::local_ref<jni::JBoolean> allGesturesEnabled = this->getFieldValue(fieldAllGesturesEnabled);
36
+ static const auto fieldCompassEnabled = clazz->getField<jni::JBoolean>("compassEnabled");
37
+ jni::local_ref<jni::JBoolean> compassEnabled = this->getFieldValue(fieldCompassEnabled);
38
+ static const auto fieldIndoorLevelPickerEnabled = clazz->getField<jni::JBoolean>("indoorLevelPickerEnabled");
39
+ jni::local_ref<jni::JBoolean> indoorLevelPickerEnabled = this->getFieldValue(fieldIndoorLevelPickerEnabled);
40
+ static const auto fieldMapToolbarEnabled = clazz->getField<jni::JBoolean>("mapToolbarEnabled");
41
+ jni::local_ref<jni::JBoolean> mapToolbarEnabled = this->getFieldValue(fieldMapToolbarEnabled);
42
+ static const auto fieldMyLocationButtonEnabled = clazz->getField<jni::JBoolean>("myLocationButtonEnabled");
43
+ jni::local_ref<jni::JBoolean> myLocationButtonEnabled = this->getFieldValue(fieldMyLocationButtonEnabled);
44
+ static const auto fieldRotateEnabled = clazz->getField<jni::JBoolean>("rotateEnabled");
45
+ jni::local_ref<jni::JBoolean> rotateEnabled = this->getFieldValue(fieldRotateEnabled);
46
+ static const auto fieldScrollEnabled = clazz->getField<jni::JBoolean>("scrollEnabled");
47
+ jni::local_ref<jni::JBoolean> scrollEnabled = this->getFieldValue(fieldScrollEnabled);
48
+ static const auto fieldScrollDuringRotateOrZoomEnabled = clazz->getField<jni::JBoolean>("scrollDuringRotateOrZoomEnabled");
49
+ jni::local_ref<jni::JBoolean> scrollDuringRotateOrZoomEnabled = this->getFieldValue(fieldScrollDuringRotateOrZoomEnabled);
50
+ static const auto fieldTiltEnabled = clazz->getField<jni::JBoolean>("tiltEnabled");
51
+ jni::local_ref<jni::JBoolean> tiltEnabled = this->getFieldValue(fieldTiltEnabled);
52
+ static const auto fieldZoomControlsEnabled = clazz->getField<jni::JBoolean>("zoomControlsEnabled");
53
+ jni::local_ref<jni::JBoolean> zoomControlsEnabled = this->getFieldValue(fieldZoomControlsEnabled);
54
+ static const auto fieldZoomGesturesEnabled = clazz->getField<jni::JBoolean>("zoomGesturesEnabled");
55
+ jni::local_ref<jni::JBoolean> zoomGesturesEnabled = this->getFieldValue(fieldZoomGesturesEnabled);
56
+ return RNMapUiSettings(
57
+ allGesturesEnabled != nullptr ? std::make_optional(static_cast<bool>(allGesturesEnabled->value())) : std::nullopt,
58
+ compassEnabled != nullptr ? std::make_optional(static_cast<bool>(compassEnabled->value())) : std::nullopt,
59
+ indoorLevelPickerEnabled != nullptr ? std::make_optional(static_cast<bool>(indoorLevelPickerEnabled->value())) : std::nullopt,
60
+ mapToolbarEnabled != nullptr ? std::make_optional(static_cast<bool>(mapToolbarEnabled->value())) : std::nullopt,
61
+ myLocationButtonEnabled != nullptr ? std::make_optional(static_cast<bool>(myLocationButtonEnabled->value())) : std::nullopt,
62
+ rotateEnabled != nullptr ? std::make_optional(static_cast<bool>(rotateEnabled->value())) : std::nullopt,
63
+ scrollEnabled != nullptr ? std::make_optional(static_cast<bool>(scrollEnabled->value())) : std::nullopt,
64
+ scrollDuringRotateOrZoomEnabled != nullptr ? std::make_optional(static_cast<bool>(scrollDuringRotateOrZoomEnabled->value())) : std::nullopt,
65
+ tiltEnabled != nullptr ? std::make_optional(static_cast<bool>(tiltEnabled->value())) : std::nullopt,
66
+ zoomControlsEnabled != nullptr ? std::make_optional(static_cast<bool>(zoomControlsEnabled->value())) : std::nullopt,
67
+ zoomGesturesEnabled != nullptr ? std::make_optional(static_cast<bool>(zoomGesturesEnabled->value())) : std::nullopt
68
+ );
69
+ }
70
+
71
+ public:
72
+ /**
73
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
74
+ */
75
+ [[maybe_unused]]
76
+ static jni::local_ref<JRNMapUiSettings::javaobject> fromCpp(const RNMapUiSettings& value) {
77
+ return newInstance(
78
+ value.allGesturesEnabled.has_value() ? jni::JBoolean::valueOf(value.allGesturesEnabled.value()) : nullptr,
79
+ value.compassEnabled.has_value() ? jni::JBoolean::valueOf(value.compassEnabled.value()) : nullptr,
80
+ value.indoorLevelPickerEnabled.has_value() ? jni::JBoolean::valueOf(value.indoorLevelPickerEnabled.value()) : nullptr,
81
+ value.mapToolbarEnabled.has_value() ? jni::JBoolean::valueOf(value.mapToolbarEnabled.value()) : nullptr,
82
+ value.myLocationButtonEnabled.has_value() ? jni::JBoolean::valueOf(value.myLocationButtonEnabled.value()) : nullptr,
83
+ value.rotateEnabled.has_value() ? jni::JBoolean::valueOf(value.rotateEnabled.value()) : nullptr,
84
+ value.scrollEnabled.has_value() ? jni::JBoolean::valueOf(value.scrollEnabled.value()) : nullptr,
85
+ value.scrollDuringRotateOrZoomEnabled.has_value() ? jni::JBoolean::valueOf(value.scrollDuringRotateOrZoomEnabled.value()) : nullptr,
86
+ value.tiltEnabled.has_value() ? jni::JBoolean::valueOf(value.tiltEnabled.value()) : nullptr,
87
+ value.zoomControlsEnabled.has_value() ? jni::JBoolean::valueOf(value.zoomControlsEnabled.value()) : nullptr,
88
+ value.zoomGesturesEnabled.has_value() ? jni::JBoolean::valueOf(value.zoomGesturesEnabled.value()) : nullptr
89
+ );
90
+ }
91
+ };
92
+
93
+ } // namespace margelo::nitro::rngooglemapsplus
@@ -11,8 +11,10 @@
11
11
  #include "RNMarker.hpp"
12
12
 
13
13
  #include "JRNLatLng.hpp"
14
+ #include "JRNMarkerSvg.hpp"
14
15
  #include "JRNPosition.hpp"
15
16
  #include "RNLatLng.hpp"
17
+ #include "RNMarkerSvg.hpp"
16
18
  #include "RNPosition.hpp"
17
19
  #include <optional>
18
20
  #include <string>
@@ -44,20 +46,14 @@ namespace margelo::nitro::rngooglemapsplus {
44
46
  jni::local_ref<JRNLatLng> coordinate = this->getFieldValue(fieldCoordinate);
45
47
  static const auto fieldAnchor = clazz->getField<JRNPosition>("anchor");
46
48
  jni::local_ref<JRNPosition> anchor = this->getFieldValue(fieldAnchor);
47
- static const auto fieldWidth = clazz->getField<double>("width");
48
- double width = this->getFieldValue(fieldWidth);
49
- static const auto fieldHeight = clazz->getField<double>("height");
50
- double height = this->getFieldValue(fieldHeight);
51
- static const auto fieldIconSvg = clazz->getField<jni::JString>("iconSvg");
52
- jni::local_ref<jni::JString> iconSvg = this->getFieldValue(fieldIconSvg);
49
+ static const auto fieldIconSvg = clazz->getField<JRNMarkerSvg>("iconSvg");
50
+ jni::local_ref<JRNMarkerSvg> iconSvg = this->getFieldValue(fieldIconSvg);
53
51
  return RNMarker(
54
52
  id->toStdString(),
55
53
  zIndex != nullptr ? std::make_optional(zIndex->value()) : std::nullopt,
56
54
  coordinate->toCpp(),
57
55
  anchor != nullptr ? std::make_optional(anchor->toCpp()) : std::nullopt,
58
- width,
59
- height,
60
- iconSvg->toStdString()
56
+ iconSvg != nullptr ? std::make_optional(iconSvg->toCpp()) : std::nullopt
61
57
  );
62
58
  }
63
59
 
@@ -72,9 +68,7 @@ namespace margelo::nitro::rngooglemapsplus {
72
68
  value.zIndex.has_value() ? jni::JDouble::valueOf(value.zIndex.value()) : nullptr,
73
69
  JRNLatLng::fromCpp(value.coordinate),
74
70
  value.anchor.has_value() ? JRNPosition::fromCpp(value.anchor.value()) : nullptr,
75
- value.width,
76
- value.height,
77
- jni::make_jstring(value.iconSvg)
71
+ value.iconSvg.has_value() ? JRNMarkerSvg::fromCpp(value.iconSvg.value()) : nullptr
78
72
  );
79
73
  }
80
74
  };
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JRNMarkerSvg.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 "RNMarkerSvg.hpp"
12
+
13
+ #include <string>
14
+
15
+ namespace margelo::nitro::rngooglemapsplus {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "RNMarkerSvg" and the the Kotlin data class "RNMarkerSvg".
21
+ */
22
+ struct JRNMarkerSvg final: public jni::JavaClass<JRNMarkerSvg> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNMarkerSvg;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct RNMarkerSvg by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ RNMarkerSvg toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldWidth = clazz->getField<double>("width");
35
+ double width = this->getFieldValue(fieldWidth);
36
+ static const auto fieldHeight = clazz->getField<double>("height");
37
+ double height = this->getFieldValue(fieldHeight);
38
+ static const auto fieldSvgString = clazz->getField<jni::JString>("svgString");
39
+ jni::local_ref<jni::JString> svgString = this->getFieldValue(fieldSvgString);
40
+ return RNMarkerSvg(
41
+ width,
42
+ height,
43
+ svgString->toStdString()
44
+ );
45
+ }
46
+
47
+ public:
48
+ /**
49
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
50
+ */
51
+ [[maybe_unused]]
52
+ static jni::local_ref<JRNMarkerSvg::javaobject> fromCpp(const RNMarkerSvg& value) {
53
+ return newInstance(
54
+ value.width,
55
+ value.height,
56
+ jni::make_jstring(value.svgString)
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::rngooglemapsplus
@@ -40,6 +40,14 @@ void JHybridRNGoogleMapsPlusViewStateUpdater::updateViewProps(jni::alias_ref<jni
40
40
  view->setInitialProps(props.initialProps.value);
41
41
  // TODO: Set isDirty = false
42
42
  }
43
+ if (props.uiSettings.isDirty) {
44
+ view->setUiSettings(props.uiSettings.value);
45
+ // TODO: Set isDirty = false
46
+ }
47
+ if (props.myLocationEnabled.isDirty) {
48
+ view->setMyLocationEnabled(props.myLocationEnabled.value);
49
+ // TODO: Set isDirty = false
50
+ }
43
51
  if (props.buildingEnabled.isDirty) {
44
52
  view->setBuildingEnabled(props.buildingEnabled.value);
45
53
  // TODO: Set isDirty = false
@@ -48,6 +56,10 @@ void JHybridRNGoogleMapsPlusViewStateUpdater::updateViewProps(jni::alias_ref<jni
48
56
  view->setTrafficEnabled(props.trafficEnabled.value);
49
57
  // TODO: Set isDirty = false
50
58
  }
59
+ if (props.indoorEnabled.isDirty) {
60
+ view->setIndoorEnabled(props.indoorEnabled.value);
61
+ // TODO: Set isDirty = false
62
+ }
51
63
  if (props.customMapStyle.isDirty) {
52
64
  view->setCustomMapStyle(props.customMapStyle.value);
53
65
  // TODO: Set isDirty = false
@@ -88,6 +100,10 @@ void JHybridRNGoogleMapsPlusViewStateUpdater::updateViewProps(jni::alias_ref<jni
88
100
  view->setCircles(props.circles.value);
89
101
  // TODO: Set isDirty = false
90
102
  }
103
+ if (props.locationConfig.isDirty) {
104
+ view->setLocationConfig(props.locationConfig.value);
105
+ // TODO: Set isDirty = false
106
+ }
91
107
  if (props.onMapError.isDirty) {
92
108
  view->setOnMapError(props.onMapError.value);
93
109
  // TODO: Set isDirty = false
@@ -44,6 +44,18 @@ abstract class HybridRNGoogleMapsPlusViewSpec: HybridView() {
44
44
  @set:Keep
45
45
  abstract var initialProps: RNInitialProps?
46
46
 
47
+ @get:DoNotStrip
48
+ @get:Keep
49
+ @set:DoNotStrip
50
+ @set:Keep
51
+ abstract var uiSettings: RNMapUiSettings?
52
+
53
+ @get:DoNotStrip
54
+ @get:Keep
55
+ @set:DoNotStrip
56
+ @set:Keep
57
+ abstract var myLocationEnabled: Boolean?
58
+
47
59
  @get:DoNotStrip
48
60
  @get:Keep
49
61
  @set:DoNotStrip
@@ -56,6 +68,12 @@ abstract class HybridRNGoogleMapsPlusViewSpec: HybridView() {
56
68
  @set:Keep
57
69
  abstract var trafficEnabled: Boolean?
58
70
 
71
+ @get:DoNotStrip
72
+ @get:Keep
73
+ @set:DoNotStrip
74
+ @set:Keep
75
+ abstract var indoorEnabled: Boolean?
76
+
59
77
  @get:DoNotStrip
60
78
  @get:Keep
61
79
  @set:DoNotStrip
@@ -116,6 +134,12 @@ abstract class HybridRNGoogleMapsPlusViewSpec: HybridView() {
116
134
  @set:Keep
117
135
  abstract var circles: Array<RNCircle>?
118
136
 
137
+ @get:DoNotStrip
138
+ @get:Keep
139
+ @set:DoNotStrip
140
+ @set:Keep
141
+ abstract var locationConfig: RNLocationConfig?
142
+
119
143
  abstract var onMapError: ((error: RNMapErrorCode) -> Unit)?
120
144
 
121
145
  private var onMapError_cxx: Func_void_RNMapErrorCode?
@@ -0,0 +1,35 @@
1
+ ///
2
+ /// RNAndroidLocationConfig.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.margelo.nitro.core.*
13
+
14
+
15
+ /**
16
+ * Represents the JavaScript object/struct "RNAndroidLocationConfig".
17
+ */
18
+ @DoNotStrip
19
+ @Keep
20
+ data class RNAndroidLocationConfig
21
+ @DoNotStrip
22
+ @Keep
23
+ constructor(
24
+ @DoNotStrip
25
+ @Keep
26
+ val priority: RNAndroidLocationPriority?,
27
+ @DoNotStrip
28
+ @Keep
29
+ val interval: Double?,
30
+ @DoNotStrip
31
+ @Keep
32
+ val minUpdateInterval: Double?
33
+ ) {
34
+ /* main constructor */
35
+ }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// RNAndroidLocationPriority.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "RNAndroidLocationPriority".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class RNAndroidLocationPriority(@DoNotStrip @Keep val value: Int) {
19
+ PRIORITY_HIGH_ACCURACY(0),
20
+ PRIORITY_BALANCED_POWER_ACCURACY(1),
21
+ PRIORITY_LOW_POWER(2),
22
+ PRIORITY_PASSIVE(3);
23
+ }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// RNIOSLocationAccuracy.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "RNIOSLocationAccuracy".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class RNIOSLocationAccuracy(@DoNotStrip @Keep val value: Int) {
19
+ ACCURACY_BEST(0),
20
+ ACCURACY_NEAREST_TEN_METER(1),
21
+ ACCURACY_NEAREST_HUNDRED_METER(2),
22
+ ACCURACY_KILOMETER(3);
23
+ }
@@ -0,0 +1,32 @@
1
+ ///
2
+ /// RNIOSLocationConfig.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.margelo.nitro.core.*
13
+
14
+
15
+ /**
16
+ * Represents the JavaScript object/struct "RNIOSLocationConfig".
17
+ */
18
+ @DoNotStrip
19
+ @Keep
20
+ data class RNIOSLocationConfig
21
+ @DoNotStrip
22
+ @Keep
23
+ constructor(
24
+ @DoNotStrip
25
+ @Keep
26
+ val desiredAccuracy: RNIOSLocationAccuracy?,
27
+ @DoNotStrip
28
+ @Keep
29
+ val distanceFilterMeters: Double?
30
+ ) {
31
+ /* main constructor */
32
+ }
@@ -29,7 +29,7 @@ data class RNInitialProps
29
29
  val liteMode: Boolean?,
30
30
  @DoNotStrip
31
31
  @Keep
32
- val initialCamera: RNCamera?
32
+ val camera: RNCamera?
33
33
  ) {
34
34
  /* main constructor */
35
35
  }
@@ -0,0 +1,32 @@
1
+ ///
2
+ /// RNLocationConfig.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.margelo.nitro.core.*
13
+
14
+
15
+ /**
16
+ * Represents the JavaScript object/struct "RNLocationConfig".
17
+ */
18
+ @DoNotStrip
19
+ @Keep
20
+ data class RNLocationConfig
21
+ @DoNotStrip
22
+ @Keep
23
+ constructor(
24
+ @DoNotStrip
25
+ @Keep
26
+ val android: RNAndroidLocationConfig?,
27
+ @DoNotStrip
28
+ @Keep
29
+ val ios: RNIOSLocationConfig?
30
+ ) {
31
+ /* main constructor */
32
+ }
@@ -0,0 +1,59 @@
1
+ ///
2
+ /// RNMapUiSettings.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.margelo.nitro.core.*
13
+
14
+
15
+ /**
16
+ * Represents the JavaScript object/struct "RNMapUiSettings".
17
+ */
18
+ @DoNotStrip
19
+ @Keep
20
+ data class RNMapUiSettings
21
+ @DoNotStrip
22
+ @Keep
23
+ constructor(
24
+ @DoNotStrip
25
+ @Keep
26
+ val allGesturesEnabled: Boolean?,
27
+ @DoNotStrip
28
+ @Keep
29
+ val compassEnabled: Boolean?,
30
+ @DoNotStrip
31
+ @Keep
32
+ val indoorLevelPickerEnabled: Boolean?,
33
+ @DoNotStrip
34
+ @Keep
35
+ val mapToolbarEnabled: Boolean?,
36
+ @DoNotStrip
37
+ @Keep
38
+ val myLocationButtonEnabled: Boolean?,
39
+ @DoNotStrip
40
+ @Keep
41
+ val rotateEnabled: Boolean?,
42
+ @DoNotStrip
43
+ @Keep
44
+ val scrollEnabled: Boolean?,
45
+ @DoNotStrip
46
+ @Keep
47
+ val scrollDuringRotateOrZoomEnabled: Boolean?,
48
+ @DoNotStrip
49
+ @Keep
50
+ val tiltEnabled: Boolean?,
51
+ @DoNotStrip
52
+ @Keep
53
+ val zoomControlsEnabled: Boolean?,
54
+ @DoNotStrip
55
+ @Keep
56
+ val zoomGesturesEnabled: Boolean?
57
+ ) {
58
+ /* main constructor */
59
+ }
@@ -35,13 +35,7 @@ data class RNMarker
35
35
  val anchor: RNPosition?,
36
36
  @DoNotStrip
37
37
  @Keep
38
- val width: Double,
39
- @DoNotStrip
40
- @Keep
41
- val height: Double,
42
- @DoNotStrip
43
- @Keep
44
- val iconSvg: String
38
+ val iconSvg: RNMarkerSvg?
45
39
  ) {
46
40
  /* main constructor */
47
41
  }
@@ -0,0 +1,35 @@
1
+ ///
2
+ /// RNMarkerSvg.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.margelo.nitro.core.*
13
+
14
+
15
+ /**
16
+ * Represents the JavaScript object/struct "RNMarkerSvg".
17
+ */
18
+ @DoNotStrip
19
+ @Keep
20
+ data class RNMarkerSvg
21
+ @DoNotStrip
22
+ @Keep
23
+ constructor(
24
+ @DoNotStrip
25
+ @Keep
26
+ val width: Double,
27
+ @DoNotStrip
28
+ @Keep
29
+ val height: Double,
30
+ @DoNotStrip
31
+ @Keep
32
+ val svgString: String
33
+ ) {
34
+ /* main constructor */
35
+ }