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.
- package/android/src/main/java/com/rngooglemapsplus/GoogleMapsViewImpl.kt +122 -29
- package/android/src/main/java/com/rngooglemapsplus/LocationHandler.kt +44 -44
- package/android/src/main/java/com/rngooglemapsplus/{MapCircle.kt → MapCircleBuilder.kt} +2 -12
- package/android/src/main/java/com/rngooglemapsplus/{MapMarker.kt → MapMarkerBuilder.kt} +1 -1
- package/android/src/main/java/com/rngooglemapsplus/{MapPolygon.kt → MapPolygonBuilder.kt} +2 -18
- package/android/src/main/java/com/rngooglemapsplus/{MapPolyline.kt → MapPolylineBuilder.kt.kt} +2 -19
- package/android/src/main/java/com/rngooglemapsplus/RNGoogleMapsPlusView.kt +43 -54
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNCameraExtension.kt +19 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNLocationPriorityExtension.kt +12 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNMapCircleExtension.kt +14 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolygonExtension.kt +20 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolylineExtension.kt +21 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNUserInterfaceExtension.kt +12 -0
- package/android/src/main/java/com/rngooglemapsplus/{Color.kt → extensions/StringExtension.kt} +1 -1
- package/android/src/main/java/com/rngooglemapsplus/extensions/ThrowableExtension.kt +38 -0
- package/ios/GoogleMapViewImpl.swift +165 -22
- package/ios/LocationHandler.swift +29 -69
- package/ios/MapCircleBuilder.swift +20 -0
- package/ios/{MapMarker.swift → MapMarkerBuilder.swift} +1 -25
- package/ios/MapPolygonBuilder.swift +20 -0
- package/ios/MapPolylineBuilder.swift +24 -0
- package/ios/RNGoogleMapsPlusView.swift +63 -115
- package/ios/extensions/RNCamera+Extension.swift +22 -0
- package/ios/{MapCircle.swift → extensions/RNCircle+Extension.swift} +0 -19
- package/ios/extensions/RNIOSLocationAccuracy+Extensions.swift +19 -0
- package/ios/extensions/RNMarker+Extension.swift +24 -0
- package/ios/{MapPolygon.swift → extensions/RNPolygon+Extension.swift.swift} +0 -19
- package/ios/{MapPolyline.swift → extensions/RNPolyline+Extension.swift.swift} +16 -39
- package/ios/extensions/RNUserInterface+Extension.swift +16 -0
- package/lib/module/types.js +14 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts +5 -1
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +39 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.cpp +60 -0
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.hpp +8 -0
- package/nitrogen/generated/android/c++/JRNAndroidLocationConfig.hpp +63 -0
- package/nitrogen/generated/android/c++/JRNAndroidLocationPriority.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNIOSLocationAccuracy.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNIOSLocationConfig.hpp +59 -0
- package/nitrogen/generated/android/c++/JRNInitialProps.hpp +4 -4
- package/nitrogen/generated/android/c++/JRNLocationConfig.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNMapUiSettings.hpp +93 -0
- package/nitrogen/generated/android/c++/views/JHybridRNGoogleMapsPlusViewStateUpdater.cpp +16 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationConfig.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationPriority.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationAccuracy.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationConfig.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNInitialProps.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNLocationConfig.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapUiSettings.kt +59 -0
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp +108 -0
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +18 -0
- package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.hpp +46 -0
- package/nitrogen/generated/ios/c++/views/HybridRNGoogleMapsPlusViewComponent.mm +20 -0
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +4 -0
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec_cxx.swift +82 -0
- package/nitrogen/generated/ios/swift/RNAndroidLocationConfig.swift +93 -0
- package/nitrogen/generated/ios/swift/RNAndroidLocationPriority.swift +48 -0
- package/nitrogen/generated/ios/swift/RNIOSLocationAccuracy.swift +48 -0
- package/nitrogen/generated/ios/swift/RNIOSLocationConfig.swift +70 -0
- package/nitrogen/generated/ios/swift/RNInitialProps.swift +6 -6
- package/nitrogen/generated/ios/swift/RNLocationConfig.swift +84 -0
- package/nitrogen/generated/ios/swift/RNMapUiSettings.swift +277 -0
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +8 -0
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.hpp +14 -0
- package/nitrogen/generated/shared/c++/RNAndroidLocationConfig.hpp +77 -0
- package/nitrogen/generated/shared/c++/RNAndroidLocationPriority.hpp +64 -0
- package/nitrogen/generated/shared/c++/RNIOSLocationAccuracy.hpp +64 -0
- package/nitrogen/generated/shared/c++/RNIOSLocationConfig.hpp +73 -0
- package/nitrogen/generated/shared/c++/RNInitialProps.hpp +5 -5
- package/nitrogen/generated/shared/c++/RNLocationConfig.hpp +76 -0
- package/nitrogen/generated/shared/c++/RNMapUiSettings.hpp +107 -0
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.cpp +48 -0
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +6 -0
- package/nitrogen/generated/shared/json/RNGoogleMapsPlusViewConfig.json +4 -0
- package/package.json +1 -1
- package/src/RNGoogleMapsPlusView.nitro.ts +6 -0
- package/src/types.ts +44 -1
- /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
|
@@ -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
|
-
|
|
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;
|
|
File without changes
|