From 6b6a34a3b066c3f7c08d67759b0c95cf33cf0f76 Mon Sep 17 00:00:00 2001 From: 0x7061 <1425202+0x7061@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:29:50 +0100 Subject: [PATCH] fix: resolve disengage and scanning issues; add missing manifest permissions --- .../abrevva/reactnative/AbrevvaBleModule.kt | 6 ++- .../android/app/src/main/AndroidManifest.xml | 2 + example/src/BleScreenComponents.tsx | 41 ++++++++++--------- src/index.tsx | 2 +- 4 files changed, 28 insertions(+), 23 deletions(-) diff --git a/android/src/main/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModule.kt b/android/src/main/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModule.kt index b11276d..ce89397 100644 --- a/android/src/main/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModule.kt +++ b/android/src/main/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModule.kt @@ -10,6 +10,7 @@ import androidx.annotation.RequiresPermission import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.evva.xesar.abrevva.ble.BleManager +import com.evva.xesar.abrevva.disengage.DisengageStatusType import com.evva.xesar.abrevva.util.bytesToString import com.evva.xesar.abrevva.util.stringToBytes import com.facebook.react.bridge.Arguments @@ -181,6 +182,7 @@ class AbrevvaBleModule(reactContext: ReactApplicationContext) : @ReactMethod fun stopLEScan(promise: Promise) { manager.stopScan() + promise.resolve("success") } @ReactMethod @@ -314,9 +316,9 @@ class AbrevvaBleModule(reactContext: ReactApplicationContext) : mobileGroupId, mobileAccessData, isPermanentRelease - ) { status: Any -> + ) { status: DisengageStatusType -> val result = Arguments.createMap() - result.putString("value", status as String) + result.putString("value", status.toString()) promise.resolve(result) } diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 4122f36..abb7590 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,8 @@ + + { }); }; - const onRefresh = () => { + const onRefresh = async () => { setStatus('none'); setScanNoftification('scanning ...'); setRefreshing(true); @@ -54,23 +54,24 @@ const ScanResults = ({ props }) => { setRefreshing(false); setScanNoftification(''); }, 3_000); - AbrevvaBle.stopLEScan() - .then(() => { - void AbrevvaBle.requestLEScan( - scanRequestCallback, - (address: string) => { - console.log(`connected to Device =${address}`); - }, - (address: string) => { - console.log(`disconnected from Device =${address}`); - }, - 10_000, - ); - }) - .catch((e) => { - console.log(e); - clearTimeout(timeout); - }); + + await AbrevvaBle.stopLEScan(); + + try { + await AbrevvaBle.requestLEScan( + scanRequestCallback, + (address: string) => { + console.log(`connected to Device =${address}`); + }, + (address: string) => { + console.log(`disconnected from Device =${address}`); + }, + 10_000, + ); + } catch (err) { + console.log(err); + clearTimeout(timeout); + } }; useEffect(() => { @@ -86,8 +87,7 @@ const ScanResults = ({ props }) => { { - AbrevvaBle.connect(item.item.device.deviceId, 10_000); - AbrevvaBle.disengage( + const result = await AbrevvaBle.disengage( 'deviceId', 'mobileId', 'deviceKey', @@ -95,6 +95,7 @@ const ScanResults = ({ props }) => { 'mobileAccessData', true, ); + console.log(`Disengage Status: ${result}`); }} > {item.item.device.deviceId} diff --git a/src/index.tsx b/src/index.tsx index bd84540..1429dcb 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -176,7 +176,7 @@ export class AbrevvaBleModule implements AbrevvaBLEInterface { } async stopLEScan(): Promise { - return await NativeModuleBle.stopLEScan(); + return NativeModuleBle.stopLEScan(); } async connect(deviceId: string, timeout?: number): Promise {