[Bluetooth] Add BLEAdapter::{add,remove}ConnectStateChangeListener 93/237793/6
authorPawel Wasowski <p.wasowski2@samsung.com>
Thu, 2 Jul 2020 13:55:00 +0000 (15:55 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Wed, 26 Aug 2020 06:06:45 +0000 (06:06 +0000)
Related ACR: TWDAPI-263

This commit adds methods for registering listeners called when the
device running the web app connects to a remote GATT server or a remote
GATT client connects to the local GATT server hosted on the device.

[Verification] I have tested methods in Chrome Dev Tools console and
               they work fine

Change-Id: I5a65c7e4b14654b2a0754a6d1440eb7be67dec5b
Signed-off-by: Pawel Wasowski <p.wasowski2@samsung.com>
src/bluetooth/bluetooth_api.js

index 37799e0032ec0a2d01695405f8eabd3f7063c46f..7c58de23aefaf5699fb7ae3f44447c5c02cef3e5 100755 (executable)
@@ -1612,6 +1612,38 @@ BluetoothLEAdapter.prototype.stopAdvertise = function() {
     }
 };
 
+BluetoothLEAdapter.prototype.addConnectStateChangeListener = function() {
+    privUtils_.log('Entered BluetoothLEAdapter.addClientConnectStateChaneListener()');
+    var args = AV.validateArgs(arguments, [
+        {
+            name: 'listener',
+            type: AV.Types.LISTENER,
+            values: ['onconnected', 'ondisconnected']
+        }
+    ]);
+
+    var func = function(event) {
+        if (args.listener[event.action]) {
+            args.listener[event.action](new BluetoothLEDevice(event.address));
+        }
+    };
+
+    return _bleConnectChangeListener.addListener(func);
+};
+
+BluetoothLEAdapter.prototype.removeConnectStateChangeListener = function() {
+    privUtils_.log('Entered BluetoothLEAdapter.removeConnectStateChangeListener()');
+
+    var args = AV.validateArgs(arguments, [
+        {
+            name: 'watchID',
+            type: AV.Types.LONG
+        }
+    ]);
+
+    _bleConnectChangeListener.removeListener(args.watchID);
+};
+
 //class BluetoothGATTService ///////////////////////////
 var BluetoothGATTService = function(data, address) {
     var handle_ = data.handle;
@@ -1990,6 +2022,12 @@ var _bluetoothGATTCharacteristicListener = _multipleListenerBuilder(
     true
 );
 
+
+/*
+ * This object is used by:
+ * - BluetoothLEDevice.addConnectStateChangeListener()
+ * - BluetoothLEAdapter.addConnectStateChangeListener()
+ */
 var _bleConnectChangeListener = _multipleListenerBuilder(
     'BluetoothLEConnectChangeCallback',
     function(listener, event) {