react-native-google-maps-plus 1.0.3-dev.1 → 1.1.0-dev.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.
Files changed (82) hide show
  1. package/android/src/main/java/com/rngooglemapsplus/GoogleMapsViewImpl.kt +122 -29
  2. package/android/src/main/java/com/rngooglemapsplus/LocationHandler.kt +44 -44
  3. package/android/src/main/java/com/rngooglemapsplus/{MapCircle.kt → MapCircleBuilder.kt} +2 -12
  4. package/android/src/main/java/com/rngooglemapsplus/{MapMarker.kt → MapMarkerBuilder.kt} +1 -1
  5. package/android/src/main/java/com/rngooglemapsplus/{MapPolygon.kt → MapPolygonBuilder.kt} +2 -18
  6. package/android/src/main/java/com/rngooglemapsplus/{MapPolyline.kt → MapPolylineBuilder.kt.kt} +2 -19
  7. package/android/src/main/java/com/rngooglemapsplus/RNGoogleMapsPlusView.kt +43 -54
  8. package/android/src/main/java/com/rngooglemapsplus/extensions/RNCameraExtension.kt +19 -0
  9. package/android/src/main/java/com/rngooglemapsplus/extensions/RNLocationPriorityExtension.kt +12 -0
  10. package/android/src/main/java/com/rngooglemapsplus/extensions/RNMapCircleExtension.kt +14 -0
  11. package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolygonExtension.kt +20 -0
  12. package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolylineExtension.kt +21 -0
  13. package/android/src/main/java/com/rngooglemapsplus/extensions/RNUserInterfaceExtension.kt +12 -0
  14. package/android/src/main/java/com/rngooglemapsplus/{Color.kt → extensions/StringExtension.kt} +1 -1
  15. package/android/src/main/java/com/rngooglemapsplus/extensions/ThrowableExtension.kt +38 -0
  16. package/ios/GoogleMapViewImpl.swift +165 -22
  17. package/ios/LocationHandler.swift +29 -69
  18. package/ios/MapCircleBuilder.swift +20 -0
  19. package/ios/{MapMarker.swift → MapMarkerBuilder.swift} +1 -25
  20. package/ios/MapPolygonBuilder.swift +20 -0
  21. package/ios/MapPolylineBuilder.swift +24 -0
  22. package/ios/RNGoogleMapsPlusView.swift +63 -115
  23. package/ios/extensions/RNCamera+Extension.swift +22 -0
  24. package/ios/{MapCircle.swift → extensions/RNCircle+Extension.swift} +0 -19
  25. package/ios/extensions/RNIOSLocationAccuracy+Extensions.swift +19 -0
  26. package/ios/extensions/RNMarker+Extension.swift +24 -0
  27. package/ios/{MapPolygon.swift → extensions/RNPolygon+Extension.swift.swift} +0 -19
  28. package/ios/{MapPolyline.swift → extensions/RNPolyline+Extension.swift.swift} +16 -39
  29. package/ios/extensions/RNUserInterface+Extension.swift +16 -0
  30. package/lib/module/types.js +14 -0
  31. package/lib/module/types.js.map +1 -1
  32. package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts +5 -1
  33. package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -1
  34. package/lib/typescript/src/types.d.ts +39 -1
  35. package/lib/typescript/src/types.d.ts.map +1 -1
  36. package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.cpp +60 -0
  37. package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.hpp +8 -0
  38. package/nitrogen/generated/android/c++/JRNAndroidLocationConfig.hpp +63 -0
  39. package/nitrogen/generated/android/c++/JRNAndroidLocationPriority.hpp +65 -0
  40. package/nitrogen/generated/android/c++/JRNIOSLocationAccuracy.hpp +65 -0
  41. package/nitrogen/generated/android/c++/JRNIOSLocationConfig.hpp +59 -0
  42. package/nitrogen/generated/android/c++/JRNInitialProps.hpp +4 -4
  43. package/nitrogen/generated/android/c++/JRNLocationConfig.hpp +65 -0
  44. package/nitrogen/generated/android/c++/JRNMapUiSettings.hpp +93 -0
  45. package/nitrogen/generated/android/c++/views/JHybridRNGoogleMapsPlusViewStateUpdater.cpp +16 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt +24 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationConfig.kt +35 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationPriority.kt +23 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationAccuracy.kt +23 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationConfig.kt +32 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNInitialProps.kt +1 -1
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNLocationConfig.kt +32 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapUiSettings.kt +59 -0
  54. package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp +108 -0
  55. package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +18 -0
  56. package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.hpp +46 -0
  57. package/nitrogen/generated/ios/c++/views/HybridRNGoogleMapsPlusViewComponent.mm +20 -0
  58. package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +4 -0
  59. package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec_cxx.swift +82 -0
  60. package/nitrogen/generated/ios/swift/RNAndroidLocationConfig.swift +93 -0
  61. package/nitrogen/generated/ios/swift/RNAndroidLocationPriority.swift +48 -0
  62. package/nitrogen/generated/ios/swift/RNIOSLocationAccuracy.swift +48 -0
  63. package/nitrogen/generated/ios/swift/RNIOSLocationConfig.swift +70 -0
  64. package/nitrogen/generated/ios/swift/RNInitialProps.swift +6 -6
  65. package/nitrogen/generated/ios/swift/RNLocationConfig.swift +84 -0
  66. package/nitrogen/generated/ios/swift/RNMapUiSettings.swift +277 -0
  67. package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +8 -0
  68. package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.hpp +14 -0
  69. package/nitrogen/generated/shared/c++/RNAndroidLocationConfig.hpp +77 -0
  70. package/nitrogen/generated/shared/c++/RNAndroidLocationPriority.hpp +64 -0
  71. package/nitrogen/generated/shared/c++/RNIOSLocationAccuracy.hpp +64 -0
  72. package/nitrogen/generated/shared/c++/RNIOSLocationConfig.hpp +73 -0
  73. package/nitrogen/generated/shared/c++/RNInitialProps.hpp +5 -5
  74. package/nitrogen/generated/shared/c++/RNLocationConfig.hpp +76 -0
  75. package/nitrogen/generated/shared/c++/RNMapUiSettings.hpp +107 -0
  76. package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.cpp +48 -0
  77. package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +6 -0
  78. package/nitrogen/generated/shared/json/RNGoogleMapsPlusViewConfig.json +4 -0
  79. package/package.json +1 -1
  80. package/src/RNGoogleMapsPlusView.nitro.ts +6 -0
  81. package/src/types.ts +44 -1
  82. /package/ios/{Color.swift → extensions/String+Extensions.swift} +0 -0
@@ -0,0 +1,76 @@
1
+ ///
2
+ /// RNLocationConfig.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+ // Forward declaration of `RNAndroidLocationConfig` to properly resolve imports.
22
+ namespace margelo::nitro::rngooglemapsplus { struct RNAndroidLocationConfig; }
23
+ // Forward declaration of `RNIOSLocationConfig` to properly resolve imports.
24
+ namespace margelo::nitro::rngooglemapsplus { struct RNIOSLocationConfig; }
25
+
26
+ #include "RNAndroidLocationConfig.hpp"
27
+ #include <optional>
28
+ #include "RNIOSLocationConfig.hpp"
29
+
30
+ namespace margelo::nitro::rngooglemapsplus {
31
+
32
+ /**
33
+ * A struct which can be represented as a JavaScript object (RNLocationConfig).
34
+ */
35
+ struct RNLocationConfig {
36
+ public:
37
+ std::optional<RNAndroidLocationConfig> android SWIFT_PRIVATE;
38
+ std::optional<RNIOSLocationConfig> ios SWIFT_PRIVATE;
39
+
40
+ public:
41
+ RNLocationConfig() = default;
42
+ explicit RNLocationConfig(std::optional<RNAndroidLocationConfig> android, std::optional<RNIOSLocationConfig> ios): android(android), ios(ios) {}
43
+ };
44
+
45
+ } // namespace margelo::nitro::rngooglemapsplus
46
+
47
+ namespace margelo::nitro {
48
+
49
+ // C++ RNLocationConfig <> JS RNLocationConfig (object)
50
+ template <>
51
+ struct JSIConverter<margelo::nitro::rngooglemapsplus::RNLocationConfig> final {
52
+ static inline margelo::nitro::rngooglemapsplus::RNLocationConfig fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
53
+ jsi::Object obj = arg.asObject(runtime);
54
+ return margelo::nitro::rngooglemapsplus::RNLocationConfig(
55
+ JSIConverter<std::optional<margelo::nitro::rngooglemapsplus::RNAndroidLocationConfig>>::fromJSI(runtime, obj.getProperty(runtime, "android")),
56
+ JSIConverter<std::optional<margelo::nitro::rngooglemapsplus::RNIOSLocationConfig>>::fromJSI(runtime, obj.getProperty(runtime, "ios"))
57
+ );
58
+ }
59
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::rngooglemapsplus::RNLocationConfig& arg) {
60
+ jsi::Object obj(runtime);
61
+ obj.setProperty(runtime, "android", JSIConverter<std::optional<margelo::nitro::rngooglemapsplus::RNAndroidLocationConfig>>::toJSI(runtime, arg.android));
62
+ obj.setProperty(runtime, "ios", JSIConverter<std::optional<margelo::nitro::rngooglemapsplus::RNIOSLocationConfig>>::toJSI(runtime, arg.ios));
63
+ return obj;
64
+ }
65
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
66
+ if (!value.isObject()) {
67
+ return false;
68
+ }
69
+ jsi::Object obj = value.getObject(runtime);
70
+ if (!JSIConverter<std::optional<margelo::nitro::rngooglemapsplus::RNAndroidLocationConfig>>::canConvert(runtime, obj.getProperty(runtime, "android"))) return false;
71
+ if (!JSIConverter<std::optional<margelo::nitro::rngooglemapsplus::RNIOSLocationConfig>>::canConvert(runtime, obj.getProperty(runtime, "ios"))) return false;
72
+ return true;
73
+ }
74
+ };
75
+
76
+ } // namespace margelo::nitro
@@ -0,0 +1,107 @@
1
+ ///
2
+ /// RNMapUiSettings.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+ #include <optional>
24
+
25
+ namespace margelo::nitro::rngooglemapsplus {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (RNMapUiSettings).
29
+ */
30
+ struct RNMapUiSettings {
31
+ public:
32
+ std::optional<bool> allGesturesEnabled SWIFT_PRIVATE;
33
+ std::optional<bool> compassEnabled SWIFT_PRIVATE;
34
+ std::optional<bool> indoorLevelPickerEnabled SWIFT_PRIVATE;
35
+ std::optional<bool> mapToolbarEnabled SWIFT_PRIVATE;
36
+ std::optional<bool> myLocationButtonEnabled SWIFT_PRIVATE;
37
+ std::optional<bool> rotateEnabled SWIFT_PRIVATE;
38
+ std::optional<bool> scrollEnabled SWIFT_PRIVATE;
39
+ std::optional<bool> scrollDuringRotateOrZoomEnabled SWIFT_PRIVATE;
40
+ std::optional<bool> tiltEnabled SWIFT_PRIVATE;
41
+ std::optional<bool> zoomControlsEnabled SWIFT_PRIVATE;
42
+ std::optional<bool> zoomGesturesEnabled SWIFT_PRIVATE;
43
+
44
+ public:
45
+ RNMapUiSettings() = default;
46
+ explicit RNMapUiSettings(std::optional<bool> allGesturesEnabled, std::optional<bool> compassEnabled, std::optional<bool> indoorLevelPickerEnabled, std::optional<bool> mapToolbarEnabled, std::optional<bool> myLocationButtonEnabled, std::optional<bool> rotateEnabled, std::optional<bool> scrollEnabled, std::optional<bool> scrollDuringRotateOrZoomEnabled, std::optional<bool> tiltEnabled, std::optional<bool> zoomControlsEnabled, std::optional<bool> zoomGesturesEnabled): allGesturesEnabled(allGesturesEnabled), compassEnabled(compassEnabled), indoorLevelPickerEnabled(indoorLevelPickerEnabled), mapToolbarEnabled(mapToolbarEnabled), myLocationButtonEnabled(myLocationButtonEnabled), rotateEnabled(rotateEnabled), scrollEnabled(scrollEnabled), scrollDuringRotateOrZoomEnabled(scrollDuringRotateOrZoomEnabled), tiltEnabled(tiltEnabled), zoomControlsEnabled(zoomControlsEnabled), zoomGesturesEnabled(zoomGesturesEnabled) {}
47
+ };
48
+
49
+ } // namespace margelo::nitro::rngooglemapsplus
50
+
51
+ namespace margelo::nitro {
52
+
53
+ // C++ RNMapUiSettings <> JS RNMapUiSettings (object)
54
+ template <>
55
+ struct JSIConverter<margelo::nitro::rngooglemapsplus::RNMapUiSettings> final {
56
+ static inline margelo::nitro::rngooglemapsplus::RNMapUiSettings fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
57
+ jsi::Object obj = arg.asObject(runtime);
58
+ return margelo::nitro::rngooglemapsplus::RNMapUiSettings(
59
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "allGesturesEnabled")),
60
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "compassEnabled")),
61
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "indoorLevelPickerEnabled")),
62
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "mapToolbarEnabled")),
63
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "myLocationButtonEnabled")),
64
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "rotateEnabled")),
65
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "scrollEnabled")),
66
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "scrollDuringRotateOrZoomEnabled")),
67
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "tiltEnabled")),
68
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "zoomControlsEnabled")),
69
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "zoomGesturesEnabled"))
70
+ );
71
+ }
72
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::rngooglemapsplus::RNMapUiSettings& arg) {
73
+ jsi::Object obj(runtime);
74
+ obj.setProperty(runtime, "allGesturesEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.allGesturesEnabled));
75
+ obj.setProperty(runtime, "compassEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.compassEnabled));
76
+ obj.setProperty(runtime, "indoorLevelPickerEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.indoorLevelPickerEnabled));
77
+ obj.setProperty(runtime, "mapToolbarEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.mapToolbarEnabled));
78
+ obj.setProperty(runtime, "myLocationButtonEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.myLocationButtonEnabled));
79
+ obj.setProperty(runtime, "rotateEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.rotateEnabled));
80
+ obj.setProperty(runtime, "scrollEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.scrollEnabled));
81
+ obj.setProperty(runtime, "scrollDuringRotateOrZoomEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.scrollDuringRotateOrZoomEnabled));
82
+ obj.setProperty(runtime, "tiltEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.tiltEnabled));
83
+ obj.setProperty(runtime, "zoomControlsEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.zoomControlsEnabled));
84
+ obj.setProperty(runtime, "zoomGesturesEnabled", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.zoomGesturesEnabled));
85
+ return obj;
86
+ }
87
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
88
+ if (!value.isObject()) {
89
+ return false;
90
+ }
91
+ jsi::Object obj = value.getObject(runtime);
92
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "allGesturesEnabled"))) return false;
93
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "compassEnabled"))) return false;
94
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "indoorLevelPickerEnabled"))) return false;
95
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "mapToolbarEnabled"))) return false;
96
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "myLocationButtonEnabled"))) return false;
97
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "rotateEnabled"))) return false;
98
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "scrollEnabled"))) return false;
99
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "scrollDuringRotateOrZoomEnabled"))) return false;
100
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "tiltEnabled"))) return false;
101
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "zoomControlsEnabled"))) return false;
102
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "zoomGesturesEnabled"))) return false;
103
+ return true;
104
+ }
105
+ };
106
+
107
+ } // namespace margelo::nitro
@@ -35,6 +35,26 @@ namespace margelo::nitro::rngooglemapsplus::views {
35
35
  throw std::runtime_error(std::string("RNGoogleMapsPlusView.initialProps: ") + exc.what());
36
36
  }
37
37
  }()),
38
+ uiSettings([&]() -> CachedProp<std::optional<RNMapUiSettings>> {
39
+ try {
40
+ const react::RawValue* rawValue = rawProps.at("uiSettings", nullptr, nullptr);
41
+ if (rawValue == nullptr) return sourceProps.uiSettings;
42
+ const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
43
+ return CachedProp<std::optional<RNMapUiSettings>>::fromRawValue(*runtime, value, sourceProps.uiSettings);
44
+ } catch (const std::exception& exc) {
45
+ throw std::runtime_error(std::string("RNGoogleMapsPlusView.uiSettings: ") + exc.what());
46
+ }
47
+ }()),
48
+ myLocationEnabled([&]() -> CachedProp<std::optional<bool>> {
49
+ try {
50
+ const react::RawValue* rawValue = rawProps.at("myLocationEnabled", nullptr, nullptr);
51
+ if (rawValue == nullptr) return sourceProps.myLocationEnabled;
52
+ const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
53
+ return CachedProp<std::optional<bool>>::fromRawValue(*runtime, value, sourceProps.myLocationEnabled);
54
+ } catch (const std::exception& exc) {
55
+ throw std::runtime_error(std::string("RNGoogleMapsPlusView.myLocationEnabled: ") + exc.what());
56
+ }
57
+ }()),
38
58
  buildingEnabled([&]() -> CachedProp<std::optional<bool>> {
39
59
  try {
40
60
  const react::RawValue* rawValue = rawProps.at("buildingEnabled", nullptr, nullptr);
@@ -55,6 +75,16 @@ namespace margelo::nitro::rngooglemapsplus::views {
55
75
  throw std::runtime_error(std::string("RNGoogleMapsPlusView.trafficEnabled: ") + exc.what());
56
76
  }
57
77
  }()),
78
+ indoorEnabled([&]() -> CachedProp<std::optional<bool>> {
79
+ try {
80
+ const react::RawValue* rawValue = rawProps.at("indoorEnabled", nullptr, nullptr);
81
+ if (rawValue == nullptr) return sourceProps.indoorEnabled;
82
+ const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
83
+ return CachedProp<std::optional<bool>>::fromRawValue(*runtime, value, sourceProps.indoorEnabled);
84
+ } catch (const std::exception& exc) {
85
+ throw std::runtime_error(std::string("RNGoogleMapsPlusView.indoorEnabled: ") + exc.what());
86
+ }
87
+ }()),
58
88
  customMapStyle([&]() -> CachedProp<std::optional<std::string>> {
59
89
  try {
60
90
  const react::RawValue* rawValue = rawProps.at("customMapStyle", nullptr, nullptr);
@@ -155,6 +185,16 @@ namespace margelo::nitro::rngooglemapsplus::views {
155
185
  throw std::runtime_error(std::string("RNGoogleMapsPlusView.circles: ") + exc.what());
156
186
  }
157
187
  }()),
188
+ locationConfig([&]() -> CachedProp<std::optional<RNLocationConfig>> {
189
+ try {
190
+ const react::RawValue* rawValue = rawProps.at("locationConfig", nullptr, nullptr);
191
+ if (rawValue == nullptr) return sourceProps.locationConfig;
192
+ const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
193
+ return CachedProp<std::optional<RNLocationConfig>>::fromRawValue(*runtime, value, sourceProps.locationConfig);
194
+ } catch (const std::exception& exc) {
195
+ throw std::runtime_error(std::string("RNGoogleMapsPlusView.locationConfig: ") + exc.what());
196
+ }
197
+ }()),
158
198
  onMapError([&]() -> CachedProp<std::optional<std::function<void(RNMapErrorCode /* error */)>>> {
159
199
  try {
160
200
  const react::RawValue* rawValue = rawProps.at("onMapError", nullptr, nullptr);
@@ -289,8 +329,11 @@ namespace margelo::nitro::rngooglemapsplus::views {
289
329
  HybridRNGoogleMapsPlusViewProps::HybridRNGoogleMapsPlusViewProps(const HybridRNGoogleMapsPlusViewProps& other):
290
330
  react::ViewProps(),
291
331
  initialProps(other.initialProps),
332
+ uiSettings(other.uiSettings),
333
+ myLocationEnabled(other.myLocationEnabled),
292
334
  buildingEnabled(other.buildingEnabled),
293
335
  trafficEnabled(other.trafficEnabled),
336
+ indoorEnabled(other.indoorEnabled),
294
337
  customMapStyle(other.customMapStyle),
295
338
  userInterfaceStyle(other.userInterfaceStyle),
296
339
  minZoomLevel(other.minZoomLevel),
@@ -301,6 +344,7 @@ namespace margelo::nitro::rngooglemapsplus::views {
301
344
  polygons(other.polygons),
302
345
  polylines(other.polylines),
303
346
  circles(other.circles),
347
+ locationConfig(other.locationConfig),
304
348
  onMapError(other.onMapError),
305
349
  onMapReady(other.onMapReady),
306
350
  onLocationUpdate(other.onLocationUpdate),
@@ -318,8 +362,11 @@ namespace margelo::nitro::rngooglemapsplus::views {
318
362
  bool HybridRNGoogleMapsPlusViewProps::filterObjectKeys(const std::string& propName) {
319
363
  switch (hashString(propName)) {
320
364
  case hashString("initialProps"): return true;
365
+ case hashString("uiSettings"): return true;
366
+ case hashString("myLocationEnabled"): return true;
321
367
  case hashString("buildingEnabled"): return true;
322
368
  case hashString("trafficEnabled"): return true;
369
+ case hashString("indoorEnabled"): return true;
323
370
  case hashString("customMapStyle"): return true;
324
371
  case hashString("userInterfaceStyle"): return true;
325
372
  case hashString("minZoomLevel"): return true;
@@ -330,6 +377,7 @@ namespace margelo::nitro::rngooglemapsplus::views {
330
377
  case hashString("polygons"): return true;
331
378
  case hashString("polylines"): return true;
332
379
  case hashString("circles"): return true;
380
+ case hashString("locationConfig"): return true;
333
381
  case hashString("onMapError"): return true;
334
382
  case hashString("onMapReady"): return true;
335
383
  case hashString("onLocationUpdate"): return true;
@@ -18,6 +18,7 @@
18
18
 
19
19
  #include "RNInitialProps.hpp"
20
20
  #include <optional>
21
+ #include "RNMapUiSettings.hpp"
21
22
  #include <string>
22
23
  #include "RNUserInterfaceStyle.hpp"
23
24
  #include "RNMapPadding.hpp"
@@ -27,6 +28,7 @@
27
28
  #include "RNPolygon.hpp"
28
29
  #include "RNPolyline.hpp"
29
30
  #include "RNCircle.hpp"
31
+ #include "RNLocationConfig.hpp"
30
32
  #include "RNMapErrorCode.hpp"
31
33
  #include <functional>
32
34
  #include "RNLocation.hpp"
@@ -59,8 +61,11 @@ namespace margelo::nitro::rngooglemapsplus::views {
59
61
 
60
62
  public:
61
63
  CachedProp<std::optional<RNInitialProps>> initialProps;
64
+ CachedProp<std::optional<RNMapUiSettings>> uiSettings;
65
+ CachedProp<std::optional<bool>> myLocationEnabled;
62
66
  CachedProp<std::optional<bool>> buildingEnabled;
63
67
  CachedProp<std::optional<bool>> trafficEnabled;
68
+ CachedProp<std::optional<bool>> indoorEnabled;
64
69
  CachedProp<std::optional<std::string>> customMapStyle;
65
70
  CachedProp<std::optional<RNUserInterfaceStyle>> userInterfaceStyle;
66
71
  CachedProp<std::optional<double>> minZoomLevel;
@@ -71,6 +76,7 @@ namespace margelo::nitro::rngooglemapsplus::views {
71
76
  CachedProp<std::optional<std::vector<RNPolygon>>> polygons;
72
77
  CachedProp<std::optional<std::vector<RNPolyline>>> polylines;
73
78
  CachedProp<std::optional<std::vector<RNCircle>>> circles;
79
+ CachedProp<std::optional<RNLocationConfig>> locationConfig;
74
80
  CachedProp<std::optional<std::function<void(RNMapErrorCode /* error */)>>> onMapError;
75
81
  CachedProp<std::optional<std::function<void(bool /* ready */)>>> onMapReady;
76
82
  CachedProp<std::optional<std::function<void(const RNLocation& /* location */)>>> onLocationUpdate;
@@ -5,8 +5,11 @@
5
5
  "directEventTypes": {},
6
6
  "validAttributes": {
7
7
  "initialProps": true,
8
+ "uiSettings": true,
9
+ "myLocationEnabled": true,
8
10
  "buildingEnabled": true,
9
11
  "trafficEnabled": true,
12
+ "indoorEnabled": true,
10
13
  "customMapStyle": true,
11
14
  "userInterfaceStyle": true,
12
15
  "minZoomLevel": true,
@@ -17,6 +20,7 @@
17
20
  "polygons": true,
18
21
  "polylines": true,
19
22
  "circles": true,
23
+ "locationConfig": true,
20
24
  "onMapError": true,
21
25
  "onMapReady": true,
22
26
  "onLocationUpdate": true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-google-maps-plus",
3
- "version": "1.0.3-dev.1",
3
+ "version": "1.1.0-dev.1",
4
4
  "description": "React-native wrapper for android & IOS google maps sdk",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -19,12 +19,17 @@ import type {
19
19
  RNMapType,
20
20
  RNInitialProps,
21
21
  RNCircle,
22
+ RNMapUiSettings,
23
+ RNLocationConfig,
22
24
  } from './types';
23
25
 
24
26
  export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
25
27
  initialProps?: RNInitialProps;
28
+ uiSettings?: RNMapUiSettings;
29
+ myLocationEnabled?: boolean;
26
30
  buildingEnabled?: boolean;
27
31
  trafficEnabled?: boolean;
32
+ indoorEnabled?: boolean;
28
33
  customMapStyle?: string;
29
34
  userInterfaceStyle?: RNUserInterfaceStyle;
30
35
  minZoomLevel?: number;
@@ -35,6 +40,7 @@ export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
35
40
  polygons?: RNPolygon[];
36
41
  polylines?: RNPolyline[];
37
42
  circles?: RNCircle[];
43
+ locationConfig?: RNLocationConfig;
38
44
  onMapError?: (error: RNMapErrorCode) => void;
39
45
  onMapReady?: (ready: boolean) => void;
40
46
  onLocationUpdate?: (location: RNLocation) => void;
package/src/types.ts CHANGED
@@ -6,7 +6,21 @@ export type GoogleMapsViewRef = HybridView<RNGoogleMapsPlusViewMethods>;
6
6
  export type RNInitialProps = {
7
7
  mapId?: string;
8
8
  liteMode?: boolean;
9
- initialCamera?: RNCamera;
9
+ camera?: RNCamera;
10
+ };
11
+
12
+ export type RNMapUiSettings = {
13
+ allGesturesEnabled?: boolean;
14
+ compassEnabled?: boolean;
15
+ indoorLevelPickerEnabled?: boolean;
16
+ mapToolbarEnabled?: boolean;
17
+ myLocationButtonEnabled?: boolean;
18
+ rotateEnabled?: boolean;
19
+ scrollEnabled?: boolean;
20
+ scrollDuringRotateOrZoomEnabled?: boolean;
21
+ tiltEnabled?: boolean;
22
+ zoomControlsEnabled?: boolean;
23
+ zoomGesturesEnabled?: boolean;
10
24
  };
11
25
 
12
26
  export type RNLatLng = { latitude: number; longitude: number };
@@ -154,6 +168,35 @@ export type RNCircle = {
154
168
  fillColor?: string;
155
169
  };
156
170
 
171
+ export type RNLocationConfig = {
172
+ android?: RNAndroidLocationConfig;
173
+ ios?: RNIOSLocationConfig;
174
+ };
175
+ export type RNAndroidLocationConfig = {
176
+ priority?: RNAndroidLocationPriority;
177
+ interval?: number;
178
+ minUpdateInterval?: number;
179
+ };
180
+
181
+ export enum RNAndroidLocationPriority {
182
+ PRIORITY_HIGH_ACCURACY = 0,
183
+ PRIORITY_BALANCED_POWER_ACCURACY = 1,
184
+ PRIORITY_LOW_POWER = 2,
185
+ PRIORITY_PASSIVE = 3,
186
+ }
187
+
188
+ export type RNIOSLocationConfig = {
189
+ desiredAccuracy?: RNIOSLocationAccuracy;
190
+ distanceFilterMeters?: number;
191
+ };
192
+
193
+ export enum RNIOSLocationAccuracy {
194
+ ACCURACY_BEST = 0,
195
+ ACCURACY_NEAREST_TEN_METER = 1,
196
+ ACCURACY_NEAREST_HUNDRED_METER = 2,
197
+ ACCURACY_KILOMETER = 3,
198
+ }
199
+
157
200
  export type RNLocationPermissionResult = {
158
201
  android?: RNAndroidLocationPermissionResult;
159
202
  ios?: RNIOSPermissionResult;