@doorstepai/dropoff-sdk 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/doorstepai/dropoffsdk/DoorstepAIModule.kt +3 -1
- package/ios/DoorstepAI.swift +2 -0
- package/ios/DoorstepDropoffSDK.xcframework/Info.plist +5 -5
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/DoorstepDropoffSDK.framework/DoorstepDropoffSDK +0 -0
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/DoorstepDropoffSDK.framework/Info.plist +0 -0
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/arm64-apple-ios.abi.json +72 -29
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +2 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/arm64-apple-ios.swiftinterface +2 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/DoorstepDropoffSDK.framework/_CodeSignature/CodeResources +9 -9
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/dSYMs/DoorstepDropoffSDK.framework.dSYM/Contents/Info.plist +1 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/dSYMs/DoorstepDropoffSDK.framework.dSYM/Contents/Resources/DWARF/DoorstepDropoffSDK +0 -0
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64/dSYMs/DoorstepDropoffSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/DoorstepDropoffSDK.yml +521 -520
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/DoorstepDropoffSDK +0 -0
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/Info.plist +0 -0
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +72 -29
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +72 -29
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/Modules/DoorstepDropoffSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/DoorstepDropoffSDK.framework/_CodeSignature/CodeResources +17 -17
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/DoorstepDropoffSDK.framework.dSYM/Contents/Info.plist +1 -1
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/DoorstepDropoffSDK.framework.dSYM/Contents/Resources/DWARF/DoorstepDropoffSDK +0 -0
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/DoorstepDropoffSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/DoorstepDropoffSDK.yml +699 -698
- package/ios/DoorstepDropoffSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/DoorstepDropoffSDK.framework.dSYM/Contents/Resources/Relocations/x86_64/DoorstepDropoffSDK.yml +698 -697
- package/lib/module/DoorstepAI.js.map +1 -1
- package/lib/module/RootDoorstepAI.js +40 -3
- package/lib/module/RootDoorstepAI.js.map +1 -1
- package/lib/typescript/src/DoorstepAI.d.ts +1 -0
- package/lib/typescript/src/DoorstepAI.d.ts.map +1 -1
- package/lib/typescript/src/RootDoorstepAI.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/DoorstepAI.tsx +1 -0
- package/src/RootDoorstepAI.tsx +54 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","DoorstepAI","DoorstepAIModule","isInitialized","init","OS","console","log","error","setApiKey","apiKey","startDeliveryByPlaceID","placeID","then","catch","startDeliveryByPlusCode","plusCode","startDeliveryByAddress","address","stopDelivery","newEvent","eventName"],"sourceRoot":"../../src","sources":["DoorstepAI.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,MAAM;EAAEC;AAAW,CAAC,GAAGF,aAAa;
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","DoorstepAI","DoorstepAIModule","isInitialized","init","OS","console","log","error","setApiKey","apiKey","startDeliveryByPlaceID","placeID","then","catch","startDeliveryByPlusCode","plusCode","startDeliveryByAddress","address","stopDelivery","newEvent","eventName"],"sourceRoot":"../../src","sources":["DoorstepAI.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,MAAM;EAAEC;AAAW,CAAC,GAAGF,aAAa;AAWpC,MAAMG,gBAAgB,CAAC;EACrB,OAAOC,aAAa,GAAG,KAAK;EAE5B,aAAaC,IAAIA,CAAA,EAAkB;IACjC,IAAIJ,QAAQ,CAACK,EAAE,KAAK,SAAS,EAAE;MAC7B,IAAI,IAAI,CAACF,aAAa,EAAE;QACtB;MACF;MACA,IAAI;QACF,MAAMF,UAAU,CAACG,IAAI,CAAC,CAAC;QACvBE,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;MACvC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdF,OAAO,CAACE,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;QACxD,MAAMA,KAAK;MACb;IACF;EACF;EAEA,OAAOC,SAASA,CAACC,MAAc,EAAE;IAC/BJ,OAAO,CAACC,GAAG,CAACN,UAAU,CAAC;IACvBA,UAAU,CAACQ,SAAS,CAACC,MAAM,CAAC;EAC9B;EAEA,aAAaC,sBAAsBA,CAACC,OAAe,EAAE;IACnDX,UAAU,CAACU,sBAAsB,CAACC,OAAO,CAAC,CACvCC,IAAI,CAAC,MAAM;MACVP,OAAO,CAACC,GAAG,CAAC,+BAA+B,CAAC;IAC9C,CAAC,CAAC,CACDO,KAAK,CAAEN,KAAU,IAAK;MACrBF,OAAO,CAACE,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IACnD,CAAC,CAAC;EACN;EAEA,OAAOO,uBAAuBA,CAACC,QAAgB,EAAE;IAC/Cf,UAAU,CAACc,uBAAuB,CAACC,QAAQ,CAAC,CACzCH,IAAI,CAAC,MAAM;MACVP,OAAO,CAACC,GAAG,CAAC,+BAA+B,CAAC;IAC9C,CAAC,CAAC,CACDO,KAAK,CAAEN,KAAU,IAAK;MACrBF,OAAO,CAACE,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IACnD,CAAC,CAAC;EACN;EAEA,OAAOS,sBAAsBA,CAACC,OAAoB,EAAE;IAClDjB,UAAU,CAACgB,sBAAsB,CAACC,OAAO,CAAC,CACvCL,IAAI,CAAC,MAAM;MACVP,OAAO,CAACC,GAAG,CAAC,+BAA+B,CAAC;IAC9C,CAAC,CAAC,CACDO,KAAK,CAAEN,KAAU,IAAK;MACrBF,OAAO,CAACE,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IACnD,CAAC,CAAC;EACN;EAEA,OAAOW,YAAYA,CAAA,EAAG;IACpBlB,UAAU,CAACkB,YAAY,CAAC,CAAC,CACtBN,IAAI,CAAC,MAAM;MACVP,OAAO,CAACC,GAAG,CAAC,+BAA+B,CAAC;IAC9C,CAAC,CAAC,CACDO,KAAK,CAAEN,KAAU,IAAK;MACrBF,OAAO,CAACE,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;IAClD,CAAC,CAAC;EACN;EAEA,OAAOY,QAAQA,CAACC,SAAiB,EAAE;IACjCpB,UAAU,CAACmB,QAAQ,CAACC,SAAS,CAAC,CAC3BR,IAAI,CAAC,MAAM;MACVP,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;IACxC,CAAC,CAAC,CACDO,KAAK,CAAEN,KAAU,IAAK;MACrBF,OAAO,CAACE,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;IAC/C,CAAC,CAAC;EACN;AACF;AAEA,SAASN,gBAAgB,IAAID,UAAU","ignoreList":[]}
|
|
@@ -1,19 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { requireNativeComponent, View, Platform, StyleSheet } from 'react-native';
|
|
3
|
+
import { requireNativeComponent, View, Platform, StyleSheet, PermissionsAndroid } from 'react-native';
|
|
4
4
|
import { useEffect } from 'react';
|
|
5
5
|
import { DoorstepAI } from "./DoorstepAI.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
const DoorstepAIView = requireNativeComponent('RootDoorstepAIView');
|
|
8
8
|
export function RootDoorstepAI(props) {
|
|
9
9
|
useEffect(() => {
|
|
10
|
-
|
|
10
|
+
const initializeAndRequestPermissions = async () => {
|
|
11
|
+
// Initialize SDK
|
|
11
12
|
if (Platform.OS === 'android') {
|
|
12
13
|
await DoorstepAI.init();
|
|
13
14
|
}
|
|
14
15
|
DoorstepAI.setApiKey(props.apiKey);
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
// Request Permissions
|
|
18
|
+
if (Platform.OS === 'android') {
|
|
19
|
+
try {
|
|
20
|
+
const permissionsToRequest = [PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, PermissionsAndroid.PERMISSIONS.ACTIVITY_RECOGNITION];
|
|
21
|
+
// Background location might be needed depending on SDK functionality
|
|
22
|
+
// permissionsToRequest.push(PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION);
|
|
23
|
+
|
|
24
|
+
const granted = await PermissionsAndroid.requestMultiple(permissionsToRequest);
|
|
25
|
+
if (granted[PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION] === PermissionsAndroid.RESULTS.GRANTED && granted[PermissionsAndroid.PERMISSIONS.ACTIVITY_RECOGNITION] === PermissionsAndroid.RESULTS.GRANTED) {
|
|
26
|
+
console.log('Required Android permissions granted');
|
|
27
|
+
// Handle background location if requested
|
|
28
|
+
// if (granted[PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION] === PermissionsAndroid.RESULTS.GRANTED) {
|
|
29
|
+
// console.log('Background location permission granted');
|
|
30
|
+
// } else {
|
|
31
|
+
// console.warn('Background location permission denied');
|
|
32
|
+
// }
|
|
33
|
+
} else {
|
|
34
|
+
console.warn('One or more required Android permissions denied');
|
|
35
|
+
// Handle permission denial (e.g., show a message to the user)
|
|
36
|
+
}
|
|
37
|
+
} catch (err) {
|
|
38
|
+
console.warn('Error requesting Android permissions:', err);
|
|
39
|
+
}
|
|
40
|
+
} else if (Platform.OS === 'ios') {
|
|
41
|
+
// On iOS, permissions are requested when features are used.
|
|
42
|
+
// Ensure you have added the necessary keys to your Info.plist:
|
|
43
|
+
// - NSLocationWhenInUseUsageDescription (required)
|
|
44
|
+
// - NSLocationAlwaysAndWhenInUseUsageDescription (if background location is needed)
|
|
45
|
+
// - NSMotionUsageDescription (required)
|
|
46
|
+
console.log('iOS: Ensure location and motion usage descriptions are in Info.plist');
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
initializeAndRequestPermissions();
|
|
16
50
|
}, [props.apiKey]);
|
|
51
|
+
|
|
52
|
+
// On iOS, the native view might handle triggering permission prompts if needed.
|
|
53
|
+
// The main setup involves Info.plist configuration.
|
|
17
54
|
return /*#__PURE__*/_jsx(View, {
|
|
18
55
|
style: styles.container,
|
|
19
56
|
children: Platform.OS === 'ios' ? /*#__PURE__*/_jsx(DoorstepAIView, {}) : null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["requireNativeComponent","View","Platform","StyleSheet","useEffect","DoorstepAI","jsx","_jsx","DoorstepAIView","RootDoorstepAI","props","OS","init","setApiKey","apiKey","style","styles","container","children","create","height","width"],"sourceRoot":"../../src","sources":["RootDoorstepAI.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EACtBC,IAAI,EACJC,QAAQ,EACRC,UAAU,
|
|
1
|
+
{"version":3,"names":["requireNativeComponent","View","Platform","StyleSheet","PermissionsAndroid","useEffect","DoorstepAI","jsx","_jsx","DoorstepAIView","RootDoorstepAI","props","initializeAndRequestPermissions","OS","init","setApiKey","apiKey","permissionsToRequest","PERMISSIONS","ACCESS_FINE_LOCATION","ACTIVITY_RECOGNITION","granted","requestMultiple","RESULTS","GRANTED","console","log","warn","err","style","styles","container","children","create","height","width"],"sourceRoot":"../../src","sources":["RootDoorstepAI.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EACtBC,IAAI,EACJC,QAAQ,EACRC,UAAU,EACVC,kBAAkB,QACb,cAAc;AAErB,SAASC,SAAS,QAAQ,OAAO;AAEjC,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1C,MAAMC,cAAc,GAAGT,sBAAsB,CAAC,oBAAoB,CAAC;AACnE,OAAO,SAASU,cAAcA,CAACC,KAAyB,EAAE;EACxDN,SAAS,CAAC,MAAM;IACd,MAAMO,+BAA+B,GAAG,MAAAA,CAAA,KAAY;MAClD;MACA,IAAIV,QAAQ,CAACW,EAAE,KAAK,SAAS,EAAE;QAC7B,MAAMP,UAAU,CAACQ,IAAI,CAAC,CAAC;MACzB;MACAR,UAAU,CAACS,SAAS,CAACJ,KAAK,CAACK,MAAM,CAAC;;MAElC;MACA,IAAId,QAAQ,CAACW,EAAE,KAAK,SAAS,EAAE;QAC7B,IAAI;UACF,MAAMI,oBAAoB,GAAG,CAC3Bb,kBAAkB,CAACc,WAAW,CAACC,oBAAoB,EACnDf,kBAAkB,CAACc,WAAW,CAACE,oBAAoB,CACpD;UACD;UACA;;UAEA,MAAMC,OAAO,GAAG,MAAMjB,kBAAkB,CAACkB,eAAe,CACtDL,oBACF,CAAC;UAED,IACEI,OAAO,CAACjB,kBAAkB,CAACc,WAAW,CAACC,oBAAoB,CAAC,KAC1Df,kBAAkB,CAACmB,OAAO,CAACC,OAAO,IACpCH,OAAO,CAACjB,kBAAkB,CAACc,WAAW,CAACE,oBAAoB,CAAC,KAC1DhB,kBAAkB,CAACmB,OAAO,CAACC,OAAO,EACpC;YACAC,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;YACnD;YACA;YACA;YACA;YACA;YACA;UACF,CAAC,MAAM;YACLD,OAAO,CAACE,IAAI,CAAC,iDAAiD,CAAC;YAC/D;UACF;QACF,CAAC,CAAC,OAAOC,GAAG,EAAE;UACZH,OAAO,CAACE,IAAI,CAAC,uCAAuC,EAAEC,GAAG,CAAC;QAC5D;MACF,CAAC,MAAM,IAAI1B,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;QAChC;QACA;QACA;QACA;QACA;QACAY,OAAO,CAACC,GAAG,CACT,sEACF,CAAC;MACH;IACF,CAAC;IAEDd,+BAA+B,CAAC,CAAC;EACnC,CAAC,EAAE,CAACD,KAAK,CAACK,MAAM,CAAC,CAAC;;EAElB;EACA;EACA,oBACER,IAAA,CAACP,IAAI;IAAC4B,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,EAC3B9B,QAAQ,CAACW,EAAE,KAAK,KAAK,gBAAGL,IAAA,CAACC,cAAc,IAAE,CAAC,GAAG;EAAI,CAC9C,CAAC;AAEX;AAEA,MAAMqB,MAAM,GAAG3B,UAAU,CAAC8B,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DoorstepAI.d.ts","sourceRoot":"","sources":["../../../src/DoorstepAI.tsx"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,cAAM,gBAAgB;IACpB,MAAM,CAAC,aAAa,UAAS;WAEhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAelC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM;WAKlB,sBAAsB,CAAC,OAAO,EAAE,MAAM;IAUnD,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM;IAU/C,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW;IAUlD,MAAM,CAAC,YAAY;IAUnB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;CASlC;AAED,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"DoorstepAI.d.ts","sourceRoot":"","sources":["../../../src/DoorstepAI.tsx"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,cAAM,gBAAgB;IACpB,MAAM,CAAC,aAAa,UAAS;WAEhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAelC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM;WAKlB,sBAAsB,CAAC,OAAO,EAAE,MAAM;IAUnD,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM;IAU/C,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW;IAUlD,MAAM,CAAC,YAAY;IAUnB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;CASlC;AAED,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootDoorstepAI.d.ts","sourceRoot":"","sources":["../../../src/RootDoorstepAI.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RootDoorstepAI.d.ts","sourceRoot":"","sources":["../../../src/RootDoorstepAI.tsx"],"names":[],"mappings":"AAaA,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,2CAiEvD"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doorstepai/dropoff-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "doorstep.ai dropoff sdk for React Native",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
7
|
-
"private": false,
|
|
8
7
|
"exports": {
|
|
9
8
|
".": {
|
|
10
9
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -50,7 +49,6 @@
|
|
|
50
49
|
"url": "git+https://github.com/doorstep-ai/DoorstepAIDropoffReactNativeSDK"
|
|
51
50
|
},
|
|
52
51
|
"author": "Doing Doorstep Better, Inc. (Sheel Patel)",
|
|
53
|
-
|
|
54
52
|
"homepage": "https://github.com/doorstep-ai/DoorstepAIDropoffReactNativeSDK#readme",
|
|
55
53
|
"publishConfig": {
|
|
56
54
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -150,5 +148,8 @@
|
|
|
150
148
|
"type": "legacy-module",
|
|
151
149
|
"languages": "kotlin-swift",
|
|
152
150
|
"version": "0.49.2"
|
|
151
|
+
},
|
|
152
|
+
"dependencies": {
|
|
153
|
+
"react-native-dotenv": "^3.4.11"
|
|
153
154
|
}
|
|
154
155
|
}
|
package/src/DoorstepAI.tsx
CHANGED
package/src/RootDoorstepAI.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
View,
|
|
4
4
|
Platform,
|
|
5
5
|
StyleSheet,
|
|
6
|
+
PermissionsAndroid,
|
|
6
7
|
} from 'react-native';
|
|
7
8
|
|
|
8
9
|
import { useEffect } from 'react';
|
|
@@ -12,13 +13,64 @@ import { DoorstepAI } from './DoorstepAI';
|
|
|
12
13
|
const DoorstepAIView = requireNativeComponent('RootDoorstepAIView');
|
|
13
14
|
export function RootDoorstepAI(props: { apiKey: string }) {
|
|
14
15
|
useEffect(() => {
|
|
15
|
-
|
|
16
|
+
const initializeAndRequestPermissions = async () => {
|
|
17
|
+
// Initialize SDK
|
|
16
18
|
if (Platform.OS === 'android') {
|
|
17
19
|
await DoorstepAI.init();
|
|
18
20
|
}
|
|
19
21
|
DoorstepAI.setApiKey(props.apiKey);
|
|
20
|
-
|
|
22
|
+
|
|
23
|
+
// Request Permissions
|
|
24
|
+
if (Platform.OS === 'android') {
|
|
25
|
+
try {
|
|
26
|
+
const permissionsToRequest = [
|
|
27
|
+
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
|
|
28
|
+
PermissionsAndroid.PERMISSIONS.ACTIVITY_RECOGNITION,
|
|
29
|
+
];
|
|
30
|
+
// Background location might be needed depending on SDK functionality
|
|
31
|
+
// permissionsToRequest.push(PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION);
|
|
32
|
+
|
|
33
|
+
const granted = await PermissionsAndroid.requestMultiple(
|
|
34
|
+
permissionsToRequest,
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
if (
|
|
38
|
+
granted[PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION] ===
|
|
39
|
+
PermissionsAndroid.RESULTS.GRANTED &&
|
|
40
|
+
granted[PermissionsAndroid.PERMISSIONS.ACTIVITY_RECOGNITION] ===
|
|
41
|
+
PermissionsAndroid.RESULTS.GRANTED
|
|
42
|
+
) {
|
|
43
|
+
console.log('Required Android permissions granted');
|
|
44
|
+
// Handle background location if requested
|
|
45
|
+
// if (granted[PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION] === PermissionsAndroid.RESULTS.GRANTED) {
|
|
46
|
+
// console.log('Background location permission granted');
|
|
47
|
+
// } else {
|
|
48
|
+
// console.warn('Background location permission denied');
|
|
49
|
+
// }
|
|
50
|
+
} else {
|
|
51
|
+
console.warn('One or more required Android permissions denied');
|
|
52
|
+
// Handle permission denial (e.g., show a message to the user)
|
|
53
|
+
}
|
|
54
|
+
} catch (err) {
|
|
55
|
+
console.warn('Error requesting Android permissions:', err);
|
|
56
|
+
}
|
|
57
|
+
} else if (Platform.OS === 'ios') {
|
|
58
|
+
// On iOS, permissions are requested when features are used.
|
|
59
|
+
// Ensure you have added the necessary keys to your Info.plist:
|
|
60
|
+
// - NSLocationWhenInUseUsageDescription (required)
|
|
61
|
+
// - NSLocationAlwaysAndWhenInUseUsageDescription (if background location is needed)
|
|
62
|
+
// - NSMotionUsageDescription (required)
|
|
63
|
+
console.log(
|
|
64
|
+
'iOS: Ensure location and motion usage descriptions are in Info.plist',
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
initializeAndRequestPermissions();
|
|
21
70
|
}, [props.apiKey]);
|
|
71
|
+
|
|
72
|
+
// On iOS, the native view might handle triggering permission prompts if needed.
|
|
73
|
+
// The main setup involves Info.plist configuration.
|
|
22
74
|
return (
|
|
23
75
|
<View style={styles.container}>
|
|
24
76
|
{Platform.OS === 'ios' ? <DoorstepAIView /> : null}
|