var ret = true;
switch (event.action) {
- case 'onstarted':
- break;
-
- case 'ondevicefound':
+ case 'onsuccess':
d = new BluetoothLEDevice(event.data);
break;
- case 'onfinished':
- d = [];
- event.data.forEach(function(data) {
- d.push(new BluetoothLEDevice(data));
- });
-
- // stop listening
- ret = false;
- break;
-
case 'onerror':
if (errorCallback) {
errorCallback(native.getErrorObject(event));
var args = AV.validateMethod(arguments, [{
name: 'successCallback',
type: AV.Types.LISTENER,
- values: ['onstarted', 'ondevicefound', 'onfinished']
+ values: ['onsuccess']
}, {
name: 'errorCallback',
type: AV.Types.FUNCTION,
xwalk.utils.checkPrivilegeAccess(Privilege.BLUETOOTH);
- // _bleScanListener.removeListener() is going to be called in 'onfinished' handler
+ _bleScanListener.removeListener();
var result = native.callSync('BluetoothLEAdapter_stopScan', {});
if (native.isFailure(result)) {
- _bleScanListener.removeListener();
throw native.getErrorObject(result);
}
};
const std::string kAction = "action";
const std::string kData = "data";
// scan-related
-const std::string kOnScanStarted = "onstarted";
-const std::string kOnScanDeviceFound = "ondevicefound";
-const std::string kOnScanFinished = "onfinished";
+const std::string kOnScanSuccess = "onsuccess";
const std::string kOnScanError = "onerror";
const std::string kScanEvent = "BluetoothLEScanCallback";
// advertise-related
data_obj->insert(std::make_pair(kAction, picojson::value(kOnScanError)));
} else {
// TODO: this is probably capi-network-bluetooth error: when scan is stopped info has 0x1 value
- if (nullptr == info || reinterpret_cast<void*>(0x1) == info) {
- // info is empty, so this is start/stop callback
- if (!adapter->scanning_) { // scanning has to be stopped by the user, it is not stopped by the platform
- LoggerD("Scan finished");
- data_obj->insert(std::make_pair(kAction, picojson::value(kOnScanFinished)));
- data_obj->insert(std::make_pair(kData, picojson::value(adapter->discovered_devices_)));
- } else {
- LoggerD("Scan started");
- adapter->discovered_devices_.clear();
- data_obj->insert(std::make_pair(kAction, picojson::value(kOnScanStarted)));
- }
- } else {
+ if (nullptr != info && reinterpret_cast<void*>(0x1) != info) {
// device found
LoggerD("Device found");
picojson::value data{picojson::object{}};
const auto& r = BluetoothLEDevice::ToJson(info, &data.get<picojson::object>());
if (r) {
- data_obj->insert(std::make_pair(kAction, picojson::value(kOnScanDeviceFound)));
+ data_obj->insert(std::make_pair(kAction, picojson::value(kOnScanSuccess)));
data_obj->insert(std::make_pair(kData, data));
- adapter->discovered_devices_.push_back(data);
} else {
LoggerE("Failed to parse Bluetooth LE device");
ReportError(r, data_obj);