react-native-background-geolocation 5.0.4 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,291 +1,65 @@
1
- | <img src="https://dl.dropbox.com/s/gxl3sr8znhkrtah/expo-logo.png?dl=1" alt="alt text" width="32" /> | Now with *Expo* support |
2
- | --- | --- |
3
-
4
-
5
- Background Geolocation for React Native &middot; [![npm](https://img.shields.io/npm/dm/react-native-background-geolocation.svg)]() [![npm](https://img.shields.io/npm/v/react-native-background-geolocation.svg)]()
6
- ============================================================================
7
-
8
- [![](https://dl.dropboxusercontent.com/s/nm4s5ltlug63vv8/logo-150-print.png?dl=1)](https://www.transistorsoft.com)
9
-
10
- -------------------------------------------------------------------------------
11
-
12
- The *most* sophisticated background **location-tracking & geofencing** module with battery-conscious motion-detection intelligence for **iOS** and **Android**.
13
-
14
- The plugin's [Philosophy of Operation](../../wiki/Philosophy-of-Operation) is to use **motion-detection** APIs (using accelerometer, gyroscope and magnetometer) to detect when the device is *moving* and *stationary*.
15
-
16
- - When the device is detected to be **moving**, the plugin will *automatically* start recording a location according to the configured `distanceFilter` (meters).
17
-
18
- - When the device is detected be **stationary**, the plugin will automatically turn off location-services to conserve energy.
19
-
20
- Also available for [Flutter](https://github.com/transistorsoft/flutter_background_geolocation), [Cordova](https://github.com/transistorsoft/cordova-background-geolocation-lt), [Capacitor](https://github.com/transistorsoft/capacitor-background-geolocation) and pure native apps.
21
-
22
- > [!NOTE]
23
- > The **[Android module](http://www.transistorsoft.com/shop/products/react-native-background-geolocation)** requires [purchasing a license](http://www.transistorsoft.com/shop/products/react-native-background-geolocation). However, it *will* work for **DEBUG** builds. It will **not** work with **RELEASE** builds [without purchasing a license](http://www.transistorsoft.com/shop/products/react-native-background-geolocation). This plugin is supported **full-time** and field-tested **daily** since 2013.
24
-
25
- ----------------------------------------------------------------------------
26
-
27
- [![Google Play](https://dl.dropboxusercontent.com/s/80rf906x0fheb26/google-play-icon.png?dl=1)](https://play.google.com/store/apps/details?id=com.transistorsoft.backgroundgeolocation.react)
28
-
29
- ![Home](https://dl.dropboxusercontent.com/s/wa43w1n3xhkjn0i/home-framed-350.png?dl=1)
30
- ![Settings](https://dl.dropboxusercontent.com/s/8oad228siog49kt/settings-framed-350.png?dl=1)
31
-
32
- > [!CAUTION]
33
- > This README references the new __`v5.x`__ branch of the SDK. If you're using __`v4.x`__, you must reference [__`v4.x`__](https://github.com/transistorsoft/react-native-background-geolocation/tree/4.19.4) branch.
34
-
35
- # Contents
36
- - ### 😫 [Help!](../../wiki/Help)
37
- - ### :books: [API Documentation](https://transistorsoft.github.io/react-native-background-geolocation/latest)
38
- - ### [Installing the Plugin](#large_blue_diamond-installing-the-plugin)
39
- - ### [Setup Guides](#large_blue_diamond-setup-guides)
40
- - ### [Configure your License](#large_blue_diamond-configure-your-license)
41
- - ### [Using the plugin](#large_blue_diamond-using-the-plugin)
42
- - ### [Example](#large_blue_diamond-example)
43
- - ### [Debugging](../../wiki/Debugging)
44
- - ### [Demo Application](#large_blue_diamond-demo-application)
45
- - ### [Testing Server](#large_blue_diamond-simple-testing-server)
46
- - ### [Privacy Policy](help/PRIVACY_POLICY.md)
47
-
48
- ## :large_blue_diamond: Installing the Plugin
49
-
50
- > [!CAUTION]
51
- > This is the new v5 version. For previous version, see [`v4.x`](https://github.com/transistorsoft/react-native-background-geolocation/tree/4.19.4). __`v4.x`__ license keys do not work with __`v5`__. Login to the customer dashboard to generate a __`v5`__ key.
52
-
53
-
54
- ### With *Expo*
55
-
56
- ```shell
57
- npx expo install react-native-background-geolocation
58
- ```
59
-
60
- ### With `yarn`
61
-
62
- ```bash
63
- yarn add react-native-background-geolocation
64
- ```
65
-
66
- ### With `npm`
67
- ```
68
- $ npm install react-native-background-geolocation --save
69
- ```
70
-
71
- ## :large_blue_diamond: Setup Guides
72
-
73
- ### Expo
74
- - [Expo Setup](help/INSTALL-EXPO.md)
75
-
76
- ### iOS
77
- - [Auto-linking Setup](help/INSTALL-IOS-AUTO.md)
78
-
79
- ### Android
80
- - [Auto-linking Setup](help/INSTALL-ANDROID-AUTO.md)
81
-
82
-
83
- ## :large_blue_diamond: Configure your license
84
-
85
- 1. Login to Customer Dashboard to generate an application key:
86
- [www.transistorsoft.com/shop/customers](http://www.transistorsoft.com/shop/customers)
87
- ![](https://gallery.mailchimp.com/e932ea68a1cb31b9ce2608656/images/b2696718-a77e-4f50-96a8-0b61d8019bac.png)
88
-
89
- 2. __`[Android]`__ Add your license-key to `android/app/src/main/AndroidManifest.xml`:
90
-
91
- ```diff
92
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
93
- package="com.transistorsoft.backgroundgeolocation.react">
94
-
95
- <application
96
- android:name=".MainApplication"
97
- android:allowBackup="true"
98
- android:label="@string/app_name"
99
- android:icon="@mipmap/ic_launcher"
100
- android:theme="@style/AppTheme">
101
-
102
- <!-- react-native-background-geolocation licence -->
103
- + <meta-data android:name="com.transistorsoft.locationmanager.license" android:value="YOUR_ANDROID_LICENCE_KEY_HERE" />
104
- .
105
- .
106
- .
107
- </application>
108
- </manifest>
109
- ```
110
-
111
- 3. __`[iOS]`__ Add your license-key to your __`Info.plist`__
112
-
113
- | Key | Type | Value |
114
- |-----|-------|-------------|
115
- | *`TSLocationManagerLicense`* | `String` | ` <PASTE YOUR IOS LICENSE KEY HERE> ` |
116
-
117
- __`TSLocationManagerLicense`__. Paste the contents of your license key into the __`value`__.
118
-
119
- ## :large_blue_diamond: Using the plugin ##
120
-
121
- ```javascript
122
- import BackgroundGeolocation from "react-native-background-geolocation";
123
- ```
124
-
125
- ## :large_blue_diamond: Example
126
-
127
- There are three main steps to using `BackgroundGeolocation`
128
- 1. Wire up event-listeners.
129
- 2. `.ready(config)` the plugin.
130
- 3. `.start()` the plugin.
131
-
132
- > [!WARNING]
133
- > Do not execute *any* API method which will require accessing location-services until the **[`.ready(config)`](https://transistorsoft.github.io/react-native-background-geolocation/latest/interfaces/BackgroundGeolocation.html#ready)** method resolves ([Read its API docs](https://transistorsoft.github.io/react-native-background-geolocation/latest/interfaces/BackgroundGeolocation.html#ready)), For example:
134
- >- `.getCurrentPosition`
135
- >- `.watchPosition`
136
- >- `.start`
137
-
138
- ```javascript
139
- // NO! .ready() has not resolved.
140
- await BackgroundGeolocation.getCurrentPosition(options);
141
- await BackgroundGeolocation.start();
142
-
143
- // First call .ready(config)
144
- const state = await BackgroundGeolocation.ready(config);
145
- const location = await BackgroundGeolocation.getCurrentPosition(options);
146
- await BackgroundGeolocation.start();
147
-
148
-
149
- // NO! .ready() has not resolved.
150
- const location = await BackgroundGeolocation.getCurrentPosition(options);
151
- await BackgroundGeolocation.start();
152
- ```
153
-
154
-
155
- ### Example
156
-
157
- ```javascript
158
-
159
- import React from 'react';
160
- import {
161
- Switch,
162
- Text,
163
- View,
164
- } from 'react-native';
165
-
166
- import BackgroundGeolocation, {
167
- Location,
168
- Subscription
169
- } from "react-native-background-geolocation";
170
-
171
- const HelloWorld = () => {
172
- const [enabled, setEnabled] = React.useState(false);
173
- const [location, setLocation] = React.useState('');
174
-
175
- React.useEffect(() => {
176
- /// 1. Subscribe to events.
177
- const onLocation:Subscription = BackgroundGeolocation.onLocation((location) => {
178
- console.log('[onLocation]', location);
179
- setLocation(JSON.stringify(location, null, 2));
180
- })
181
-
182
- const onMotionChange:Subscription = BackgroundGeolocation.onMotionChange((event) => {
183
- console.log('[onMotionChange]', event);
184
- });
185
-
186
- const onActivityChange:Subscription = BackgroundGeolocation.onActivityChange((event) => {
187
- console.log('[onActivityChange]', event);
188
- })
189
-
190
- const onProviderChange:Subscription = BackgroundGeolocation.onProviderChange((event) => {
191
- console.log('[onProviderChange]', event);
192
- })
193
-
194
- /// 2. ready the plugin.
195
- BackgroundGeolocation.ready({
196
- // Geolocation Config
197
- geolocation: {
198
- desiredAccuracy: BackgroundGeolocation.DesiredAccuracy.High
199
- distanceFilter: 10,
200
- stopTimeout: 5
201
- },
202
- // Logger Config
203
- logger: {
204
- debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
205
- logLevel: BackgroundGeolocation.LogLevel.Verbose
206
- },
207
- // Application config
208
- app: {
209
- stopOnTerminate: false, // <-- Allow the background-service to continue tracking when user closes the app.
210
- startOnBoot: true // <-- Auto start tracking when device is powered-up.
211
- },
212
- // Http Config
213
- http: {
214
- url: 'http://yourserver.com/locations',
215
- batchSync: false, // <-- [Default: false] Set true to sync locations to server in a single HTTP request.
216
- autoSync: true, // <-- [Default: true] Set true to sync each location to server as it arrives.
217
- headers: { // <-- Optional HTTP headers
218
- "X-FOO": "bar"
219
- },
220
- params: { // <-- Optional HTTP params
221
- "auth_token": "maybe_your_server_authenticates_via_token_YES?"
222
- }
223
- }
224
- }).then((state) => {
225
- setEnabled(state.enabled)
226
- console.log("- BackgroundGeolocation is configured and ready: ", state.enabled);
227
- });
228
-
229
- return () => {
230
- // Remove BackgroundGeolocation event-subscribers when the View is removed or refreshed
231
- // during development live-reload. Without this, event-listeners will accumulate with
232
- // each refresh during live-reload.
233
- onLocation.remove();
234
- onMotionChange.remove();
235
- onActivityChange.remove();
236
- onProviderChange.remove();
237
- }
238
- }, []);
239
-
240
- /// 3. start / stop BackgroundGeolocation
241
- React.useEffect(() => {
242
- if (enabled) {
243
- BackgroundGeolocation.start();
244
- } else {
245
- BackgroundGeolocation.stop();
246
- setLocation('');
247
- }
248
- }, [enabled]);
249
-
250
- return (
251
- <View style={{alignItems:'center'}}>
252
- <Text>Click to enable BackgroundGeolocation</Text>
253
- <Switch value={enabled} onValueChange={setEnabled} />
254
- <Text style={{fontFamily:'monospace', fontSize:12}}>{location}</Text>
255
- </View>
256
- )
257
- }
258
-
259
- export default HelloWorld;
260
- ```
261
-
262
- ## :large_blue_diamond: [Demo Application](example)
263
-
264
- Clone this repo and see apps in [/example](example) folder.
265
-
266
-
267
- # License
268
-
269
- The MIT License (MIT)
270
-
271
- Copyright (c) 2018 Chris Scott, Transistor Software
272
-
273
- Permission is hereby granted, free of charge, to any person obtaining a copy
274
- of this software and associated documentation files (the "Software"), to deal
275
- in the Software without restriction, including without limitation the rights
276
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
277
- copies of the Software, and to permit persons to whom the Software is
278
- furnished to do so, subject to the following conditions:
279
-
280
- The above copyright notice and this permission notice shall be included in all
281
- copies or substantial portions of the Software.
282
-
283
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
284
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
285
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
286
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
287
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
288
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
289
- SOFTWARE.
290
-
291
-
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/transistorsoft/assets/master/images/logos/transistor/transistor-logo-panel-react-native.svg" alt="Background Geolocation for React Native" width="635">
3
+ </p>
4
+
5
+ # Background Geolocation for React Native &amp; Expo
6
+
7
+ [![npm](https://img.shields.io/npm/dm/react-native-background-geolocation.svg)]() [![npm](https://img.shields.io/npm/v/react-native-background-geolocation.svg)]()
8
+
9
+ The most sophisticated background **location-tracking & geofencing** SDK with battery-conscious motion-detection intelligence for **iOS** and **Android**.
10
+
11
+ The SDK uses **motion-detection** APIs (accelerometer, gyroscope, magnetometer) to detect when the device is *moving* or *stationary*:
12
+
13
+ - **Moving** — location recording starts automatically at the configured `distanceFilter` (metres)
14
+ - **Stationary** location services turn off automatically to conserve battery
15
+
16
+ > [!IMPORTANT]
17
+ > This is **`v5`**. For the previous version see [`v4.x`](https://github.com/transistorsoft/react-native-background-geolocation/tree/4.19.4). **`v4.x`** license keys do **not** work with **`v5`** — log in to the [Customer Dashboard](https://transistorsoft.com) to generate a **`v5`** key. See the [Migration Guide](help/MIGRATION-GUIDE-5.0.0.md) for details.
18
+
19
+ ---
20
+
21
+ ## :books: Documentation
22
+
23
+ ### <img src="assets/images/platforms/react-native.svg" width="20" height="20"> React Native
24
+ - [Setup](https://docs.transistorsoft.com/typescript/setup/?tab=react-native)
25
+ - [API Reference](https://docs.transistorsoft.com/typescript/BackgroundGeolocation/)
26
+ - [Example](https://docs.transistorsoft.com/typescript/examples/?tab=react-native)
27
+
28
+ ### <img src="assets/images/platforms/expo.svg" width="20" height="20"> Expo
29
+ - [Setup](https://docs.transistorsoft.com/typescript/setup/?tab=expo)
30
+ - [API Reference](https://docs.transistorsoft.com/typescript/BackgroundGeolocation/)
31
+ - [Example](https://docs.transistorsoft.com/typescript/examples/?tab=react-native)
32
+
33
+ ---
34
+
35
+ ## :key: Licensing
36
+
37
+ > [!TIP]
38
+ > The SDK is **fully functional in `DEBUG` builds** — no license required. Try before you buy.
39
+
40
+ A license is required only for **`RELEASE` builds** on Android.
41
+ [Purchase a license](https://shop.transistorsoft.com/products/react-native-background-geolocation)
42
+
43
+ ---
44
+
45
+ ## :open_file_folder: Example Apps
46
+
47
+ See [`/example`](example/README.md) — example apps are included in this repo.
48
+
49
+ ---
50
+
51
+ ## 📦 SDK availability
52
+
53
+ | Platform | Package |
54
+ |---|---|
55
+ | <img src="assets/images/platforms/react-native.svg" width="16" height="16"> React Native | **This repo** |
56
+ | <img src="assets/images/platforms/expo.svg" width="16" height="16"> Expo | **This repo** |
57
+ | <img src="assets/images/platforms/flutter.svg" width="16" height="16"> [Flutter](https://github.com/transistorsoft/flutter_background_geolocation) | `flutter_background_geolocation` |
58
+ | <img src="assets/images/platforms/capacitor.svg" width="16" height="16"> [Capacitor](https://github.com/transistorsoft/capacitor-background-geolocation) | `@transistorsoft/capacitor-background-geolocation` |
59
+ | <img src="assets/images/platforms/cordova.svg" width="16" height="16"> [Cordova](https://github.com/transistorsoft/cordova-background-geolocation-lt) | `cordova-background-geolocation-lt` |
60
+ | <img src="assets/images/platforms/swift.svg" width="16" height="16"> [Swift / iOS](https://github.com/transistorsoft/background-geolocation) | `background-geolocation` |
61
+ | <img src="assets/images/platforms/kotlin.svg" width="16" height="16"> [Kotlin / Android](https://github.com/transistorsoft/background-geolocation) | `background-geolocation` |
62
+
63
+ ---
64
+
65
+ MIT © [Transistor Software](https://www.transistorsoft.com)
@@ -26,8 +26,7 @@ Pod::Spec.new do |s|
26
26
  s.source_files = 'ios/RNBackgroundGeolocation/*.{h,m,mm}'
27
27
  s.preserve_paths = 'docs', 'CHANGELOG.md', 'LICENSE', 'package.json', 'RNBackgroundGeolocation.ios.js'
28
28
 
29
- s.dependency 'CocoaLumberjack', '~> 3.8.5'
30
- s.dependency 'TSLocationManager', '~> 4.0.10'
29
+ s.dependency 'TSLocationManager', '~> 4.1.0'
31
30
 
32
31
  s.libraries = 'sqlite3', 'z', 'stdc++'
33
32
  s.resource_bundles = {
@@ -9,7 +9,7 @@ def DEFAULT_TARGET_SDK_VERSION = 35
9
9
 
10
10
  // Plugin dependencies
11
11
  def DEFAULT_PLAY_SERVICES_LOCATION_VERSION = "21.3.0"
12
- def DEFAULT_TSLOCATIONMANAGER_VERSION = "4.0.+"
12
+ def DEFAULT_TSLOCATIONMANAGER_VERSION = "4.1.+"
13
13
  def DEFAULT_OK_HTTP_VERSION = "4.12.0"
14
14
  def DEFAULT_ANDROID_PERMISSIONS_VERSION = "2.1.6"
15
15
  def DEFAULT_EVENTBUS_VERSION = "3.3.1"
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Android — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <g transform="scale(0.03566) translate(-2183.82,-196.50)"><path fill="#34A853" d="m 2520.38,377.22997 c -0.22,-1.378 -0.43,-2.74 -0.66,-4.102 -1.39,-8.451 -3.12,-16.803 -5.13,-25.041 -3.53,-14.391 -7.97,-28.437 -13.27,-42.04 -4.48,-11.52 -9.58,-22.727 -15.24,-33.59 -7.28,-13.948 -15.49,-27.338 -24.56,-40.072 -11.12,-15.605 -23.54,-30.225 -37.1,-43.697 -5.69,-5.662 -11.58,-11.126 -17.66,-16.361 -13.17,-11.371 -27.24,-21.725 -42.06,-30.98 0.13,-0.214 0.24,-0.443 0.37,-0.657 6.79,-11.732 13.6,-23.449 20.39,-35.181 6.64,-11.453998 13.28,-22.907998 19.92,-34.360998 4.78,-8.221 9.55,-16.459 14.3,-24.68 1.13,-1.953 2.02,-3.971 2.69,-6.038 1.86,-5.76 1.94,-11.815 0.45,-17.444 -0.38,-1.394 -0.84,-2.756 -1.4,-4.085 -0.56,-1.33 -1.21,-2.626 -1.95,-3.873 -2.54,-4.266 -6.17,-7.9749997 -10.73,-10.6829997 -4.03,-2.395 -8.54,-3.823 -13.16,-4.233 -1.94,-0.164 -3.89,-0.148 -5.83,0.049 -1.6,0.164 -3.19,0.46 -4.77,0.87 -5.62,1.493 -10.84,4.578 -14.9,9.0409997 -1.46,1.608 -2.78,3.381 -3.91,5.333 -4.77,8.221 -9.54,16.459 -14.3,24.68 l -19.92,34.361 c -6.79,11.733 -13.6,23.449 -20.39,35.181998 -0.74,1.279 -1.49,2.559 -2.23,3.856 -1.03,-0.411 -2.05,-0.821 -3.08,-1.215 -37.44,-14.275998 -78.06,-22.085998 -120.52,-22.085998 -1.16,0 -2.31,0 -3.48,0.016 -37.75,0.377 -74.02,6.941 -107.86,18.722998 -3.91,1.362 -7.78,2.806 -11.62,4.316 -0.69,-1.198 -1.4,-2.396 -2.08,-3.594 -6.79,-11.732998 -13.6,-23.448998 -20.39,-35.181998 -6.64,-11.453 -13.28,-22.907 -19.92,-34.361 -4.78,-8.221 -9.55,-16.458 -14.3,-24.679 -1.14,-1.953 -2.45,-3.725 -3.91,-5.333 -4.06,-4.4639997 -9.28,-7.5489997 -14.9,-9.0419997 -1.58,-0.41 -3.17,-0.705 -4.78,-0.869 -1.93,-0.197 -3.88,-0.214 -5.82,-0.05 -4.62,0.394 -9.13,1.822 -13.17,4.234 -4.56,2.707 -8.16,6.4159997 -10.72,10.6819997 -0.74,1.247 -1.4,2.544 -1.95,3.873 -0.56,1.329 -1.04,2.691 -1.4,4.086 -1.49,5.628 -1.41,11.683 0.44,17.443 0.68,2.068 1.56,4.086 2.69,6.039 4.78,8.221 9.55,16.458 14.3,24.679 6.65,11.454 13.29,22.908 19.93,34.360998 6.79,11.733 13.59,23.449 20.38,35.182 0.05,0.098 0.12,0.197 0.17,0.295 -13.7,8.517 -26.73,17.952 -39.03,28.273 -7.37,6.187 -14.47,12.668 -21.27,19.445 -13.55,13.472 -25.96,28.093 -37.1,43.698 -9.08,12.734 -17.3,26.107 -24.56,40.072 -5.66,10.863 -10.76,22.07 -15.24,33.59 -5.3,13.603 -9.74,27.649 -13.27,42.04 -2.01,8.238 -3.72,16.574 -5.13,25.041 -0.23,1.362 -0.44,2.74 -0.65,4.102 -0.76,4.907 -1.4,9.846 -1.94,14.818 h 673.11 c -0.54,-4.972 -1.18,-9.911 -1.93,-14.818 z"/><path fill="#202124" d="m 2360.79,298.98697 c 13.47,-8.966 15.43,-29.71 4.37,-46.331 -11.05,-16.622 -30.93,-22.827 -44.39,-13.861 -13.47,8.967 -15.43,29.71 -4.37,46.331 11.05,16.622 30.93,22.828 44.39,13.861 z"/><path fill="#202124" d="m 2055.6,285.18397 c 11.06,-16.622 9.1,-37.365 -4.37,-46.331 -13.47,-8.967 -33.34,-2.761 -44.4,13.86 -11.05,16.622 -9.09,37.365 4.37,46.331 13.47,8.967 33.35,2.761 44.4,-13.86 z"/></g>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Capacitor — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <defs><linearGradient id="capg" x1="-12" y1="0" x2="12" y2="0" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#75CEFF"/><stop offset="100%" stop-color="#4BAEFF"/></linearGradient></defs><polygon points="-12.0,-3.1 -5.9,3.0 -12.0,9.0 -9.1,12.0 -3.0,5.9 3.1,12.0 6.0,9.0 -9.0,-6.1" fill="url(#capg)"/><polygon points="12.0,-9.1 9.0,-12.0 3.0,-5.9 -3.1,-12.0 -6.1,-9.0 9.0,6.0 12.0,3.1 5.9,-3.0" fill="url(#capg)"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Cordova — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <defs><linearGradient id="cdv3450" x1="386.67" y1="402.39" x2="70.08" y2="198.42" gradientUnits="userSpaceOnUse" gradientTransform="translate(-14.85,-10.61)"><stop offset="0" stop-color="#acacac"/><stop offset="1" stop-color="#e9e9e9"/></linearGradient><linearGradient id="cdv4818" x1="367.78" y1="117.80" x2="107" y2="143.96" gradientUnits="userSpaceOnUse" gradientTransform="translate(-14.85,-10.61)"><stop offset="0" stop-color="#e5e5e5"/><stop offset="1" stop-color="#ffffff"/></linearGradient><linearGradient id="cdv4786" x1="342.03" y1="321.85" x2="326.45" y2="136.71" gradientUnits="userSpaceOnUse" gradientTransform="translate(-14.85,-10.61)"><stop offset="0" stop-color="#24303a"/><stop offset="1" stop-color="#394958"/></linearGradient><linearGradient id="cdv4796" x1="342.03" y1="321.85" x2="326.45" y2="136.71" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1,0,0,1,477.74,-10.61)"><stop offset="0" stop-color="#24303a"/><stop offset="1" stop-color="#394958"/></linearGradient><radialGradient id="cdv4773" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.92308,-11.50769,-5.89644,-0.47304,-2165.70,4248.20)" cx="355.75" cy="-334.76" r="16.25"><stop offset="0" stop-color="#25303b" stop-opacity="1"/><stop offset="1" stop-color="#25303b" stop-opacity="0"/></radialGradient><linearGradient id="cdv4842" x1="182.23" y1="190.19" x2="182.23" y2="317.94" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffffff" stop-opacity="1"/><stop offset="0.5" stop-color="#ffffff" stop-opacity="0.53"/><stop offset="1" stop-color="#ffffff" stop-opacity="0"/></linearGradient><linearGradient id="cdv4854" x1="193.99" y1="190.19" x2="193.99" y2="126.35" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffffff" stop-opacity="1"/><stop offset="1" stop-color="#ffffff" stop-opacity="0"/></linearGradient><filter id="cdvf4539" style="color-interpolation-filters:sRGB" x="-0.201" width="1.402" y="-0.054" height="1.107"><feGaussianBlur stdDeviation="1.11"/></filter><filter id="cdvf4710" style="color-interpolation-filters:sRGB" x="-0.415" width="1.830" y="-0.111" height="1.222"><feGaussianBlur stdDeviation="2.29"/></filter></defs><g transform="scale(0.06814) translate(-231.1,-229.7)"><path fill="#7f8082" fill-rule="evenodd" d="m 341.15271,349.75084 -23.10547,48.26758 -15.9099,-60.10408 z"/><path fill="#7f8082" fill-rule="evenodd" d="m 128.40662,349.75084 15.73047,48.26758 15.9099,-60.10408 z"/><path fill="url(#cdv3450)" fill-rule="evenodd" stroke="#d6d6d6" stroke-width="1" stroke-linejoin="round" d="m 54.984742,190.19418 -0.01172,0.0176 32.791014,207.80664 56.373052,0 -4.60547,-48.26758 28.92383,0 3.68359,48.26758 118.08984,0 3.6836,-48.26758 28.74023,0 -4.60547,48.26758 56.74024,0 32.42383,-207.80664 -0.0117,-0.0176 -352.214848,0 z"/><path fill="url(#cdv4773)" fill-rule="evenodd" d="m 135.55849,317.93931 16.95592,-63.52818 -1.19223,-128.31045 -31.799,64.0935 z"/><path fill="#293441" fill-rule="evenodd" d="m 257.328,113.53179 70.27003,0 -1.44288,155.31435 -74.24552,0 z"/><path fill="#293441" fill-rule="evenodd" d="m 206.49966,113.62857 -68.4447,0.0422 1.62166,154.62151 69.68419,0 z"/><path fill="#2d3948" fill-rule="evenodd" d="m 145.13904,254.41098 -9.58008,63.5293 191.625,0 -11.39062,-63.07618 z"/><path fill="url(#cdv4786)" fill-rule="evenodd" d="m 327.18449,317.9405 -16.64092,-63.07721 0.6253,-129.16888 32.19531,64.49609 z"/><path fill="url(#cdv4796)" fill-rule="evenodd" d="m 135.7047,317.9405 16.80971,-63.52937 -1.19223,-128.31045 -31.79717,64.08982 z"/><path fill="#2d3b48" fill-rule="evenodd" d="m 199.31573,149.42759 6.32722,134.88013 49.28521,0 7.93879,-134.88013 z"/><path fill="url(#cdv4818)" fill-rule="evenodd" stroke="#d6d6d6" stroke-width="1" stroke-linejoin="round" d="m 407.19961,190.19418 -80.54885,-128.843752 -191.5,0 -80.166,128.843752 64.54072,0 31.62528,-63.84375 52,0 -3.83503,23.07716 63.55122,0 -3.35876,-23.77646 51.79557,0 32.05995,64.54305 z"/><path fill="#363f49" fill-rule="evenodd" opacity="0.449" d="m 259.50819,125.65113 52.2352,0.0433 31.62032,64.49975 -16.17975,127.7461 -121.54101,2e-5 62.82234,-127.74612 z"/><path fill="url(#cdv4842)" fill-rule="evenodd" opacity="0.3" d="M 268.46529,190.19418 205.64295,317.9403 135.55849,317.93931 119.52318,190.19418 Z"/><path fill="url(#cdv4854)" fill-rule="evenodd" opacity="0.2" d="m 151.15076,126.35043 52,0 -3.83503,23.07716 63.55122,0 5.59834,40.76659 -148.94211,0 z"/><g transform="translate(-14.849242,-10.606602)"><g transform="matrix(0.89997913,0,0,0.97774567,-1.4952307,573.7235)"><ellipse transform="matrix(1.4992885,0,0,1.3077391,-75.688852,99.470993)" cx="272.59341" cy="-325.39865" rx="6.6297965" ry="24.805298" fill="#05f0ff" opacity="0.8" filter="url(#cdvf4710)"/><ellipse transform="matrix(1.1653261,0,0,1.1578328,-3.9564384,51.930291)" cx="289.15836" cy="-326.0542" rx="6.6297965" ry="24.805298" fill="#ffffff" opacity="0.9" stroke="#06effe" stroke-width="0.918" filter="url(#cdvf4539)"/><ellipse transform="matrix(1.1653261,0,0,1.0707089,-3.9564384,23.603105)" cx="289.15836" cy="-326.0542" rx="6.6297965" ry="24.805298" fill="#feffff" opacity="0.9" stroke="#06effe" stroke-width="0.954" filter="url(#cdvf4539)"/></g><g transform="matrix(0.89997913,0,0,0.97774567,-102.68784,578.19963)"><ellipse transform="matrix(1.4992885,0,0,1.3077391,-75.688852,99.470993)" cx="272.59341" cy="-325.39865" rx="6.6297965" ry="24.805298" fill="#05f0ff" opacity="0.8" filter="url(#cdvf4710)"/><ellipse transform="matrix(1.1653261,0,0,1.1578328,-3.9564384,51.930291)" cx="289.15836" cy="-326.0542" rx="6.6297965" ry="24.805298" fill="#ffffff" opacity="0.9" stroke="#06effe" stroke-width="0.918" filter="url(#cdvf4539)"/><ellipse transform="matrix(1.1653261,0,0,1.0707089,-3.9564384,23.603105)" cx="289.15836" cy="-326.0542" rx="6.6297965" ry="24.805298" fill="#feffff" opacity="0.9" stroke="#06effe" stroke-width="0.954" filter="url(#cdvf4539)"/></g></g><path fill="none" stroke="#d6d6d6" stroke-width="1" stroke-linejoin="round" d="m 151.15076,126.35043 52,0 -3.83503,23.07716 63.55122,0 -3.35876,-23.77646 52.2352,0.0433 31.62032,64.49975 -16.17922,127.74632 -191.626,-0.001 -16.03531,-127.74513 z"/><path fill="none" stroke="#ffffff" stroke-width="1" opacity="0.343" d="m 342.83631,190.19418 -223.46934,0"/></g>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Expo — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <g transform="scale(0.9231) translate(-12.0,-13.0)"><path d="M22.069 10.075a2.273 2.273 0 00-.887-.74 2.296 2.296 0 00-2.237.16 2.265 2.265 0 00-.77.859 2.016 2.016 0 00.392 2.274 3.342 3.342 0 002.23-.63 3.289 3.289 0 001.271-1.923zM15.3 1.3l-1.45-.788-6.31 3.481.503.27.957.498 1.732-.954 4.569-2.523-.001.016zm.584-.24a.225.225 0 01.16.15l2.114 6.182a.205.205 0 01-.1.269 4.063 4.063 0 00-1.798 1.974 4.017 4.017 0 00-.175 2.655 4.283 4.283 0 001.755 2.332c.842.55 1.852.79 2.854.68a.269.269 0 01.262.16l2.184 6.345a.256.256 0 01-.101.278l-6.712 3.89a.253.253 0 01-.101.02.27.27 0 01-.181-.03L13.69 24.5a.234.234 0 01-.1-.1l-4.6-10.483-7.005 3.95a.327.327 0 01-.272.01l-1.592-.898a.23.23 0 01-.1-.299l6.805-12.8a.243.243 0 01.11-.099L13.721.03a.259.259 0 01.241 0l1.923 1.03zM7.47 4.499L7.14 4.33.58 16.71l1.197.668 5.657-7.335a.275.275 0 01.231-.1.282.282 0 01.201.149l6.16 14.066 1.646 1.007L9.06 6.005l-.281-.798-1.318-.718.01.01zm10.145 7.382a2.51 2.51 0 01.12-1.663 2.54 2.54 0 011.138-1.23 2.798 2.798 0 013.261.4 2.513 2.513 0 01.073 3.568l-.073.073a2.77 2.77 0 01-3.788.01 2.719 2.719 0 01-.731-1.158z" fill="#FFFFFF"/></g>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Flutter — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <defs><linearGradient id="flsg" x1="0.6" y1="9.9" x2="3.4" y2="7.2" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#1a237e" stop-opacity="0.4"/><stop offset="100%" stop-color="#1a237e" stop-opacity="0"/></linearGradient></defs><path d="M2.3,-12 L9.7,-12 L-6.0,3.7 L-9.7,0 Z" fill="#39cefd"/><path d="M-4.2,5.5 L-0.5,9.2 L9.7,-0.9 L2.3,-0.9 Z" fill="#39cefd"/><path d="M-4.2,5.5 L-0.5,1.8 L3.2,5.5 L-0.5,9.2 Z" fill="#16b9fd"/><path d="M-0.5,9.2 L2.3,12.0 L9.7,12.0 L3.2,5.5 Z" fill="#03569b"/><path d="M5.0,7.3 L3.2,5.5 L-0.5,9.2 Z" fill="url(#flsg)"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- iOS — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <defs><linearGradient id="iosc" x1="50%" x2="50%" y1="50%" y2="100%"><stop stop-color="#0339F1" offset="0"/><stop stop-color="#01ADE5" offset="1"/></linearGradient><linearGradient id="iosb" x1="14.011%" x2="73.603%" y1="9.5347%" y2="75.34%"><stop stop-color="#0756EE" offset="0"/><stop stop-color="#00A3F5" offset=".37448"/><stop stop-color="#18B5B6" offset=".71708"/><stop stop-color="#80DF43" offset="1"/></linearGradient><linearGradient id="iosa" x1="13.017%" x2="86.649%" y1="3.0728%" y2="90.776%"><stop stop-color="#20BBA6" offset="0"/><stop stop-color="#9BEC23" offset=".4988"/><stop stop-color="#D9EF35" offset="1"/></linearGradient></defs><g transform="scale(0.16000) translate(-99.0,-97.0)" fill-rule="evenodd"><path d="m32.882 137.54h-4.5633v-60.979h4.5633v60.979zm-2.3466-75.927c-1.9244 0-3.5158-1.5265-3.5158-3.4509 0-1.9812 1.5833-3.5158 3.5158-3.5158 1.9812 0 3.5564 1.5265 3.5564 3.5158 0 1.9244-1.5752 3.4509-3.5564 3.4509z" fill="url(#iosc)"/><path d="m77.205 138.73c-22.313 0-36.409-16.248-36.409-42.076 0-25.699 14.161-42.011 36.409-42.011s36.401 16.313 36.401 42.011 c0 25.829-14.096 42.076-36.401 42.076zm0-79.89c-19.422 0-31.821 14.664-31.821 37.813 0 23.166 12.456 37.887 31.821 37.887 19.422 0 31.821-14.721 31.821-37.887 0-23.157-12.399-37.813-31.821-37.813z" fill="url(#iosb)"/><path d="m146.1 138.73c-16.751 0-28.76-9.4595-29.442-22.987h4.474 c0.68206 11.092 11.1 18.854 25.309 18.854 13.868 0 23.547-7.8761 23.547-18.513 0-8.5582-5.7731-13.479-19.471-16.93l-9.6787-2.3791 c-15.111-3.8569-21.972-9.971-21.972-20.21 0-12.74 11.895-21.915 26.787-21.915 15.395 0 26.892 9.0616 27.404 21.063h-4.474 c-0.62522-9.7924-10.19-16.93-23.044-16.93 -12.293 0-22.086 7.3646-22.086 17.668 0 8.1603 6.0005 12.854 19.13 16.134l9.1184 2.3222 c15.793 3.9056 22.873 9.971 22.873 20.835 0 13.527-11.376 22.987-28.476 22.987z" fill="url(#iosa)"/></g>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Kotlin — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <defs><linearGradient id="kg1" x1="-5.6" y1="17.6" x2="5.7" y2="6.3" gradientUnits="userSpaceOnUse"><stop offset="9.7%" stop-color="#0095D5"/><stop offset="30.1%" stop-color="#238AD9"/><stop offset="62.1%" stop-color="#557BDE"/><stop offset="86.4%" stop-color="#7472E2"/><stop offset="100%" stop-color="#806EE3"/></linearGradient><linearGradient id="kg2" x1="-10.3" y1="-7.2" x2="-3.7" y2="-13.8" gradientUnits="userSpaceOnUse"><stop offset="11.8%" stop-color="#0095D5"/><stop offset="41.8%" stop-color="#3C83DC"/><stop offset="69.6%" stop-color="#6D74E1"/><stop offset="83.3%" stop-color="#806EE3"/></linearGradient><linearGradient id="kg3" x1="-16" y1="10.1" x2="6.3" y2="-12.3" gradientUnits="userSpaceOnUse"><stop offset="10.8%" stop-color="#C757BC"/><stop offset="21.4%" stop-color="#D0609A"/><stop offset="42.5%" stop-color="#E1725C"/><stop offset="60.5%" stop-color="#EE7E2F"/><stop offset="74.3%" stop-color="#F58613"/><stop offset="82.3%" stop-color="#F88909"/></linearGradient></defs><polygon points="-12,12 0,0 12,12" fill="url(#kg1)"/><polygon points="-12,-12 0,-12 -12,1" fill="url(#kg2)"/><polygon points="0,-12 -12,0.7 -12,12 0,0 12,-12" fill="url(#kg3)"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- React Native — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <ellipse rx="11" ry="4.2" fill="none" stroke="#61DAFB" stroke-width="1.1"/><ellipse rx="11" ry="4.2" fill="none" stroke="#61DAFB" stroke-width="1.1" transform="rotate(60)"/><ellipse rx="11" ry="4.2" fill="none" stroke="#61DAFB" stroke-width="1.1" transform="rotate(120)"/><circle r="2.05" fill="#61DAFB"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Swift — paths normalised to ±12-unit origin-centred canvas -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-12 -12 24 24">
4
+ <g transform="scale(0.40410) translate(-29.6955,-29.6956)"><path fill="#F05138" d="M59.3867,16.4501c-0.0035-0.5973-0.0101-1.1943-0.0266-1.7923c-0.0348-1.3008-0.1117-2.6134-0.3429-3.9003c-0.2346-1.3069-0.6181-2.5221-1.2225-3.7093c-0.5933-1.1659-1.3689-2.2328-2.2941-3.158c-0.925-0.9252-1.9919-1.7007-3.1583-2.2943c-1.1862-0.6037-2.4016-0.9871-3.7073-1.2217c-1.2876-0.2319-2.6002-0.3083-3.902-0.3435c-0.5977-0.0162-1.1948-0.023-1.7923-0.0267C42.2315,0,41.5218,0,40.8128,0H25.0912h-6.5131c-0.7097,0-1.4186,0-2.1276,0.0041c-0.5977,0.0037-1.1955,0.0105-1.7923,0.0267c-0.3254,0.0088-0.6515,0.0202-0.9778,0.0359c-0.9788,0.0472-1.9591,0.1337-2.9243,0.3076c-0.9793,0.176-1.9079,0.4356-2.8113,0.8091C7.6437,1.3078,7.3453,1.445,7.0487,1.5959C6.1739,2.0411,5.3549,2.5886,4.61,3.2248c-0.2483,0.2121-0.4884,0.434-0.7196,0.6653c-0.9254,0.9252-1.701,1.9921-2.2943,3.158c-0.6044,1.1872-0.9874,2.4024-1.2222,3.7093c-0.231,1.2869-0.3078,2.5995-0.3428,3.9003c-0.0164,0.598-0.0233,1.195-0.0272,1.7923C-0.0006,17.1594,0,17.8689,0,18.5781V28.26v12.5525c0,0.7099-0.0007,1.4187,0.0039,2.1286c0.0039,0.5973,0.0108,1.1943,0.0272,1.7913c0.035,1.3015,0.1117,2.6144,0.3428,3.9007c0.2348,1.3065,0.6178,2.5228,1.2222,3.7097c0.5933,1.1662,1.3689,2.2328,2.2943,3.1576c0.9247,0.9256,1.9919,1.701,3.1584,2.295c1.1863,0.6038,2.4016,0.9867,3.7076,1.2213c1.2868,0.2316,2.6004,0.3086,3.9019,0.3434c0.5968,0.0159,1.1946,0.023,1.7923,0.0264c0.709,0.0051,1.4179,0.0044,2.1276,0.0044h22.2346c0.709,0,1.4187,0.0007,2.1278-0.0044c0.5975-0.0034,1.1946-0.0105,1.7923-0.0264c1.3018-0.0348,2.6144-0.1119,3.902-0.3434c1.3057-0.2346,2.5211-0.6176,3.7073-1.2213c1.1664-0.5939,2.2333-1.3694,3.1583-2.295c0.9252-0.9249,1.7009-1.9914,2.2941-3.1576c0.6044-1.1869,0.9879-2.4031,1.2225-3.7097c0.2312-1.2863,0.3081-2.5992,0.3429-3.9007c0.0164-0.597,0.023-1.1939,0.0266-1.7913c0.0046-0.7099,0.0042-1.4187,0.0042-2.1286V18.5781C59.3909,17.8689,59.3912,17.1594,59.3867,16.4501z"/><path fill="#FFFFFF" d="M47.0606,36.6607c-0.0014-0.0018-0.0027-0.0031-0.0042-0.0048c0.0657-0.2236,0.1335-0.4458,0.191-0.675c2.465-9.8209-3.5511-21.4319-13.7316-27.5454c4.4613,6.0479,6.4339,13.3733,4.6813,19.7795c-0.1563,0.5714-0.3442,1.1198-0.5519,1.6528c-0.2254-0.1481-0.5094-0.3162-0.8908-0.5265c0,0-10.1269-6.2527-21.1028-17.3122c-0.288-0.2903,5.8528,8.777,12.8219,16.1399c-3.2834-1.8427-12.4338-8.5004-18.2266-13.8023c0.7117,1.1869,1.5582,2.3298,2.4887,3.4301c4.8375,6.1349,11.1462,13.7044,18.7043,19.5169c-5.3104,3.2498-12.8141,3.5025-20.2852,0.0034c-1.8479-0.866-3.5851-1.9109-5.1932-3.0981c3.1625,5.0585,8.0332,9.4229,13.9613,11.9708c7.0695,3.0381,14.0996,2.8321,19.3356,0.0498l-0.0041,0.006c0.0239-0.0151,0.0543-0.0316,0.0791-0.0469c0.215-0.1156,0.4284-0.2333,0.6371-0.3576c2.5157-1.3058,7.4847-2.6306,10.1518,2.5588C50.7755,49.6699,52.1635,42.9395,47.0606,36.6607z"/></g>
5
+ </svg>
@@ -27,11 +27,13 @@ const findModuleRecursively = (dir) => {
27
27
  }
28
28
  return findModuleRecursively(parent);
29
29
  };
30
- const MODULE_NAME = findModuleRecursively(path_1.default.resolve('.'));
31
- if (!MODULE_NAME) {
32
- console.error(`Could not find neither '${PUBLIC_MODULE}' or '${PRIVATE_MODULE}' in node_modules`);
33
- process.exit(1);
34
- }
30
+ const resolveModuleName = (projectRoot) => {
31
+ const moduleName = findModuleRecursively(path_1.default.resolve(projectRoot));
32
+ if (!moduleName) {
33
+ throw new Error(`Could not find neither '${PUBLIC_MODULE}' or '${PRIVATE_MODULE}' in node_modules from project root: ${projectRoot}`);
34
+ }
35
+ return moduleName;
36
+ };
35
37
  const { addMetaDataItemToMainApplication, removeMetaDataItemFromMainApplication, getMainApplicationOrThrow } = config_plugins_1.AndroidConfig.Manifest;
36
38
  const androidPlugin = (config, props = {}) => {
37
39
  config = (0, config_plugins_1.withAppBuildGradle)(config, ({ modResults, ...subConfig }) => {
@@ -39,7 +41,9 @@ const androidPlugin = (config, props = {}) => {
39
41
  config_plugins_1.WarningAggregator.addWarningAndroid('withBackgroundGeolocation', `Cannot automatically configure project build.gradle if it's not groovy`);
40
42
  return { modResults, ...subConfig };
41
43
  }
42
- modResults.contents = applyAppGradle(modResults.contents);
44
+ const projectRoot = config?._internal?.projectRoot ?? process.cwd();
45
+ const moduleName = resolveModuleName(projectRoot);
46
+ modResults.contents = applyAppGradle(modResults.contents, moduleName);
43
47
  return { modResults, ...subConfig };
44
48
  });
45
49
  config = (0, config_plugins_1.withAndroidManifest)(config, async (config) => {
@@ -64,13 +68,13 @@ const androidPlugin = (config, props = {}) => {
64
68
  });
65
69
  return config;
66
70
  };
67
- const applyAppGradle = (buildGradle) => {
71
+ const applyAppGradle = (buildGradle, moduleName) => {
68
72
  // Apply background-geolocation.gradle
69
73
  const newSrc = [];
70
- newSrc.push(`Project background_geolocation = project(':${MODULE_NAME}')`);
74
+ newSrc.push(`Project background_geolocation = project(':${moduleName}')`);
71
75
  newSrc.push(`apply from: "\${background_geolocation.projectDir}/app.gradle"`);
72
76
  buildGradle = (0, generateCode_1.mergeContents)({
73
- tag: `${MODULE_NAME}-project`,
77
+ tag: `${moduleName}-project`,
74
78
  src: buildGradle,
75
79
  newSrc: newSrc.join("\n"),
76
80
  anchor: /android\s\{/,
@@ -107,11 +111,11 @@ const applyExtVars = (buildGradle: string, props:Props) => {
107
111
  }).contents;
108
112
  }
109
113
  */
110
- const applyMavenUrl = (buildGradle) => {
114
+ const applyMavenUrl = (buildGradle, moduleName) => {
111
115
  return (0, generateCode_1.mergeContents)({
112
- tag: `${MODULE_NAME}-maven`,
116
+ tag: `${moduleName}-maven`,
113
117
  src: buildGradle,
114
- newSrc: `\tmaven { url "\${project(":${MODULE_NAME}").projectDir}/libs" }\n\tmaven { url 'https://developer.huawei.com/repo/' }`,
118
+ newSrc: `\tmaven { url "\${project(":${moduleName}").projectDir}/libs" }\n\tmaven { url 'https://developer.huawei.com/repo/' }`,
115
119
  anchor: /maven\s\{/,
116
120
  offset: 1,
117
121
  comment: "//",
@@ -1 +1 @@
1
- {"version":3,"file":"androidPlugin.js","sourceRoot":"","sources":["../src/androidPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"androidPlugin.js","sourceRoot":"","sources":["../src/androidPlugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
 
3
3
  "name": "react-native-background-geolocation",
4
- "version": "5.0.4",
4
+ "version": "5.1.0",
5
5
  "description": "The most sophisticated cross-platform background location-tracking & geofencing module with battery-conscious motion-detection intelligence",
6
6
  "scripts": {
7
7
  "build": "yarn run build:expo",
@@ -57,7 +57,6 @@
57
57
  "fs-extra": "^9.1.0",
58
58
  "path": "^0.12.7",
59
59
  "rimraf": "^5.0.0",
60
- "typedoc": "^0.28.14",
61
60
  "typescript": "^5.6.0"
62
61
  }
63
62
  }
@@ -1,3 +0,0 @@
1
- {
2
- "java.configuration.updateBuildConfiguration": "interactive"
3
- }