From 1e85705dcb2541e3e84191c4724a927b0d7204b2 Mon Sep 17 00:00:00 2001 From: mhochsto <116495532+mhochsto@users.noreply.github.com> Date: Wed, 19 Feb 2025 10:08:44 +0100 Subject: [PATCH] fix: added timeout argument to interface and android --- .../evva/xesar/abrevva/reactnative/AbrevvaBleModule.kt | 9 ++++++++- src/index.tsx | 2 ++ src/interfaces.tsx | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) 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 caebed0..1fe47bf 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 @@ -304,6 +304,11 @@ class AbrevvaBleModule(reactContext: ReactApplicationContext) : @RequiresPermission(value = "android.permission.BLUETOOTH_CONNECT") fun startNotifications(options: ReadableMap, promise: Promise) { val deviceId = options.getString("deviceId") ?: "" + var timeout: Long = 10000 + try { + timeout = options.getDouble("timeout").toLong() + } catch (_: Exception) { + } val characteristic = getCharacteristic(options, promise) ?: return promise.reject(Exception("startNotifications(): bad characteristic")) @@ -321,7 +326,9 @@ class AbrevvaBleModule(reactContext: ReactApplicationContext) : ret.putString("value", bytesToString(data)) reactApplicationContext.emitDeviceEvent(key, ret) - }) + }, + timeout + ) if (success) { val ret = Arguments.createMap() ret.putString("value", "success") diff --git a/src/index.tsx b/src/index.tsx index 0960477..4e9e55a 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -264,6 +264,7 @@ export class AbrevvaBleModule implements AbrevvaBLEInterface { deviceId: string, service: string, characteristic: string, + timeout: number, callback: (event: StringResult) => void, ): Promise { const key = `notification|${deviceId}|${service}|${characteristic}`.toLowerCase(); @@ -273,6 +274,7 @@ export class AbrevvaBleModule implements AbrevvaBLEInterface { deviceId: deviceId, service: service, characteristic: characteristic, + timeout: timeout, }), ); } diff --git a/src/interfaces.tsx b/src/interfaces.tsx index 66c9f88..7bcddb5 100644 --- a/src/interfaces.tsx +++ b/src/interfaces.tsx @@ -197,6 +197,7 @@ export interface AbrevvaBLEInterface { deviceId: string, service: string, characteristic: string, + timeout: number, callback: (event: StringResult) => void, ): Promise; stopNotifications(deviceId: string, service: string, characteristic: string): Promise;