diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 3bda0a4a..f4e73731 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -60,7 +60,16 @@ body:
attributes:
label: React Native Doctor Output
description: |
- Run `npx react-native doctor` in your projectq and paste the output below.
+ Run `npx react-native doctor` in your project folder and paste the output below.
+ render: shell
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: React Native Info Output
+ description: |
+ Run `npx react-native info` in your project folder and paste the output below.
+ render: shell
validations:
required: true
- type: textarea
@@ -96,9 +105,13 @@ body:
Without this we will unlikely be able to progress on the issue,
as we need to be able to reproduce the problem locally.
value: |
+ Code sample
+
```javascript
// Example code here
```
+
+
validations:
required: true
- type: textarea
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 71493de3..6051d6b2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -37,7 +37,7 @@ jobs:
run: yarn lint
- name: Typecheck files
- run: yarn test:types
+ run: yarn typecheck
check-objc-formatting:
runs-on: ubuntu-latest
@@ -52,7 +52,7 @@ jobs:
- name: Check Objective-C formatting
run: ./scripts/format-objc.sh --check
- check-java-formatting:
+ check-java-and-kotlin-formatting:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
@@ -84,6 +84,24 @@ jobs:
- name: Check Java formatting
run: ./scripts/format-java.sh --check
+ - name: Download ktfmt
+ run: |
+ KTFMT_VERSION=0.54
+ KTFMT_URL=https://repo1.maven.org/maven2/com/facebook/ktfmt/${KTFMT_VERSION}/ktfmt-${KTFMT_VERSION}-jar-with-dependencies.jar
+ mkdir -p $HOME/ktfmt
+ curl -L -o $HOME/ktfmt/ktfmt.jar $KTFMT_URL
+
+ - name: Create ktfmt wrapper script
+ run: |
+ cat << 'EOF' > /usr/local/bin/ktfmt
+ #!/bin/sh
+ exec java -jar "$HOME/ktfmt/ktfmt.jar" "$@"
+ EOF
+ chmod +x /usr/local/bin/ktfmt
+
+ - name: Check Kotlin formatting
+ run: ./scripts/format-kotlin.sh --check
+
test:
runs-on: ubuntu-latest
timeout-minutes: 30
@@ -222,7 +240,7 @@ jobs:
NO_FLIPPER: 1
- name: Copy Keys.plist file from sample
- run: cp example/ios/SampleApp/Keys.plist.sample example/ios/SampleApp/Keys.plist
+ run: cp example/ios/ReactNativeNavigationSdkExample/Keys.plist.sample example/ios/ReactNativeNavigationSdkExample/Keys.plist
- name: Build example for iOS
run: |
diff --git a/.gitignore b/.gitignore
index b002a8ab..e88aa9c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,7 +28,7 @@ DerivedData
*.ipa
*.xcuserstate
project.xcworkspace
-.xcode.env.local
+**/.xcode.env.local
Keys.plist
# Android/IJ
@@ -81,5 +81,5 @@ android/keystores/debug.keystore
# generated by bob
lib/
-# tests
+# Tests
coverage/
diff --git a/.npmignore b/.npmignore
deleted file mode 100644
index ad9bfc9e..00000000
--- a/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-example
-coverage
-node_modules
\ No newline at end of file
diff --git a/.nvmrc b/.nvmrc
index 3f430af8..9a2a0e21 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-v18
+v20
diff --git a/.tool-versions b/.tool-versions
index 6df261ca..4b8ef84e 100644
--- a/.tool-versions
+++ b/.tool-versions
@@ -1 +1 @@
-nodejs 18.20.1
+nodejs 20.18.3
diff --git a/.watchmanconfig b/.watchmanconfig
index 1a1d1f31..0967ef42 100644
--- a/.watchmanconfig
+++ b/.watchmanconfig
@@ -1,3 +1 @@
-{
- "fsevents_latency": 0.1
-}
+{}
diff --git a/.yarnrc.yml b/.yarnrc.yml
index dab182ef..a0e015ca 100644
--- a/.yarnrc.yml
+++ b/.yarnrc.yml
@@ -17,8 +17,8 @@ nmHoistingLimits: workspaces
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
- spec: "@yarnpkg/plugin-interactive-tools"
+ spec: '@yarnpkg/plugin-interactive-tools'
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
- spec: "@yarnpkg/plugin-workspace-tools"
+ spec: '@yarnpkg/plugin-workspace-tools'
yarnPath: .yarn/releases/yarn-3.6.1.cjs
diff --git a/ANDROIDAUTO.md b/ANDROIDAUTO.md
index e7d32028..1f05fe5f 100644
--- a/ANDROIDAUTO.md
+++ b/ANDROIDAUTO.md
@@ -20,7 +20,7 @@ For all the steps above, you can refer to the Android example application for gu
### Screen for Android Auto
-Once your project is configured accordingly, and you are ready to build the screen for Android Auto, you can leverage the `AndroidAutoBaseScreen` provided by the SDK. This base class simplifies the setup by handling initialization, teardown, and rendering the map on the Android Auto display.
+Once your project is configured accordingly, and you are ready to build the screen for Android Auto, you can leverage the `GMNAndroidAutoBaseScreen` provided by the SDK. This base class simplifies the setup by handling initialization, teardown, and rendering the map on the Android Auto display.
Please refer to the `SampleAndroidAutoScreen.java` file in the Android example app for guidance.
@@ -61,7 +61,7 @@ public Template onGetTemplate() {
}
```
-For advanced customization, you can bypass the base class and implement your own screen by inheriting `Screen`. You can use the provided `AndroidAutoBaseScreen` base class as a reference on how to do that.
+For advanced customization, you can bypass the base class and implement your own screen by inheriting `Screen`. You can use the provided `GMNAndroidAutoBaseScreen` base class as a reference on how to do that.
### React Native specific setup
@@ -70,22 +70,25 @@ On the React Native side, you can use the `useNavigationAuto` hook to interface
```tsx
const {
mapViewAutoController,
- addListeners: addAutoListener,
- removeListeners: removeAutoListeners,
} = useNavigationAuto();
-const navigationAutoCallbacks: NavigationAutoCallbacks = useMemo(
- () => ({
- onCustomNavigationAutoEvent: (event: CustomNavigationAutoEvent) => {
- console.log('onCustomNavigationAutoEvent:', event);
- },
- onAutoScreenAvailabilityChanged: (available: boolean) => {
+useEffect(() => {
+ mapViewAutoController.setOnAutoScreenAvailabilityChangedListener(
+ (available: boolean) => {
console.log('onAutoScreenAvailabilityChanged:', available);
setMapViewAutoAvailable(available);
- },
- }),
- []
-);
+ }
+ );
+ mapViewAutoController.setOnCustomNavigationAutoEventListener(
+ (event: CustomNavigationAutoEvent) => {
+ console.log('onCustomNavigationAutoEvent:', event);
+ }
+ );
+
+ return () => {
+ mapViewAutoController.removeAllListeners();
+ };
+});
const setMapType = (mapType: MapType) => {
console.log('setMapType', mapType);
diff --git a/CARPLAY.md b/CARPLAY.md
index 40e1f067..75f566dd 100644
--- a/CARPLAY.md
+++ b/CARPLAY.md
@@ -56,22 +56,25 @@ On the React Native side, you can use the `useNavigationAuto` hook to interface
```tsx
const {
mapViewAutoController,
- addListeners: addAutoListener,
- removeListeners: removeAutoListeners,
} = useNavigationAuto();
-const navigationAutoCallbacks: NavigationAutoCallbacks = useMemo(
- () => ({
- onCustomNavigationAutoEvent: (event: CustomNavigationAutoEvent) => {
- console.log('onCustomNavigationAutoEvent:', event);
- },
- onAutoScreenAvailabilityChanged: (available: boolean) => {
+useEffect(() => {
+ mapViewAutoController.setOnAutoScreenAvailabilityChangedListener(
+ (available: boolean) => {
console.log('onAutoScreenAvailabilityChanged:', available);
setMapViewAutoAvailable(available);
- },
- }),
- []
-);
+ }
+ );
+ mapViewAutoController.setOnCustomNavigationAutoEventListener(
+ (event: CustomNavigationAutoEvent) => {
+ console.log('onCustomNavigationAutoEvent:', event);
+ }
+ );
+
+ return () => {
+ mapViewAutoController.removeAllListeners();
+ };
+});
const setMapType = (mapType: MapType) => {
console.log('setMapType', mapType);
@@ -83,4 +86,4 @@ For a more detailed example, refer to the `NavigationScreen.tsx` in the React Na
## Example Project
-For a fully functional CarPlay implementation, check out the [SampleApp](./example/ios/) Xcode project, which includes the `SampleAppCarPlay` build target. The sample already contains test entitlement so you don't need to request one from Apple to run it.
+For a fully functional CarPlay implementation, check out the [SampleApp](./example/ios/) Xcode project, which includes the `ReactNativeNavigationSdkExampleCarPlay` build target. The sample already contains test entitlement so you don't need to request one from Apple to run it.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9a382f0e..7329150d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -31,6 +31,7 @@ This project follows
- [addlicense](https://github.com/google/addlicense)
- [google-java-format Version 1.23.0](https://github.com/google/google-java-format) (used to format Java code).
- [clang-format](https://clang.llvm.org/docs/ClangFormat.html) (used to format Objective-C code).
+- [ktfmt](https://facebook.github.io/ktfmt/) (used to format Kotlin code).
## 2. Forking & cloning the repository
@@ -97,6 +98,18 @@ This script will format all Objective-C files under the /ios and /example/ios di
```
This script will format all Java files under the /android and /example/android directories according to Google's Java style guide.
+**Kotlin:**
+```bash
+./scripts/format-kotlin.sh
+```
+This script will format all Kotlin files under the /android and /example/android directories according to Google's Kotlin style guide.
+
+**All:**
+```bash
+./scripts/format.sh
+```
+This script run all above formatters.
+
## 5. Code reviews
@@ -140,6 +153,7 @@ yarn run example detox:test:ios-release
```
Android:
+Create AVD emulator with the name "Pixel_9_Pro_API_35" and run the command below.
```bash
yarn run example detox:test:android-release
```
diff --git a/README.md b/README.md
index 4b52519d..b3a6a672 100644
--- a/README.md
+++ b/README.md
@@ -15,12 +15,13 @@ This repository contains a React Native plugin that provides a [Google Navigatio
| | Android | iOS |
| ------------------------------- | ------- | --------- |
-| **Minimum mobile OS supported** | SDK 23+ | iOS 15.0+ |
+| **Minimum mobile OS supported** | SDK 23+ | iOS 16.0+ |
-* A React Native project
+* Supported React Native version: **0.78+**
+ * See [React Native Support](#react-native-support) below for version and architecture requirements
* A Google Cloud project
- * If you are a Mobility Services developer, you must contact Sales as described in [Mobility services documentation](https://developers.google.com/maps/documentation/transportation-logistics/mobility).
- * If you are not a Mobility Services developer, refer to [Setup Google Cloud Project](https://developers.google.com/maps/documentation/navigation/android-sdk/cloud-setup) for instructions.
+ * If you are a Mobility Services developer, you must contact Sales as described in [Mobility services documentation](https://developers.google.com/maps/documentation/transportation-logistics/mobility).
+ * If you are not a Mobility Services developer, refer to [Setup Google Cloud Project](https://developers.google.com/maps/documentation/navigation/android-sdk/cloud-setup) for instructions.
* An [API key](https://console.cloud.google.com/google/maps-apis/credentials) from the project above
* The API key must be configured for both Android and iOS. Refer to [Android Using Api Keys](https://developers.google.com/maps/documentation/navigation/android-sdk/get-api-key) and [iOS Using Api Keys](https://developers.google.com/maps/documentation/navigation/ios-sdk/get-api-key) respectively for instructions.
* If targeting Android, [Google Play Services](https://developers.google.com/android/guides/overview) installed and enabled
@@ -45,14 +46,6 @@ import { NavigationView } from '@googlemaps/react-native-navigation-sdk';
### Android
-#### Disable new architecture
-
-This package does not yet support new architecture. Make sure new architecture is disabled in your `android/gradle.properties` file:
-
-```groovy
-newArchEnabled=false
-```
-
#### Enable Jetifier
To ensure compatibility with AndroidX, enable Jetifier in your `android/gradle.properties` file:
@@ -100,14 +93,6 @@ See example configuration for secrets plugin at example applications [build.grad
### iOS
-#### Disable new architecture
-
-This package does not yet support new architecture. Make sure new architecture is disabled in your `ios/Podfile`:
-
-```ruby
-ENV['RCT_NEW_ARCH_ENABLED'] = '0'
-```
-
#### Set Google Maps API Key
To set up, specify your API key in the application delegate `ios/Runner/AppDelegate.m`:
@@ -179,7 +164,7 @@ const { navigationController } = useNavigation();
const initializeNavigation = useCallback(async () => {
try {
- await navigationController.init();
+ const status: NavigationInitializationStatus = await navigationController.init();
console.log('Navigation initialized');
} catch (error) {
console.error('Error initializing navigation', error);
@@ -361,6 +346,34 @@ This package uses the Google Maps [Navigation SDK](https://mapsplatform.google.c
> [!NOTE]
> This package provides a `MapView` component, which can be used as a classic Google Maps view without navigation. See [Add a map view](#add-a-map-view) for details.
+## React Native Support
+
+> [!IMPORTANT]
+> **This package is tested and supported only with React Native versions 0.78 and above, and requires the New Architecture (Fabric and TurboModules) to be enabled.**
+>
+> If you are using an older version of React Native (below 0.78) or cannot have the New Architecture enabled, you must use version `0.9.3` or earlier of this package.
+
+The New Architecture is enabled by default from React Native 0.76 onwards, but you should verify it is enabled in your project. See below for instructions.
+
+#### Enabling New Architecture
+
+**Android:**
+Add the following to your `android/gradle.properties` file:
+```groovy
+newArchEnabled=true
+```
+
+**iOS:**
+Add the following to your `ios/Podfile` file:
+```ruby
+ENV['RCT_NEW_ARCH_ENABLED'] = '1'
+```
+
+If you need to use the legacy React Native architecture or an older React Native version, install version `0.9.3` or earlier:
+```shell
+npm i @googlemaps/react-native-navigation-sdk@0.9.3
+```
+
## Contributing
See the [Contributing guide](./CONTRIBUTING.md).
diff --git a/android/build.gradle b/android/build.gradle
index a0376cd9..b14476ec 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -12,58 +12,81 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import groovy.json.JsonSlurper
-
buildscript {
- ext.kotlin_version = '2.0.0'
- repositories {
- google()
- mavenCentral()
- }
+ ext.getExtOrDefault = {name ->
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['react_native_navigation_sdk_' + name]
+ }
- dependencies {
- classpath("com.android.tools.build:gradle:8.4.0")
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
+ repositories {
+ google()
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath "com.android.tools.build:gradle:8.7.2"
+ // noinspection DifferentKotlinGradleVersion
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
+ }
}
-def isNewArchitectureEnabled() {
- return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
+apply plugin: "com.android.library"
+apply plugin: "kotlin-android"
+
+apply plugin: "com.facebook.react"
+
+def getExtOrIntegerDefault(name) {
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["react_native_navigation_sdk_" + name]).toInteger()
}
-apply plugin: 'com.android.library'
+def supportsNamespace() {
+ def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
+ def major = parsed[0].toInteger()
+ def minor = parsed[1].toInteger()
-if (isNewArchitectureEnabled()) {
- apply plugin: "com.facebook.react"
+ // Namespace support was added in 7.3.0
+ return (major == 7 && minor >= 3) || major >= 8
}
android {
- namespace "com.google.android.react.navsdk"
- compileSdkVersion 34
+ if (supportsNamespace()) {
+ namespace "com.google.maps.android.rn.navsdk"
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceSets {
+ main {
+ manifest.srcFile "src/main/AndroidManifestNew.xml"
+ }
}
+ }
- defaultConfig {
- minSdkVersion 24
- targetSdkVersion 34
- versionCode 1
- // get version name from package.json version
- versionName "1.0"
- }
+ compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
- buildTypes {
- release {
- minifyEnabled true
- }
+ defaultConfig {
+ minSdkVersion getExtOrIntegerDefault("minSdkVersion")
+ targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
+ }
+
+ buildFeatures {
+ buildConfig true
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
}
+ }
- lintOptions {
- abortOnError false
- disable "GradleCompatible"
+ lintOptions {
+ disable "GradleCompatible"
+ }
+
+ sourceSets {
+ main {
+ java.srcDirs += [
+ "generated/java",
+ "generated/jni"
+ ]
}
+ }
}
repositories {
@@ -71,11 +94,27 @@ repositories {
mavenCentral()
}
+def kotlin_version = getExtOrDefault("kotlinVersion")
+def nav_sdk_version = getExtOrDefault("navSdkVersion")
+
dependencies {
- implementation "androidx.car.app:app:1.4.0"
- implementation "androidx.car.app:app-projected:1.4.0"
- implementation 'com.facebook.react:react-native:+'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
- implementation "com.google.android.libraries.navigation:navigation:6.1.0"
- api 'com.google.guava:guava:31.0.1-android'
+ implementation "com.facebook.react:react-android"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
+
+ // Android Auto libraries
+ implementation 'androidx.car.app:app:1.4.0'
+ implementation 'androidx.car.app:app-projected:1.4.0'
+
+ // Navigation SDK library
+ implementation "com.google.android.libraries.navigation:navigation:$nav_sdk_version"
+
+ // Support libraries
+ implementation 'com.google.code.gson:gson:2.12.1'
+ api 'com.google.guava:guava:31.0.1-android'
}
+
+react {
+ jsRootDir = file("../src/")
+ libraryName = "ReactNativeNavigationSdk"
+ codegenJavaPackageName = "com.google.maps.android.rn.navsdk"
+}
\ No newline at end of file
diff --git a/android/generated/java/com/facebook/react/viewmanagers/NavViewManagerDelegate.java b/android/generated/java/com/facebook/react/viewmanagers/NavViewManagerDelegate.java
new file mode 100644
index 00000000..ff23b678
--- /dev/null
+++ b/android/generated/java/com/facebook/react/viewmanagers/NavViewManagerDelegate.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+*
+* Do not edit this file as changes may cause incorrect behavior and will be lost
+* once the code is regenerated.
+*
+* @generated by codegen project: GeneratePropsJavaDelegate.js
+*/
+
+package com.facebook.react.viewmanagers;
+
+import android.view.View;
+import androidx.annotation.Nullable;
+import com.facebook.react.bridge.DynamicFromObject;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.uimanager.BaseViewManager;
+import com.facebook.react.uimanager.BaseViewManagerDelegate;
+import com.facebook.react.uimanager.LayoutShadowNode;
+
+public class NavViewManagerDelegate & NavViewManagerInterface> extends BaseViewManagerDelegate {
+ public NavViewManagerDelegate(U viewManager) {
+ super(viewManager);
+ }
+ @Override
+ public void setProperty(T view, String propName, @Nullable Object value) {
+ switch (propName) {
+ case "viewType":
+ mViewManager.setViewType(view, value == null ? 0 : ((Double) value).intValue());
+ break;
+ case "nativeID":
+ mViewManager.setNativeID(view, value == null ? null : (String) value);
+ break;
+ case "mapId":
+ mViewManager.setMapId(view, value == null ? null : (String) value);
+ break;
+ case "mapType":
+ mViewManager.setMapType(view, value == null ? 1 : ((Double) value).intValue());
+ break;
+ case "mapPadding":
+ mViewManager.setMapPadding(view, (ReadableMap) value);
+ break;
+ case "navigationUIEnabled":
+ mViewManager.setNavigationUIEnabled(view, value == null ? null : (Boolean) value);
+ break;
+ case "tripProgressBarEnabled":
+ mViewManager.setTripProgressBarEnabled(view, value == null ? false : (boolean) value);
+ break;
+ case "trafficIncidentCardsEnabled":
+ mViewManager.setTrafficIncidentCardsEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "headerEnabled":
+ mViewManager.setHeaderEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "footerEnabled":
+ mViewManager.setFooterEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "speedometerEnabled":
+ mViewManager.setSpeedometerEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "speedLimitIconEnabled":
+ mViewManager.setSpeedLimitIconEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "recenterButtonEnabled":
+ mViewManager.setRecenterButtonEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "navigationViewStylingOptions":
+ mViewManager.setNavigationViewStylingOptions(view, new DynamicFromObject(value));
+ break;
+ case "nightMode":
+ mViewManager.setNightMode(view, value == null ? 0 : ((Double) value).intValue());
+ break;
+ case "followingPerspective":
+ mViewManager.setFollowingPerspective(view, value == null ? 0 : ((Double) value).intValue());
+ break;
+ case "mapStyle":
+ mViewManager.setMapStyle(view, value == null ? null : (String) value);
+ break;
+ case "mapToolbarEnabled":
+ mViewManager.setMapToolbarEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "indoorEnabled":
+ mViewManager.setIndoorEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "trafficEnabled":
+ mViewManager.setTrafficEnabled(view, value == null ? false : (boolean) value);
+ break;
+ case "compassEnabled":
+ mViewManager.setCompassEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "myLocationButtonEnabled":
+ mViewManager.setMyLocationButtonEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "myLocationEnabled":
+ mViewManager.setMyLocationEnabled(view, value == null ? false : (boolean) value);
+ break;
+ case "rotateGesturesEnabled":
+ mViewManager.setRotateGesturesEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "scrollGesturesEnabled":
+ mViewManager.setScrollGesturesEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "scrollGesturesEnabledDuringRotateOrZoom":
+ mViewManager.setScrollGesturesEnabledDuringRotateOrZoom(view, value == null ? true : (boolean) value);
+ break;
+ case "tiltGesturesEnabled":
+ mViewManager.setTiltGesturesEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "zoomControlsEnabled":
+ mViewManager.setZoomControlsEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "zoomGesturesEnabled":
+ mViewManager.setZoomGesturesEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "buildingsEnabled":
+ mViewManager.setBuildingsEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "reportIncidentButtonEnabled":
+ mViewManager.setReportIncidentButtonEnabled(view, value == null ? true : (boolean) value);
+ break;
+ case "minZoomLevel":
+ mViewManager.setMinZoomLevel(view, value == null ? null : ((Double) value).floatValue());
+ break;
+ case "maxZoomLevel":
+ mViewManager.setMaxZoomLevel(view, value == null ? null : ((Double) value).floatValue());
+ break;
+ case "initialCameraPosition":
+ mViewManager.setInitialCameraPosition(view, (ReadableMap) value);
+ break;
+ default:
+ super.setProperty(view, propName, value);
+ }
+ }
+}
diff --git a/android/generated/java/com/facebook/react/viewmanagers/NavViewManagerInterface.java b/android/generated/java/com/facebook/react/viewmanagers/NavViewManagerInterface.java
new file mode 100644
index 00000000..b5324d3f
--- /dev/null
+++ b/android/generated/java/com/facebook/react/viewmanagers/NavViewManagerInterface.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+*
+* Do not edit this file as changes may cause incorrect behavior and will be lost
+* once the code is regenerated.
+*
+* @generated by codegen project: GeneratePropsJavaInterface.js
+*/
+
+package com.facebook.react.viewmanagers;
+
+import android.view.View;
+import androidx.annotation.Nullable;
+import com.facebook.react.bridge.Dynamic;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
+
+public interface NavViewManagerInterface extends ViewManagerWithGeneratedInterface {
+ void setViewType(T view, int value);
+ void setNativeID(T view, @Nullable String value);
+ void setMapId(T view, @Nullable String value);
+ void setMapType(T view, int value);
+ void setMapPadding(T view, @Nullable ReadableMap value);
+ void setNavigationUIEnabled(T view, @Nullable Boolean value);
+ void setTripProgressBarEnabled(T view, boolean value);
+ void setTrafficIncidentCardsEnabled(T view, boolean value);
+ void setHeaderEnabled(T view, boolean value);
+ void setFooterEnabled(T view, boolean value);
+ void setSpeedometerEnabled(T view, boolean value);
+ void setSpeedLimitIconEnabled(T view, boolean value);
+ void setRecenterButtonEnabled(T view, boolean value);
+ void setNavigationViewStylingOptions(T view, Dynamic value);
+ void setNightMode(T view, int value);
+ void setFollowingPerspective(T view, int value);
+ void setMapStyle(T view, @Nullable String value);
+ void setMapToolbarEnabled(T view, boolean value);
+ void setIndoorEnabled(T view, boolean value);
+ void setTrafficEnabled(T view, boolean value);
+ void setCompassEnabled(T view, boolean value);
+ void setMyLocationButtonEnabled(T view, boolean value);
+ void setMyLocationEnabled(T view, boolean value);
+ void setRotateGesturesEnabled(T view, boolean value);
+ void setScrollGesturesEnabled(T view, boolean value);
+ void setScrollGesturesEnabledDuringRotateOrZoom(T view, boolean value);
+ void setTiltGesturesEnabled(T view, boolean value);
+ void setZoomControlsEnabled(T view, boolean value);
+ void setZoomGesturesEnabled(T view, boolean value);
+ void setBuildingsEnabled(T view, boolean value);
+ void setReportIncidentButtonEnabled(T view, boolean value);
+ void setMinZoomLevel(T view, @Nullable Float value);
+ void setMaxZoomLevel(T view, @Nullable Float value);
+ void setInitialCameraPosition(T view, @Nullable ReadableMap value);
+}
diff --git a/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavAutoModuleSpec.java b/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavAutoModuleSpec.java
new file mode 100644
index 00000000..373a6270
--- /dev/null
+++ b/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavAutoModuleSpec.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateModuleJavaSpec.js
+ *
+ * @nolint
+ */
+
+package com.google.maps.android.rn.navsdk;
+
+import com.facebook.proguard.annotations.DoNotStrip;
+import com.facebook.react.bridge.Promise;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.turbomodule.core.interfaces.TurboModule;
+import javax.annotation.Nonnull;
+
+public abstract class NativeNavAutoModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
+ public static final String NAME = "NavAutoModule";
+
+ public NativeNavAutoModuleSpec(ReactApplicationContext reactContext) {
+ super(reactContext);
+ }
+
+ @Override
+ public @Nonnull String getName() {
+ return NAME;
+ }
+
+ protected final void emitOnAutoScreenAvailabilityChanged(boolean value) {
+ mEventEmitterCallback.invoke("onAutoScreenAvailabilityChanged", value);
+ }
+
+ protected final void emitOnCustomNavigationAutoEvent(ReadableMap value) {
+ mEventEmitterCallback.invoke("onCustomNavigationAutoEvent", value);
+ }
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void isAutoScreenAvailable(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setMapType(double mapType);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setMapStyle(String mapStyle);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void clearMapView(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addCircle(ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addMarker(ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addPolyline(ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addPolygon(ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addGroundOverlay(ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void moveCamera(ReadableMap cameraPosition, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removeMarker(String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removePolyline(String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removePolygon(String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removeCircle(String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removeGroundOverlay(String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setIndoorEnabled(boolean isOn);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setTrafficEnabled(boolean isOn);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setCompassEnabled(boolean isOn);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setMyLocationEnabled(boolean isOn);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setBuildingsEnabled(boolean isOn);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setZoomLevel(double zoomLevel, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setMapPadding(double top, double left, double bottom, double right);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getCameraPosition(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getMyLocation(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getUiSettings(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void isMyLocationEnabled(Promise promise);
+}
diff --git a/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavModuleSpec.java b/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavModuleSpec.java
new file mode 100644
index 00000000..a99fbf0c
--- /dev/null
+++ b/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavModuleSpec.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateModuleJavaSpec.js
+ *
+ * @nolint
+ */
+
+package com.google.maps.android.rn.navsdk;
+
+import com.facebook.proguard.annotations.DoNotStrip;
+import com.facebook.react.bridge.Promise;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
+import com.facebook.react.bridge.ReadableArray;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.turbomodule.core.interfaces.TurboModule;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+public abstract class NativeNavModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
+ public static final String NAME = "NavModule";
+
+ public NativeNavModuleSpec(ReactApplicationContext reactContext) {
+ super(reactContext);
+ }
+
+ @Override
+ public @Nonnull String getName() {
+ return NAME;
+ }
+
+ protected final void emitOnNavigationReady() {
+ mEventEmitterCallback.invoke("onNavigationReady");
+ }
+
+ protected final void emitOnLocationChanged(ReadableMap value) {
+ mEventEmitterCallback.invoke("onLocationChanged", value);
+ }
+
+ protected final void emitOnArrival(ReadableMap value) {
+ mEventEmitterCallback.invoke("onArrival", value);
+ }
+
+ protected final void emitOnRemainingTimeOrDistanceChanged() {
+ mEventEmitterCallback.invoke("onRemainingTimeOrDistanceChanged");
+ }
+
+ protected final void emitOnRouteChanged() {
+ mEventEmitterCallback.invoke("onRouteChanged");
+ }
+
+ protected final void emitOnReroutingRequestedByOffRoute() {
+ mEventEmitterCallback.invoke("onReroutingRequestedByOffRoute");
+ }
+
+ protected final void emitOnStartGuidance() {
+ mEventEmitterCallback.invoke("onStartGuidance");
+ }
+
+ protected final void emitOnTurnByTurn(ReadableMap value) {
+ mEventEmitterCallback.invoke("onTurnByTurn", value);
+ }
+
+ protected final void emitOnRawLocationChanged(ReadableMap value) {
+ mEventEmitterCallback.invoke("onRawLocationChanged", value);
+ }
+
+ protected final void emitOnTrafficUpdated() {
+ mEventEmitterCallback.invoke("onTrafficUpdated");
+ }
+
+ protected final void emitLogDebugInfo(ReadableMap value) {
+ mEventEmitterCallback.invoke("logDebugInfo", value);
+ }
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void initializeNavigator(ReadableMap termsAndConditionsDialogOptions, double taskRemovedBehavior, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void cleanup(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setDestinations(ReadableArray waypoints, @Nullable ReadableMap routingOptions, @Nullable ReadableMap displayOptions, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void continueToNextDestination(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void clearDestinations(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void startGuidance(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void stopGuidance(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setSpeedAlertOptions(@Nullable ReadableMap alertOptions, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setAbnormalTerminatingReportingEnabled(boolean enabled);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setAudioGuidanceType(double index, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setBackgroundLocationUpdatesEnabled(boolean isEnabled);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setTurnByTurnLoggingEnabled(boolean isEnabled);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void areTermsAccepted(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getCurrentRouteSegment(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getRouteSegments(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getCurrentTimeAndDistance(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getTraveledPath(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getNavSDKVersion(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void stopUpdatingLocation(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void startUpdatingLocation(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void simulateLocation(ReadableMap location, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void resumeLocationSimulation(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void pauseLocationSimulation(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void simulateLocationsAlongExistingRoute(ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void stopLocationSimulation(Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void resetTermsAccepted();
+}
diff --git a/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavViewModuleSpec.java b/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavViewModuleSpec.java
new file mode 100644
index 00000000..e47d64ff
--- /dev/null
+++ b/android/generated/java/com/google/maps/android/rn/navsdk/NativeNavViewModuleSpec.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateModuleJavaSpec.js
+ *
+ * @nolint
+ */
+
+package com.google.maps.android.rn.navsdk;
+
+import com.facebook.proguard.annotations.DoNotStrip;
+import com.facebook.react.bridge.Promise;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.turbomodule.core.interfaces.TurboModule;
+import javax.annotation.Nonnull;
+
+public abstract class NativeNavViewModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
+ public static final String NAME = "NavViewModule";
+
+ public NativeNavViewModuleSpec(ReactApplicationContext reactContext) {
+ super(reactContext);
+ }
+
+ @Override
+ public @Nonnull String getName() {
+ return NAME;
+ }
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addCircle(double viewId, ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addMarker(double viewId, ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addPolyline(double viewId, ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addPolygon(double viewId, ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void addGroundOverlay(double viewId, ReadableMap options, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void moveCamera(double viewId, ReadableMap cameraPosition, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getCameraPosition(double viewId, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getMyLocation(double viewId, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void getUiSettings(double viewId, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void isMyLocationEnabled(double viewId, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void showRouteOverview(double viewId, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void clearMapView(double viewId, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removeMarker(double viewId, String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removePolyline(double viewId, String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removePolygon(double viewId, String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removeCircle(double viewId, String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void removeGroundOverlay(double viewId, String id, Promise promise);
+
+ @ReactMethod
+ @DoNotStrip
+ public abstract void setZoomLevel(double viewId, double level, Promise promise);
+}
diff --git a/android/generated/jni/CMakeLists.txt b/android/generated/jni/CMakeLists.txt
new file mode 100644
index 00000000..b044479a
--- /dev/null
+++ b/android/generated/jni/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+#
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+cmake_minimum_required(VERSION 3.13)
+set(CMAKE_VERBOSE_MAKEFILE on)
+
+file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/RNNavigationSdkSpec/*.cpp)
+
+add_library(
+ react_codegen_RNNavigationSdkSpec
+ OBJECT
+ ${react_codegen_SRCS}
+)
+
+target_include_directories(react_codegen_RNNavigationSdkSpec PUBLIC . react/renderer/components/RNNavigationSdkSpec)
+
+target_link_libraries(
+ react_codegen_RNNavigationSdkSpec
+ fbjni
+ jsi
+ # We need to link different libraries based on whether we are building rncore or not, that's necessary
+ # because we want to break a circular dependency between react_codegen_rncore and reactnative
+ reactnative
+)
+
+target_compile_options(
+ react_codegen_RNNavigationSdkSpec
+ PRIVATE
+ -DLOG_TAG=\"ReactNative\"
+ -fexceptions
+ -frtti
+ -std=c++20
+ -Wall
+)
diff --git a/android/generated/jni/RNNavigationSdkSpec-generated.cpp b/android/generated/jni/RNNavigationSdkSpec-generated.cpp
new file mode 100644
index 00000000..c314759b
--- /dev/null
+++ b/android/generated/jni/RNNavigationSdkSpec-generated.cpp
@@ -0,0 +1,487 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateModuleJniCpp.js
+ */
+
+#include "RNNavigationSdkSpec.h"
+
+namespace facebook::react {
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_isAutoScreenAvailable(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "isAutoScreenAvailable", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setMapType(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setMapType", "(D)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setMapStyle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setMapStyle", "(Ljava/lang/String;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_clearMapView(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "clearMapView", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_addCircle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addCircle", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_addMarker(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addMarker", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_addPolyline(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addPolyline", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_addPolygon(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addPolygon", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_addGroundOverlay(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addGroundOverlay", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_moveCamera(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "moveCamera", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_removeMarker(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removeMarker", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_removePolyline(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removePolyline", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_removePolygon(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removePolygon", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_removeCircle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removeCircle", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_removeGroundOverlay(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removeGroundOverlay", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setIndoorEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setIndoorEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setTrafficEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setTrafficEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setCompassEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setCompassEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setMyLocationEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setMyLocationEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setBuildingsEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setBuildingsEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setZoomLevel(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "setZoomLevel", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_setMapPadding(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setMapPadding", "(DDDD)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_getCameraPosition(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getCameraPosition", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_getMyLocation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getMyLocation", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_getUiSettings(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getUiSettings", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavAutoModuleSpecJSI_isMyLocationEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "isMyLocationEnabled", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+NativeNavAutoModuleSpecJSI::NativeNavAutoModuleSpecJSI(const JavaTurboModule::InitParams ¶ms)
+ : JavaTurboModule(params) {
+ methodMap_["isAutoScreenAvailable"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleSpecJSI_isAutoScreenAvailable};
+ methodMap_["setMapType"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setMapType};
+ methodMap_["setMapStyle"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setMapStyle};
+ methodMap_["clearMapView"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleSpecJSI_clearMapView};
+ methodMap_["addCircle"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_addCircle};
+ methodMap_["addMarker"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_addMarker};
+ methodMap_["addPolyline"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_addPolyline};
+ methodMap_["addPolygon"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_addPolygon};
+ methodMap_["addGroundOverlay"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_addGroundOverlay};
+ methodMap_["moveCamera"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_moveCamera};
+ methodMap_["removeMarker"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_removeMarker};
+ methodMap_["removePolyline"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_removePolyline};
+ methodMap_["removePolygon"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_removePolygon};
+ methodMap_["removeCircle"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_removeCircle};
+ methodMap_["removeGroundOverlay"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_removeGroundOverlay};
+ methodMap_["setIndoorEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setIndoorEnabled};
+ methodMap_["setTrafficEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setTrafficEnabled};
+ methodMap_["setCompassEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setCompassEnabled};
+ methodMap_["setMyLocationEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setMyLocationEnabled};
+ methodMap_["setBuildingsEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setBuildingsEnabled};
+ methodMap_["setZoomLevel"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleSpecJSI_setZoomLevel};
+ methodMap_["setMapPadding"] = MethodMetadata {4, __hostFunction_NativeNavAutoModuleSpecJSI_setMapPadding};
+ methodMap_["getCameraPosition"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleSpecJSI_getCameraPosition};
+ methodMap_["getMyLocation"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleSpecJSI_getMyLocation};
+ methodMap_["getUiSettings"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleSpecJSI_getUiSettings};
+ methodMap_["isMyLocationEnabled"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleSpecJSI_isMyLocationEnabled};
+ eventEmitterMap_["onAutoScreenAvailabilityChanged"] = std::make_shared>();
+ eventEmitterMap_["onCustomNavigationAutoEvent"] = std::make_shared>();
+ setEventEmitterCallback(params.instance);
+}
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_initializeNavigator(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "initializeNavigator", "(Lcom/facebook/react/bridge/ReadableMap;DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_cleanup(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "cleanup", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_setDestinations(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "setDestinations", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_continueToNextDestination(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "continueToNextDestination", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_clearDestinations(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "clearDestinations", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_startGuidance(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "startGuidance", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_stopGuidance(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "stopGuidance", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_setSpeedAlertOptions(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "setSpeedAlertOptions", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_setAbnormalTerminatingReportingEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setAbnormalTerminatingReportingEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_setAudioGuidanceType(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "setAudioGuidanceType", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_setBackgroundLocationUpdatesEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setBackgroundLocationUpdatesEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_setTurnByTurnLoggingEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "setTurnByTurnLoggingEnabled", "(Z)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_areTermsAccepted(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "areTermsAccepted", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_getCurrentRouteSegment(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getCurrentRouteSegment", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_getRouteSegments(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getRouteSegments", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_getCurrentTimeAndDistance(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getCurrentTimeAndDistance", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_getTraveledPath(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getTraveledPath", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_getNavSDKVersion(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getNavSDKVersion", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_stopUpdatingLocation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "stopUpdatingLocation", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_startUpdatingLocation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "startUpdatingLocation", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_simulateLocation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "simulateLocation", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_resumeLocationSimulation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "resumeLocationSimulation", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_pauseLocationSimulation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "pauseLocationSimulation", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_simulateLocationsAlongExistingRoute(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "simulateLocationsAlongExistingRoute", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_stopLocationSimulation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "stopLocationSimulation", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavModuleSpecJSI_resetTermsAccepted(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "resetTermsAccepted", "()V", args, count, cachedMethodId);
+}
+
+NativeNavModuleSpecJSI::NativeNavModuleSpecJSI(const JavaTurboModule::InitParams ¶ms)
+ : JavaTurboModule(params) {
+ methodMap_["initializeNavigator"] = MethodMetadata {2, __hostFunction_NativeNavModuleSpecJSI_initializeNavigator};
+ methodMap_["cleanup"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_cleanup};
+ methodMap_["setDestinations"] = MethodMetadata {3, __hostFunction_NativeNavModuleSpecJSI_setDestinations};
+ methodMap_["continueToNextDestination"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_continueToNextDestination};
+ methodMap_["clearDestinations"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_clearDestinations};
+ methodMap_["startGuidance"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_startGuidance};
+ methodMap_["stopGuidance"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_stopGuidance};
+ methodMap_["setSpeedAlertOptions"] = MethodMetadata {1, __hostFunction_NativeNavModuleSpecJSI_setSpeedAlertOptions};
+ methodMap_["setAbnormalTerminatingReportingEnabled"] = MethodMetadata {1, __hostFunction_NativeNavModuleSpecJSI_setAbnormalTerminatingReportingEnabled};
+ methodMap_["setAudioGuidanceType"] = MethodMetadata {1, __hostFunction_NativeNavModuleSpecJSI_setAudioGuidanceType};
+ methodMap_["setBackgroundLocationUpdatesEnabled"] = MethodMetadata {1, __hostFunction_NativeNavModuleSpecJSI_setBackgroundLocationUpdatesEnabled};
+ methodMap_["setTurnByTurnLoggingEnabled"] = MethodMetadata {1, __hostFunction_NativeNavModuleSpecJSI_setTurnByTurnLoggingEnabled};
+ methodMap_["areTermsAccepted"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_areTermsAccepted};
+ methodMap_["getCurrentRouteSegment"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_getCurrentRouteSegment};
+ methodMap_["getRouteSegments"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_getRouteSegments};
+ methodMap_["getCurrentTimeAndDistance"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_getCurrentTimeAndDistance};
+ methodMap_["getTraveledPath"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_getTraveledPath};
+ methodMap_["getNavSDKVersion"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_getNavSDKVersion};
+ methodMap_["stopUpdatingLocation"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_stopUpdatingLocation};
+ methodMap_["startUpdatingLocation"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_startUpdatingLocation};
+ methodMap_["simulateLocation"] = MethodMetadata {1, __hostFunction_NativeNavModuleSpecJSI_simulateLocation};
+ methodMap_["resumeLocationSimulation"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_resumeLocationSimulation};
+ methodMap_["pauseLocationSimulation"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_pauseLocationSimulation};
+ methodMap_["simulateLocationsAlongExistingRoute"] = MethodMetadata {1, __hostFunction_NativeNavModuleSpecJSI_simulateLocationsAlongExistingRoute};
+ methodMap_["stopLocationSimulation"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_stopLocationSimulation};
+ methodMap_["resetTermsAccepted"] = MethodMetadata {0, __hostFunction_NativeNavModuleSpecJSI_resetTermsAccepted};
+ eventEmitterMap_["onNavigationReady"] = std::make_shared>();
+ eventEmitterMap_["onLocationChanged"] = std::make_shared>();
+ eventEmitterMap_["onArrival"] = std::make_shared>();
+ eventEmitterMap_["onRemainingTimeOrDistanceChanged"] = std::make_shared>();
+ eventEmitterMap_["onRouteChanged"] = std::make_shared>();
+ eventEmitterMap_["onReroutingRequestedByOffRoute"] = std::make_shared>();
+ eventEmitterMap_["onStartGuidance"] = std::make_shared>();
+ eventEmitterMap_["onTurnByTurn"] = std::make_shared>();
+ eventEmitterMap_["onRawLocationChanged"] = std::make_shared>();
+ eventEmitterMap_["onTrafficUpdated"] = std::make_shared>();
+ eventEmitterMap_["logDebugInfo"] = std::make_shared>();
+ setEventEmitterCallback(params.instance);
+}
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_addCircle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addCircle", "(DLcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_addMarker(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addMarker", "(DLcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_addPolyline(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addPolyline", "(DLcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_addPolygon(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addPolygon", "(DLcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_addGroundOverlay(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "addGroundOverlay", "(DLcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_moveCamera(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "moveCamera", "(DLcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_getCameraPosition(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getCameraPosition", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_getMyLocation(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getMyLocation", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_getUiSettings(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "getUiSettings", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_isMyLocationEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "isMyLocationEnabled", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_showRouteOverview(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "showRouteOverview", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_clearMapView(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "clearMapView", "(DLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_removeMarker(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removeMarker", "(DLjava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_removePolyline(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removePolyline", "(DLjava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_removePolygon(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removePolygon", "(DLjava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_removeCircle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removeCircle", "(DLjava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_removeGroundOverlay(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "removeGroundOverlay", "(DLjava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+static facebook::jsi::Value __hostFunction_NativeNavViewModuleSpecJSI_setZoomLevel(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
+ static jmethodID cachedMethodId = nullptr;
+ return static_cast(turboModule).invokeJavaMethod(rt, PromiseKind, "setZoomLevel", "(DDLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
+}
+
+NativeNavViewModuleSpecJSI::NativeNavViewModuleSpecJSI(const JavaTurboModule::InitParams ¶ms)
+ : JavaTurboModule(params) {
+ methodMap_["addCircle"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_addCircle};
+ methodMap_["addMarker"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_addMarker};
+ methodMap_["addPolyline"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_addPolyline};
+ methodMap_["addPolygon"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_addPolygon};
+ methodMap_["addGroundOverlay"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_addGroundOverlay};
+ methodMap_["moveCamera"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_moveCamera};
+ methodMap_["getCameraPosition"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleSpecJSI_getCameraPosition};
+ methodMap_["getMyLocation"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleSpecJSI_getMyLocation};
+ methodMap_["getUiSettings"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleSpecJSI_getUiSettings};
+ methodMap_["isMyLocationEnabled"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleSpecJSI_isMyLocationEnabled};
+ methodMap_["showRouteOverview"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleSpecJSI_showRouteOverview};
+ methodMap_["clearMapView"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleSpecJSI_clearMapView};
+ methodMap_["removeMarker"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_removeMarker};
+ methodMap_["removePolyline"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_removePolyline};
+ methodMap_["removePolygon"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_removePolygon};
+ methodMap_["removeCircle"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_removeCircle};
+ methodMap_["removeGroundOverlay"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_removeGroundOverlay};
+ methodMap_["setZoomLevel"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleSpecJSI_setZoomLevel};
+}
+
+std::shared_ptr RNNavigationSdkSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms) {
+ if (moduleName == "NavAutoModule") {
+ return std::make_shared(params);
+ }
+ if (moduleName == "NavModule") {
+ return std::make_shared(params);
+ }
+ if (moduleName == "NavViewModule") {
+ return std::make_shared(params);
+ }
+ return nullptr;
+}
+
+} // namespace facebook::react
diff --git a/android/generated/jni/RNNavigationSdkSpec.h b/android/generated/jni/RNNavigationSdkSpec.h
new file mode 100644
index 00000000..ecfa5b1d
--- /dev/null
+++ b/android/generated/jni/RNNavigationSdkSpec.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateModuleJniH.js
+ */
+
+#pragma once
+
+#include
+#include
+#include
+
+namespace facebook::react {
+
+/**
+ * JNI C++ class for module 'NativeNavAutoModule'
+ */
+class JSI_EXPORT NativeNavAutoModuleSpecJSI : public JavaTurboModule {
+public:
+ NativeNavAutoModuleSpecJSI(const JavaTurboModule::InitParams ¶ms);
+};
+
+/**
+ * JNI C++ class for module 'NativeNavModule'
+ */
+class JSI_EXPORT NativeNavModuleSpecJSI : public JavaTurboModule {
+public:
+ NativeNavModuleSpecJSI(const JavaTurboModule::InitParams ¶ms);
+};
+
+/**
+ * JNI C++ class for module 'NativeNavViewModule'
+ */
+class JSI_EXPORT NativeNavViewModuleSpecJSI : public JavaTurboModule {
+public:
+ NativeNavViewModuleSpecJSI(const JavaTurboModule::InitParams ¶ms);
+};
+
+
+JSI_EXPORT
+std::shared_ptr RNNavigationSdkSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms);
+
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/ComponentDescriptors.cpp b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/ComponentDescriptors.cpp
new file mode 100644
index 00000000..85f87836
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/ComponentDescriptors.cpp
@@ -0,0 +1,36 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateComponentDescriptorCpp.js
+ */
+
+#include "ComponentDescriptors.h"
+#include
+#include
+
+namespace facebook::react {
+
+void RNNavigationSdkSpec_registerComponentDescriptorsFromCodegen(
+ std::shared_ptr registry) {
+registry->add(concreteComponentDescriptorProvider());
+}
+
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/ComponentDescriptors.h b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/ComponentDescriptors.h
new file mode 100644
index 00000000..5d39c69b
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/ComponentDescriptors.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateComponentDescriptorH.js
+ */
+
+#pragma once
+
+#include "ShadowNodes.h"
+#include
+#include
+
+namespace facebook::react {
+
+using NavViewComponentDescriptor = ConcreteComponentDescriptor;
+
+void RNNavigationSdkSpec_registerComponentDescriptorsFromCodegen(
+ std::shared_ptr registry);
+
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/EventEmitters.cpp b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/EventEmitters.cpp
new file mode 100644
index 00000000..055eb82a
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/EventEmitters.cpp
@@ -0,0 +1,201 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateEventEmitterCpp.js
+ */
+
+#include "EventEmitters.h"
+
+
+namespace facebook::react {
+
+void NavViewEventEmitter::onMapReady(OnMapReady $event) const {
+ dispatchEvent("mapReady", [](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onMapClick(OnMapClick $event) const {
+ dispatchEvent("mapClick", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+ $payload.setProperty(runtime, "lat", $event.lat);
+$payload.setProperty(runtime, "lng", $event.lng);
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onMarkerClick(OnMarkerClick $event) const {
+ dispatchEvent("markerClick", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+ {
+ auto position = jsi::Object(runtime);
+ position.setProperty(runtime, "lat", $event.position.lat);
+ position.setProperty(runtime, "lng", $event.position.lng);
+ $payload.setProperty(runtime, "position", position);
+}
+$payload.setProperty(runtime, "id", $event.id);
+$payload.setProperty(runtime, "title", $event.title);
+$payload.setProperty(runtime, "alpha", $event.alpha);
+$payload.setProperty(runtime, "rotation", $event.rotation);
+$payload.setProperty(runtime, "snippet", $event.snippet);
+$payload.setProperty(runtime, "zIndex", $event.zIndex);
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onPolylineClick(OnPolylineClick $event) const {
+ dispatchEvent("polylineClick", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+
+ auto points = jsi::Array(runtime, $event.points.size());
+ size_t pointsIndex = 0;
+ for (auto pointsValue : $event.points) {
+ auto pointsObject = jsi::Object(runtime);
+ pointsObject.setProperty(runtime, "lat", pointsValue.lat);
+pointsObject.setProperty(runtime, "lng", pointsValue.lng);
+ points.setValueAtIndex(runtime, pointsIndex++, pointsObject);
+ }
+ $payload.setProperty(runtime, "points", points);
+
+$payload.setProperty(runtime, "id", $event.id);
+$payload.setProperty(runtime, "color", $event.color);
+$payload.setProperty(runtime, "width", $event.width);
+$payload.setProperty(runtime, "jointType", $event.jointType);
+$payload.setProperty(runtime, "zIndex", $event.zIndex);
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onPolygonClick(OnPolygonClick $event) const {
+ dispatchEvent("polygonClick", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+
+ auto points = jsi::Array(runtime, $event.points.size());
+ size_t pointsIndex = 0;
+ for (auto pointsValue : $event.points) {
+ auto pointsObject = jsi::Object(runtime);
+ pointsObject.setProperty(runtime, "lat", pointsValue.lat);
+pointsObject.setProperty(runtime, "lng", pointsValue.lng);
+ points.setValueAtIndex(runtime, pointsIndex++, pointsObject);
+ }
+ $payload.setProperty(runtime, "points", points);
+
+
+ auto holes = jsi::Array(runtime, $event.holes.size());
+ size_t holesIndex = 0;
+ for (auto holesValue : $event.holes) {
+ auto holesArray = jsi::Array(runtime, holesValue.size());
+ size_t holesIndexInternal = 0;
+ for (auto holesValueInternal : holesValue) {
+ auto holesArrayObject = jsi::Object(runtime);
+ holesArrayObject.setProperty(runtime, "lat", holesValueInternal.lat);
+holesArrayObject.setProperty(runtime, "lng", holesValueInternal.lng);
+ holesArray.setValueAtIndex(runtime, holesIndexInternal++, holesArrayObject);
+ }
+ holes.setValueAtIndex(runtime, holesIndex++, holesArray);
+ }
+ $payload.setProperty(runtime, "holes", holes);
+
+$payload.setProperty(runtime, "id", $event.id);
+$payload.setProperty(runtime, "fillColor", $event.fillColor);
+$payload.setProperty(runtime, "strokeWidth", $event.strokeWidth);
+$payload.setProperty(runtime, "strokeColor", $event.strokeColor);
+$payload.setProperty(runtime, "strokeJointType", $event.strokeJointType);
+$payload.setProperty(runtime, "zIndex", $event.zIndex);
+$payload.setProperty(runtime, "geodesic", $event.geodesic);
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onCircleClick(OnCircleClick $event) const {
+ dispatchEvent("circleClick", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+ {
+ auto center = jsi::Object(runtime);
+ center.setProperty(runtime, "lat", $event.center.lat);
+ center.setProperty(runtime, "lng", $event.center.lng);
+ $payload.setProperty(runtime, "center", center);
+}
+$payload.setProperty(runtime, "id", $event.id);
+$payload.setProperty(runtime, "fillColor", $event.fillColor);
+$payload.setProperty(runtime, "strokeWidth", $event.strokeWidth);
+$payload.setProperty(runtime, "strokeColor", $event.strokeColor);
+$payload.setProperty(runtime, "radius", $event.radius);
+$payload.setProperty(runtime, "zIndex", $event.zIndex);
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onGroundOverlayClick(OnGroundOverlayClick $event) const {
+ dispatchEvent("groundOverlayClick", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+ $payload.setProperty(runtime, "id", $event.id);
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onMarkerInfoWindowTapped(OnMarkerInfoWindowTapped $event) const {
+ dispatchEvent("markerInfoWindowTapped", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+ {
+ auto position = jsi::Object(runtime);
+ position.setProperty(runtime, "lat", $event.position.lat);
+ position.setProperty(runtime, "lng", $event.position.lng);
+ $payload.setProperty(runtime, "position", position);
+}
+$payload.setProperty(runtime, "id", $event.id);
+$payload.setProperty(runtime, "title", $event.title);
+$payload.setProperty(runtime, "alpha", $event.alpha);
+$payload.setProperty(runtime, "rotation", $event.rotation);
+$payload.setProperty(runtime, "snippet", $event.snippet);
+$payload.setProperty(runtime, "zIndex", $event.zIndex);
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onRecenterButtonClick(OnRecenterButtonClick $event) const {
+ dispatchEvent("recenterButtonClick", [](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+
+ return $payload;
+ });
+}
+
+
+void NavViewEventEmitter::onPromptVisibilityChanged(OnPromptVisibilityChanged $event) const {
+ dispatchEvent("promptVisibilityChanged", [$event=std::move($event)](jsi::Runtime &runtime) {
+ auto $payload = jsi::Object(runtime);
+ $payload.setProperty(runtime, "visible", $event.visible);
+ return $payload;
+ });
+}
+
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/EventEmitters.h b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/EventEmitters.h
new file mode 100644
index 00000000..d37a2726
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/EventEmitters.h
@@ -0,0 +1,157 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateEventEmitterH.js
+ */
+#pragma once
+
+#include
+
+
+namespace facebook::react {
+class NavViewEventEmitter : public ViewEventEmitter {
+ public:
+ using ViewEventEmitter::ViewEventEmitter;
+
+ struct OnMapReady {
+
+ };
+
+ struct OnMapClick {
+ Float lat;
+ Float lng;
+ };
+
+ struct OnMarkerClickPosition {
+ Float lat;
+ Float lng;
+ };
+
+ struct OnMarkerClick {
+ OnMarkerClickPosition position;
+ std::string id;
+ std::string title;
+ Float alpha;
+ Float rotation;
+ std::string snippet;
+ int zIndex;
+ };
+
+ struct OnPolylineClickPoints {
+ Float lat;
+ Float lng;
+ };
+
+ struct OnPolylineClick {
+ std::vector points;
+ std::string id;
+ std::string color;
+ Float width;
+ int jointType;
+ int zIndex;
+ };
+
+ struct OnPolygonClickPoints {
+ Float lat;
+ Float lng;
+ };
+
+ struct OnPolygonClickHoles {
+ Float lat;
+ Float lng;
+ };
+
+ struct OnPolygonClick {
+ std::vector points;
+ std::vector> holes;
+ std::string id;
+ std::string fillColor;
+ Float strokeWidth;
+ std::string strokeColor;
+ int strokeJointType;
+ int zIndex;
+ bool geodesic;
+ };
+
+ struct OnCircleClickCenter {
+ Float lat;
+ Float lng;
+ };
+
+ struct OnCircleClick {
+ OnCircleClickCenter center;
+ std::string id;
+ std::string fillColor;
+ Float strokeWidth;
+ std::string strokeColor;
+ Float radius;
+ int zIndex;
+ };
+
+ struct OnGroundOverlayClick {
+ std::string id;
+ };
+
+ struct OnMarkerInfoWindowTappedPosition {
+ Float lat;
+ Float lng;
+ };
+
+ struct OnMarkerInfoWindowTapped {
+ OnMarkerInfoWindowTappedPosition position;
+ std::string id;
+ std::string title;
+ Float alpha;
+ Float rotation;
+ std::string snippet;
+ int zIndex;
+ };
+
+ struct OnRecenterButtonClick {
+
+ };
+
+ struct OnPromptVisibilityChanged {
+ bool visible;
+ };
+ void onMapReady(OnMapReady value) const;
+
+ void onMapClick(OnMapClick value) const;
+
+ void onMarkerClick(OnMarkerClick value) const;
+
+ void onPolylineClick(OnPolylineClick value) const;
+
+ void onPolygonClick(OnPolygonClick value) const;
+
+ void onCircleClick(OnCircleClick value) const;
+
+ void onGroundOverlayClick(OnGroundOverlayClick value) const;
+
+ void onMarkerInfoWindowTapped(OnMarkerInfoWindowTapped value) const;
+
+ void onRecenterButtonClick(OnRecenterButtonClick value) const;
+
+ void onPromptVisibilityChanged(OnPromptVisibilityChanged value) const;
+};
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/Props.cpp b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/Props.cpp
new file mode 100644
index 00000000..635dff4b
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/Props.cpp
@@ -0,0 +1,122 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/**
+ * This code was generated by
+ * [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be
+ * lost once the code is regenerated.
+ *
+ * @generated by codegen project: GeneratePropsCpp.js
+ */
+
+#include "Props.h"
+#include
+#include
+#include
+
+namespace facebook::react {
+
+NavViewProps::NavViewProps(const PropsParserContext &context,
+ const NavViewProps &sourceProps,
+ const RawProps &rawProps)
+ : ViewProps(context, sourceProps, rawProps),
+
+ viewType(convertRawProp(context, rawProps, "viewType",
+ sourceProps.viewType, {0})),
+ nativeID(convertRawProp(context, rawProps, "nativeID",
+ sourceProps.nativeID, {})),
+ mapId(convertRawProp(context, rawProps, "mapId", sourceProps.mapId, {})),
+ mapType(convertRawProp(context, rawProps, "mapType", sourceProps.mapType,
+ {1})),
+ mapPadding(convertRawProp(context, rawProps, "mapPadding",
+ sourceProps.mapPadding, {})),
+ navigationUIEnabled(convertRawProp(context, rawProps,
+ "navigationUIEnabled",
+ sourceProps.navigationUIEnabled, {})),
+ tripProgressBarEnabled(
+ convertRawProp(context, rawProps, "tripProgressBarEnabled",
+ sourceProps.tripProgressBarEnabled, {false})),
+ trafficIncidentCardsEnabled(
+ convertRawProp(context, rawProps, "trafficIncidentCardsEnabled",
+ sourceProps.trafficIncidentCardsEnabled, {true})),
+ headerEnabled(convertRawProp(context, rawProps, "headerEnabled",
+ sourceProps.headerEnabled, {true})),
+ footerEnabled(convertRawProp(context, rawProps, "footerEnabled",
+ sourceProps.footerEnabled, {true})),
+ speedometerEnabled(convertRawProp(context, rawProps, "speedometerEnabled",
+ sourceProps.speedometerEnabled,
+ {true})),
+ speedLimitIconEnabled(
+ convertRawProp(context, rawProps, "speedLimitIconEnabled",
+ sourceProps.speedLimitIconEnabled, {true})),
+ recenterButtonEnabled(
+ convertRawProp(context, rawProps, "recenterButtonEnabled",
+ sourceProps.recenterButtonEnabled, {true})),
+ navigationViewStylingOptions(
+ convertRawProp(context, rawProps, "navigationViewStylingOptions",
+ sourceProps.navigationViewStylingOptions, {})),
+ nightMode(convertRawProp(context, rawProps, "nightMode",
+ sourceProps.nightMode, {0})),
+ followingPerspective(
+ convertRawProp(context, rawProps, "followingPerspective",
+ sourceProps.followingPerspective, {0})),
+ mapStyle(convertRawProp(context, rawProps, "mapStyle",
+ sourceProps.mapStyle, {})),
+ mapToolbarEnabled(convertRawProp(context, rawProps, "mapToolbarEnabled",
+ sourceProps.mapToolbarEnabled, {true})),
+ indoorEnabled(convertRawProp(context, rawProps, "indoorEnabled",
+ sourceProps.indoorEnabled, {true})),
+ trafficEnabled(convertRawProp(context, rawProps, "trafficEnabled",
+ sourceProps.trafficEnabled, {false})),
+ compassEnabled(convertRawProp(context, rawProps, "compassEnabled",
+ sourceProps.compassEnabled, {true})),
+ myLocationButtonEnabled(
+ convertRawProp(context, rawProps, "myLocationButtonEnabled",
+ sourceProps.myLocationButtonEnabled, {true})),
+ myLocationEnabled(convertRawProp(context, rawProps, "myLocationEnabled",
+ sourceProps.myLocationEnabled, {false})),
+ rotateGesturesEnabled(
+ convertRawProp(context, rawProps, "rotateGesturesEnabled",
+ sourceProps.rotateGesturesEnabled, {true})),
+ scrollGesturesEnabled(
+ convertRawProp(context, rawProps, "scrollGesturesEnabled",
+ sourceProps.scrollGesturesEnabled, {true})),
+ scrollGesturesEnabledDuringRotateOrZoom(convertRawProp(
+ context, rawProps, "scrollGesturesEnabledDuringRotateOrZoom",
+ sourceProps.scrollGesturesEnabledDuringRotateOrZoom, {true})),
+ tiltGesturesEnabled(
+ convertRawProp(context, rawProps, "tiltGesturesEnabled",
+ sourceProps.tiltGesturesEnabled, {true})),
+ zoomControlsEnabled(
+ convertRawProp(context, rawProps, "zoomControlsEnabled",
+ sourceProps.zoomControlsEnabled, {true})),
+ zoomGesturesEnabled(
+ convertRawProp(context, rawProps, "zoomGesturesEnabled",
+ sourceProps.zoomGesturesEnabled, {true})),
+ buildingsEnabled(convertRawProp(context, rawProps, "buildingsEnabled",
+ sourceProps.buildingsEnabled, {true})),
+ reportIncidentButtonEnabled(
+ convertRawProp(context, rawProps, "reportIncidentButtonEnabled",
+ sourceProps.reportIncidentButtonEnabled, {true})),
+ minZoomLevel(convertRawProp(context, rawProps, "minZoomLevel",
+ sourceProps.minZoomLevel, {})),
+ maxZoomLevel(convertRawProp(context, rawProps, "maxZoomLevel",
+ sourceProps.maxZoomLevel, {})),
+ initialCameraPosition(
+ convertRawProp(context, rawProps, "initialCameraPosition",
+ sourceProps.initialCameraPosition, {})) {}
+
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/Props.h b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/Props.h
new file mode 100644
index 00000000..3709bc0c
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/Props.h
@@ -0,0 +1,171 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This code was generated by
+ * [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be
+ * lost once the code is regenerated.
+ *
+ * @generated by codegen project: GeneratePropsH.js
+ */
+#pragma once
+
+#include
+#include
+#include
+
+namespace facebook::react {
+
+struct NavViewMapPaddingStruct {
+ int top{0};
+ int left{0};
+ int bottom{0};
+ int right{0};
+};
+
+static inline void fromRawValue(const PropsParserContext &context,
+ const RawValue &value,
+ NavViewMapPaddingStruct &result) {
+ auto map = (std::unordered_map)value;
+
+ auto tmp_top = map.find("top");
+ if (tmp_top != map.end()) {
+ fromRawValue(context, tmp_top->second, result.top);
+ }
+ auto tmp_left = map.find("left");
+ if (tmp_left != map.end()) {
+ fromRawValue(context, tmp_left->second, result.left);
+ }
+ auto tmp_bottom = map.find("bottom");
+ if (tmp_bottom != map.end()) {
+ fromRawValue(context, tmp_bottom->second, result.bottom);
+ }
+ auto tmp_right = map.find("right");
+ if (tmp_right != map.end()) {
+ fromRawValue(context, tmp_right->second, result.right);
+ }
+}
+
+static inline std::string toString(const NavViewMapPaddingStruct &value) {
+ return "[Object NavViewMapPaddingStruct]";
+}
+
+struct NavViewInitialCameraPositionTargetStruct {
+ Float lat{};
+ Float lng{};
+};
+
+static inline void
+fromRawValue(const PropsParserContext &context, const RawValue &value,
+ NavViewInitialCameraPositionTargetStruct &result) {
+ auto map = (std::unordered_map)value;
+
+ auto tmp_lat = map.find("lat");
+ if (tmp_lat != map.end()) {
+ fromRawValue(context, tmp_lat->second, result.lat);
+ }
+ auto tmp_lng = map.find("lng");
+ if (tmp_lng != map.end()) {
+ fromRawValue(context, tmp_lng->second, result.lng);
+ }
+}
+
+static inline std::string
+toString(const NavViewInitialCameraPositionTargetStruct &value) {
+ return "[Object NavViewInitialCameraPositionTargetStruct]";
+}
+
+struct NavViewInitialCameraPositionStruct {
+ NavViewInitialCameraPositionTargetStruct target{};
+ Float bearing{};
+ Float tilt{};
+ Float zoom{};
+};
+
+static inline void fromRawValue(const PropsParserContext &context,
+ const RawValue &value,
+ NavViewInitialCameraPositionStruct &result) {
+ auto map = (std::unordered_map)value;
+
+ auto tmp_target = map.find("target");
+ if (tmp_target != map.end()) {
+ fromRawValue(context, tmp_target->second, result.target);
+ }
+ auto tmp_bearing = map.find("bearing");
+ if (tmp_bearing != map.end()) {
+ fromRawValue(context, tmp_bearing->second, result.bearing);
+ }
+ auto tmp_tilt = map.find("tilt");
+ if (tmp_tilt != map.end()) {
+ fromRawValue(context, tmp_tilt->second, result.tilt);
+ }
+ auto tmp_zoom = map.find("zoom");
+ if (tmp_zoom != map.end()) {
+ fromRawValue(context, tmp_zoom->second, result.zoom);
+ }
+}
+
+static inline std::string
+toString(const NavViewInitialCameraPositionStruct &value) {
+ return "[Object NavViewInitialCameraPositionStruct]";
+}
+class NavViewProps final : public ViewProps {
+public:
+ NavViewProps() = default;
+ NavViewProps(const PropsParserContext &context,
+ const NavViewProps &sourceProps, const RawProps &rawProps);
+
+#pragma mark - Props
+
+ int viewType{0};
+ std::string nativeID{};
+ std::string mapId{};
+ int mapType{1};
+ NavViewMapPaddingStruct mapPadding{};
+ bool navigationUIEnabled{};
+ bool tripProgressBarEnabled{false};
+ bool trafficIncidentCardsEnabled{true};
+ bool headerEnabled{true};
+ bool footerEnabled{true};
+ bool speedometerEnabled{true};
+ bool speedLimitIconEnabled{true};
+ bool recenterButtonEnabled{true};
+ folly::dynamic navigationViewStylingOptions{};
+ int nightMode{0};
+ int followingPerspective{0};
+ std::string mapStyle{};
+ bool mapToolbarEnabled{true};
+ bool indoorEnabled{true};
+ bool trafficEnabled{false};
+ bool compassEnabled{true};
+ bool myLocationButtonEnabled{true};
+ bool myLocationEnabled{false};
+ bool rotateGesturesEnabled{true};
+ bool scrollGesturesEnabled{true};
+ bool scrollGesturesEnabledDuringRotateOrZoom{true};
+ bool tiltGesturesEnabled{true};
+ bool zoomControlsEnabled{true};
+ bool zoomGesturesEnabled{true};
+ bool buildingsEnabled{true};
+ bool reportIncidentButtonEnabled{true};
+ Float minZoomLevel{};
+ Float maxZoomLevel{};
+ NavViewInitialCameraPositionStruct initialCameraPosition{};
+};
+
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/RNNavigationSdkSpecJSI-generated.cpp b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/RNNavigationSdkSpecJSI-generated.cpp
new file mode 100644
index 00000000..e55443dc
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/RNNavigationSdkSpecJSI-generated.cpp
@@ -0,0 +1,539 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateModuleCpp.js
+ */
+
+#include "RNNavigationSdkSpecJSI.h"
+
+namespace facebook::react {
+
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_isAutoScreenAvailable(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->isAutoScreenAvailable(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMapType(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setMapType(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMapStyle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setMapStyle(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_clearMapView(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->clearMapView(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_addCircle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addCircle(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_addMarker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addMarker(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_addPolyline(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addPolyline(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_addPolygon(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addPolygon(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_addGroundOverlay(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addGroundOverlay(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_moveCamera(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->moveCamera(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_removeMarker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removeMarker(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_removePolyline(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removePolyline(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_removePolygon(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removePolygon(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_removeCircle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removeCircle(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_removeGroundOverlay(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removeGroundOverlay(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setIndoorEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setIndoorEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setTrafficEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setTrafficEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setCompassEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setCompassEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMyLocationEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setMyLocationEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setBuildingsEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setBuildingsEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setZoomLevel(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->setZoomLevel(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMapPadding(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setMapPadding(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber(),
+ count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asNumber(),
+ count <= 3 ? throw jsi::JSError(rt, "Expected argument in position 3 to be passed") : args[3].asNumber()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_getCameraPosition(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getCameraPosition(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_getMyLocation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getMyLocation(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_getUiSettings(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getUiSettings(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavAutoModuleCxxSpecJSI_isMyLocationEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->isMyLocationEnabled(
+ rt
+ );
+}
+
+NativeNavAutoModuleCxxSpecJSI::NativeNavAutoModuleCxxSpecJSI(std::shared_ptr jsInvoker)
+ : TurboModule("NavAutoModule", jsInvoker) {
+ methodMap_["isAutoScreenAvailable"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleCxxSpecJSI_isAutoScreenAvailable};
+ methodMap_["setMapType"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMapType};
+ methodMap_["setMapStyle"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMapStyle};
+ methodMap_["clearMapView"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleCxxSpecJSI_clearMapView};
+ methodMap_["addCircle"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_addCircle};
+ methodMap_["addMarker"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_addMarker};
+ methodMap_["addPolyline"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_addPolyline};
+ methodMap_["addPolygon"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_addPolygon};
+ methodMap_["addGroundOverlay"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_addGroundOverlay};
+ methodMap_["moveCamera"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_moveCamera};
+ methodMap_["removeMarker"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_removeMarker};
+ methodMap_["removePolyline"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_removePolyline};
+ methodMap_["removePolygon"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_removePolygon};
+ methodMap_["removeCircle"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_removeCircle};
+ methodMap_["removeGroundOverlay"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_removeGroundOverlay};
+ methodMap_["setIndoorEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setIndoorEnabled};
+ methodMap_["setTrafficEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setTrafficEnabled};
+ methodMap_["setCompassEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setCompassEnabled};
+ methodMap_["setMyLocationEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMyLocationEnabled};
+ methodMap_["setBuildingsEnabled"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setBuildingsEnabled};
+ methodMap_["setZoomLevel"] = MethodMetadata {1, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setZoomLevel};
+ methodMap_["setMapPadding"] = MethodMetadata {4, __hostFunction_NativeNavAutoModuleCxxSpecJSI_setMapPadding};
+ methodMap_["getCameraPosition"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleCxxSpecJSI_getCameraPosition};
+ methodMap_["getMyLocation"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleCxxSpecJSI_getMyLocation};
+ methodMap_["getUiSettings"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleCxxSpecJSI_getUiSettings};
+ methodMap_["isMyLocationEnabled"] = MethodMetadata {0, __hostFunction_NativeNavAutoModuleCxxSpecJSI_isMyLocationEnabled};
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_initializeNavigator(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->initializeNavigator(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_cleanup(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->cleanup(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_setDestinations(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->setDestinations(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt).asArray(rt),
+ count <= 1 || args[1].isUndefined() ? std::nullopt : std::make_optional(args[1].asObject(rt)),
+ count <= 2 || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asObject(rt))
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_continueToNextDestination(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->continueToNextDestination(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_clearDestinations(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->clearDestinations(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_startGuidance(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->startGuidance(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_stopGuidance(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->stopGuidance(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_setSpeedAlertOptions(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->setSpeedAlertOptions(
+ rt,
+ count <= 0 || args[0].isNull() || args[0].isUndefined() ? std::nullopt : std::make_optional(args[0].asObject(rt))
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_setAbnormalTerminatingReportingEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setAbnormalTerminatingReportingEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_setAudioGuidanceType(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->setAudioGuidanceType(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_setBackgroundLocationUpdatesEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setBackgroundLocationUpdatesEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_setTurnByTurnLoggingEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->setTurnByTurnLoggingEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
+ );
+ return jsi::Value::undefined();
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_areTermsAccepted(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->areTermsAccepted(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_getCurrentRouteSegment(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getCurrentRouteSegment(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_getRouteSegments(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getRouteSegments(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_getCurrentTimeAndDistance(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getCurrentTimeAndDistance(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_getTraveledPath(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getTraveledPath(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_getNavSDKVersion(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getNavSDKVersion(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_stopUpdatingLocation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->stopUpdatingLocation(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_startUpdatingLocation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->startUpdatingLocation(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_simulateLocation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->simulateLocation(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_resumeLocationSimulation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->resumeLocationSimulation(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_pauseLocationSimulation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->pauseLocationSimulation(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_simulateLocationsAlongExistingRoute(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->simulateLocationsAlongExistingRoute(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_stopLocationSimulation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->stopLocationSimulation(
+ rt
+ );
+}
+static jsi::Value __hostFunction_NativeNavModuleCxxSpecJSI_resetTermsAccepted(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ static_cast(&turboModule)->resetTermsAccepted(
+ rt
+ );
+ return jsi::Value::undefined();
+}
+
+NativeNavModuleCxxSpecJSI::NativeNavModuleCxxSpecJSI(std::shared_ptr jsInvoker)
+ : TurboModule("NavModule", jsInvoker) {
+ methodMap_["initializeNavigator"] = MethodMetadata {2, __hostFunction_NativeNavModuleCxxSpecJSI_initializeNavigator};
+ methodMap_["cleanup"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_cleanup};
+ methodMap_["setDestinations"] = MethodMetadata {3, __hostFunction_NativeNavModuleCxxSpecJSI_setDestinations};
+ methodMap_["continueToNextDestination"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_continueToNextDestination};
+ methodMap_["clearDestinations"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_clearDestinations};
+ methodMap_["startGuidance"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_startGuidance};
+ methodMap_["stopGuidance"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_stopGuidance};
+ methodMap_["setSpeedAlertOptions"] = MethodMetadata {1, __hostFunction_NativeNavModuleCxxSpecJSI_setSpeedAlertOptions};
+ methodMap_["setAbnormalTerminatingReportingEnabled"] = MethodMetadata {1, __hostFunction_NativeNavModuleCxxSpecJSI_setAbnormalTerminatingReportingEnabled};
+ methodMap_["setAudioGuidanceType"] = MethodMetadata {1, __hostFunction_NativeNavModuleCxxSpecJSI_setAudioGuidanceType};
+ methodMap_["setBackgroundLocationUpdatesEnabled"] = MethodMetadata {1, __hostFunction_NativeNavModuleCxxSpecJSI_setBackgroundLocationUpdatesEnabled};
+ methodMap_["setTurnByTurnLoggingEnabled"] = MethodMetadata {1, __hostFunction_NativeNavModuleCxxSpecJSI_setTurnByTurnLoggingEnabled};
+ methodMap_["areTermsAccepted"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_areTermsAccepted};
+ methodMap_["getCurrentRouteSegment"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_getCurrentRouteSegment};
+ methodMap_["getRouteSegments"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_getRouteSegments};
+ methodMap_["getCurrentTimeAndDistance"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_getCurrentTimeAndDistance};
+ methodMap_["getTraveledPath"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_getTraveledPath};
+ methodMap_["getNavSDKVersion"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_getNavSDKVersion};
+ methodMap_["stopUpdatingLocation"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_stopUpdatingLocation};
+ methodMap_["startUpdatingLocation"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_startUpdatingLocation};
+ methodMap_["simulateLocation"] = MethodMetadata {1, __hostFunction_NativeNavModuleCxxSpecJSI_simulateLocation};
+ methodMap_["resumeLocationSimulation"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_resumeLocationSimulation};
+ methodMap_["pauseLocationSimulation"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_pauseLocationSimulation};
+ methodMap_["simulateLocationsAlongExistingRoute"] = MethodMetadata {1, __hostFunction_NativeNavModuleCxxSpecJSI_simulateLocationsAlongExistingRoute};
+ methodMap_["stopLocationSimulation"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_stopLocationSimulation};
+ methodMap_["resetTermsAccepted"] = MethodMetadata {0, __hostFunction_NativeNavModuleCxxSpecJSI_resetTermsAccepted};
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_addCircle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addCircle(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_addMarker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addMarker(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_addPolyline(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addPolyline(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_addPolygon(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addPolygon(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_addGroundOverlay(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->addGroundOverlay(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_moveCamera(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->moveCamera(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_getCameraPosition(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getCameraPosition(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_getMyLocation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getMyLocation(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_getUiSettings(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->getUiSettings(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_isMyLocationEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->isMyLocationEnabled(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_showRouteOverview(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->showRouteOverview(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_clearMapView(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->clearMapView(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_removeMarker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removeMarker(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_removePolyline(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removePolyline(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_removePolygon(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removePolygon(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_removeCircle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removeCircle(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_removeGroundOverlay(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->removeGroundOverlay(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
+ );
+}
+static jsi::Value __hostFunction_NativeNavViewModuleCxxSpecJSI_setZoomLevel(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast(&turboModule)->setZoomLevel(
+ rt,
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber()
+ );
+}
+
+NativeNavViewModuleCxxSpecJSI::NativeNavViewModuleCxxSpecJSI(std::shared_ptr jsInvoker)
+ : TurboModule("NavViewModule", jsInvoker) {
+ methodMap_["addCircle"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_addCircle};
+ methodMap_["addMarker"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_addMarker};
+ methodMap_["addPolyline"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_addPolyline};
+ methodMap_["addPolygon"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_addPolygon};
+ methodMap_["addGroundOverlay"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_addGroundOverlay};
+ methodMap_["moveCamera"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_moveCamera};
+ methodMap_["getCameraPosition"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleCxxSpecJSI_getCameraPosition};
+ methodMap_["getMyLocation"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleCxxSpecJSI_getMyLocation};
+ methodMap_["getUiSettings"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleCxxSpecJSI_getUiSettings};
+ methodMap_["isMyLocationEnabled"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleCxxSpecJSI_isMyLocationEnabled};
+ methodMap_["showRouteOverview"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleCxxSpecJSI_showRouteOverview};
+ methodMap_["clearMapView"] = MethodMetadata {1, __hostFunction_NativeNavViewModuleCxxSpecJSI_clearMapView};
+ methodMap_["removeMarker"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_removeMarker};
+ methodMap_["removePolyline"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_removePolyline};
+ methodMap_["removePolygon"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_removePolygon};
+ methodMap_["removeCircle"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_removeCircle};
+ methodMap_["removeGroundOverlay"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_removeGroundOverlay};
+ methodMap_["setZoomLevel"] = MethodMetadata {2, __hostFunction_NativeNavViewModuleCxxSpecJSI_setZoomLevel};
+}
+
+
+} // namespace facebook::react
diff --git a/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/RNNavigationSdkSpecJSI.h b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/RNNavigationSdkSpecJSI.h
new file mode 100644
index 00000000..22311602
--- /dev/null
+++ b/android/generated/jni/react/renderer/components/RNNavigationSdkSpec/RNNavigationSdkSpecJSI.h
@@ -0,0 +1,2864 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
+ *
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
+ * once the code is regenerated.
+ *
+ * @generated by codegen project: GenerateModuleH.js
+ */
+
+#pragma once
+
+#include
+#include
+
+namespace facebook::react {
+
+
+
+#pragma mark - NativeNavAutoModuleCameraPositionSpec
+
+template
+struct NativeNavAutoModuleCameraPositionSpec {
+ P0 target;
+ P1 bearing;
+ P2 tilt;
+ P3 zoom;
+ bool operator==(const NativeNavAutoModuleCameraPositionSpec &other) const {
+ return target == other.target && bearing == other.bearing && tilt == other.tilt && zoom == other.zoom;
+ }
+};
+
+template
+struct NativeNavAutoModuleCameraPositionSpecBridging {
+ static T types;
+
+ static T fromJs(
+ jsi::Runtime &rt,
+ const jsi::Object &value,
+ const std::shared_ptr &jsInvoker) {
+ T result{
+ bridging::fromJs(rt, value.getProperty(rt, "target"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "bearing"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "tilt"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "zoom"), jsInvoker)};
+ return result;
+ }
+
+#ifdef DEBUG
+ static std::optional targetToJs(jsi::Runtime &rt, decltype(types.target) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional bearingToJs(jsi::Runtime &rt, decltype(types.bearing) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional tiltToJs(jsi::Runtime &rt, decltype(types.tilt) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional zoomToJs(jsi::Runtime &rt, decltype(types.zoom) value) {
+ return bridging::toJs(rt, value);
+ }
+#endif
+
+ static jsi::Object toJs(
+ jsi::Runtime &rt,
+ const T &value,
+ const std::shared_ptr &jsInvoker) {
+ auto result = facebook::jsi::Object(rt);
+ if (value.target) {
+ result.setProperty(rt, "target", bridging::toJs(rt, value.target.value(), jsInvoker));
+ }
+ if (value.bearing) {
+ result.setProperty(rt, "bearing", bridging::toJs(rt, value.bearing.value(), jsInvoker));
+ }
+ if (value.tilt) {
+ result.setProperty(rt, "tilt", bridging::toJs(rt, value.tilt.value(), jsInvoker));
+ }
+ if (value.zoom) {
+ result.setProperty(rt, "zoom", bridging::toJs(rt, value.zoom.value(), jsInvoker));
+ }
+ return result;
+ }
+};
+
+
+
+#pragma mark - NativeNavAutoModuleCircleOptionsSpec
+
+template
+struct NativeNavAutoModuleCircleOptionsSpec {
+ P0 center;
+ P1 id;
+ P2 radius;
+ P3 strokeWidth;
+ P4 strokeColor;
+ P5 fillColor;
+ P6 clickable;
+ P7 visible;
+ P8 zIndex;
+ bool operator==(const NativeNavAutoModuleCircleOptionsSpec &other) const {
+ return center == other.center && id == other.id && radius == other.radius && strokeWidth == other.strokeWidth && strokeColor == other.strokeColor && fillColor == other.fillColor && clickable == other.clickable && visible == other.visible && zIndex == other.zIndex;
+ }
+};
+
+template
+struct NativeNavAutoModuleCircleOptionsSpecBridging {
+ static T types;
+
+ static T fromJs(
+ jsi::Runtime &rt,
+ const jsi::Object &value,
+ const std::shared_ptr &jsInvoker) {
+ T result{
+ bridging::fromJs(rt, value.getProperty(rt, "center"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "id"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "radius"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "strokeWidth"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "strokeColor"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "fillColor"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "clickable"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "visible"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "zIndex"), jsInvoker)};
+ return result;
+ }
+
+#ifdef DEBUG
+ static jsi::Object centerToJs(jsi::Runtime &rt, decltype(types.center) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional idToJs(jsi::Runtime &rt, decltype(types.id) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static double radiusToJs(jsi::Runtime &rt, decltype(types.radius) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional strokeWidthToJs(jsi::Runtime &rt, decltype(types.strokeWidth) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional strokeColorToJs(jsi::Runtime &rt, decltype(types.strokeColor) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional fillColorToJs(jsi::Runtime &rt, decltype(types.fillColor) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional clickableToJs(jsi::Runtime &rt, decltype(types.clickable) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional visibleToJs(jsi::Runtime &rt, decltype(types.visible) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional zIndexToJs(jsi::Runtime &rt, decltype(types.zIndex) value) {
+ return bridging::toJs(rt, value);
+ }
+#endif
+
+ static jsi::Object toJs(
+ jsi::Runtime &rt,
+ const T &value,
+ const std::shared_ptr &jsInvoker) {
+ auto result = facebook::jsi::Object(rt);
+ result.setProperty(rt, "center", bridging::toJs(rt, value.center, jsInvoker));
+ if (value.id) {
+ result.setProperty(rt, "id", bridging::toJs(rt, value.id.value(), jsInvoker));
+ }
+ result.setProperty(rt, "radius", bridging::toJs(rt, value.radius, jsInvoker));
+ if (value.strokeWidth) {
+ result.setProperty(rt, "strokeWidth", bridging::toJs(rt, value.strokeWidth.value(), jsInvoker));
+ }
+ if (value.strokeColor) {
+ result.setProperty(rt, "strokeColor", bridging::toJs(rt, value.strokeColor.value(), jsInvoker));
+ }
+ if (value.fillColor) {
+ result.setProperty(rt, "fillColor", bridging::toJs(rt, value.fillColor.value(), jsInvoker));
+ }
+ if (value.clickable) {
+ result.setProperty(rt, "clickable", bridging::toJs(rt, value.clickable.value(), jsInvoker));
+ }
+ if (value.visible) {
+ result.setProperty(rt, "visible", bridging::toJs(rt, value.visible.value(), jsInvoker));
+ }
+ if (value.zIndex) {
+ result.setProperty(rt, "zIndex", bridging::toJs(rt, value.zIndex.value(), jsInvoker));
+ }
+ return result;
+ }
+};
+
+
+
+#pragma mark - NativeNavAutoModuleCustomNavigationAutoEventSpec
+
+template
+struct NativeNavAutoModuleCustomNavigationAutoEventSpec {
+ P0 type;
+ P1 data;
+ bool operator==(const NativeNavAutoModuleCustomNavigationAutoEventSpec &other) const {
+ return type == other.type && data == other.data;
+ }
+};
+
+template
+struct NativeNavAutoModuleCustomNavigationAutoEventSpecBridging {
+ static T types;
+
+ static T fromJs(
+ jsi::Runtime &rt,
+ const jsi::Object &value,
+ const std::shared_ptr &jsInvoker) {
+ T result{
+ bridging::fromJs(rt, value.getProperty(rt, "type"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "data"), jsInvoker)};
+ return result;
+ }
+
+#ifdef DEBUG
+ static jsi::String typeToJs(jsi::Runtime &rt, decltype(types.type) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional dataToJs(jsi::Runtime &rt, decltype(types.data) value) {
+ return bridging::toJs(rt, value);
+ }
+#endif
+
+ static jsi::Object toJs(
+ jsi::Runtime &rt,
+ const T &value,
+ const std::shared_ptr &jsInvoker) {
+ auto result = facebook::jsi::Object(rt);
+ result.setProperty(rt, "type", bridging::toJs(rt, value.type, jsInvoker));
+ result.setProperty(rt, "data", bridging::toJs(rt, value.data, jsInvoker));
+ return result;
+ }
+};
+
+
+
+#pragma mark - NativeNavAutoModuleMarkerOptionsSpec
+
+template
+struct NativeNavAutoModuleMarkerOptionsSpec {
+ P0 position;
+ P1 id;
+ P2 imgPath;
+ P3 title;
+ P4 snippet;
+ P5 alpha;
+ P6 rotation;
+ P7 draggable;
+ P8 flat;
+ P9 visible;
+ P10 zIndex;
+ bool operator==(const NativeNavAutoModuleMarkerOptionsSpec &other) const {
+ return position == other.position && id == other.id && imgPath == other.imgPath && title == other.title && snippet == other.snippet && alpha == other.alpha && rotation == other.rotation && draggable == other.draggable && flat == other.flat && visible == other.visible && zIndex == other.zIndex;
+ }
+};
+
+template
+struct NativeNavAutoModuleMarkerOptionsSpecBridging {
+ static T types;
+
+ static T fromJs(
+ jsi::Runtime &rt,
+ const jsi::Object &value,
+ const std::shared_ptr &jsInvoker) {
+ T result{
+ bridging::fromJs(rt, value.getProperty(rt, "position"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "id"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "imgPath"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "title"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "snippet"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "alpha"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "rotation"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "draggable"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "flat"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "visible"), jsInvoker),
+ bridging::fromJs(rt, value.getProperty(rt, "zIndex"), jsInvoker)};
+ return result;
+ }
+
+#ifdef DEBUG
+ static jsi::Object positionToJs(jsi::Runtime &rt, decltype(types.position) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional idToJs(jsi::Runtime &rt, decltype(types.id) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional imgPathToJs(jsi::Runtime &rt, decltype(types.imgPath) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional titleToJs(jsi::Runtime &rt, decltype(types.title) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional snippetToJs(jsi::Runtime &rt, decltype(types.snippet) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional alphaToJs(jsi::Runtime &rt, decltype(types.alpha) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional rotationToJs(jsi::Runtime &rt, decltype(types.rotation) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional draggableToJs(jsi::Runtime &rt, decltype(types.draggable) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional flatToJs(jsi::Runtime &rt, decltype(types.flat) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional visibleToJs(jsi::Runtime &rt, decltype(types.visible) value) {
+ return bridging::toJs(rt, value);
+ }
+
+ static std::optional zIndexToJs(jsi::Runtime &rt, decltype(types.zIndex) value) {
+ return bridging::toJs(rt, value);
+ }
+#endif
+
+ static jsi::Object toJs(
+ jsi::Runtime &rt,
+ const T &value,
+ const std::shared_ptr