@onekeyfe/hd-transport-react-native 0.1.33 → 0.1.36

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,UAAU,IAAI,aAAa,EAC3B,MAAM,EAEN,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,SAAiC,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAkB,QAAQ,EAA6B,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAavC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAmBjE,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAEzC,SAAS,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAEnE,UAAU,UAAS;IAEnB,OAAO,UAAS;IAEhB,WAAW,SAAQ;IAEnB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAExC,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,EAAE,YAAY,CAAC;gBAEX,OAAO,EAAE,gBAAgB;IAIrC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY;IAKvC,SAAS,CAAC,UAAU,EAAE,GAAG;IAMzB,MAAM;IAIN,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAYjC,SAAS;IAsET,OAAO,CAAC,KAAK,EAAE,eAAe;;;IA4KpC,sBAAsB,CAAC,cAAc,EAAE,cAAc;IA4D/C,OAAO,CAAC,IAAI,EAAE,MAAM;IAcpB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmFpE,IAAI;IAIJ,MAAM;CAOP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,UAAU,IAAI,aAAa,EAC3B,MAAM,EAEN,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,SAAiC,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAkB,QAAQ,EAA6B,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAavC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAmBjE,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAEzC,SAAS,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAEnE,UAAU,UAAS;IAEnB,OAAO,UAAS;IAEhB,WAAW,SAAQ;IAEnB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAExC,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,EAAE,YAAY,CAAC;gBAEX,OAAO,EAAE,gBAAgB;IAIrC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY;IAKvC,SAAS,CAAC,UAAU,EAAE,GAAG;IAMzB,MAAM;IAIN,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAYjC,SAAS;IAyET,OAAO,CAAC,KAAK,EAAE,eAAe;;;IAuLpC,sBAAsB,CAAC,cAAc,EAAE,cAAc;IA4D/C,OAAO,CAAC,IAAI,EAAE,MAAM;IAcpB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmFpE,IAAI;IAIJ,MAAM;CAOP"}
package/dist/index.js CHANGED
@@ -232,6 +232,9 @@ class ReactNativeBleTransport {
232
232
  else if (error.errorCode === reactNativeBlePlx.BleErrorCode.BluetoothUnauthorized) {
233
233
  reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleLocationError));
234
234
  }
235
+ else if (error.errorCode === reactNativeBlePlx.BleErrorCode.ScanStartFailed) {
236
+ timer.timeout(() => { }, this.scanTimeout);
237
+ }
235
238
  else {
236
239
  reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleScanError, (_a = error.reason) !== null && _a !== void 0 ? _a : ''));
237
240
  }
@@ -303,8 +306,8 @@ class ReactNativeBleTransport {
303
306
  if (e.errorCode === reactNativeBlePlx.BleErrorCode.DeviceMTUChangeFailed ||
304
307
  e.errorCode === reactNativeBlePlx.BleErrorCode.OperationCancelled) {
305
308
  connectOptions = {};
306
- device = yield blePlxManager.connectToDevice(uuid);
307
309
  this.Log.debug('first try to reconnect without params');
310
+ device = yield blePlxManager.connectToDevice(uuid);
308
311
  }
309
312
  else {
310
313
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleConnectedError, (_a = e.reason) !== null && _a !== void 0 ? _a : e);
@@ -324,8 +327,18 @@ class ReactNativeBleTransport {
324
327
  if (e.errorCode === reactNativeBlePlx.BleErrorCode.DeviceMTUChangeFailed ||
325
328
  e.errorCode === reactNativeBlePlx.BleErrorCode.OperationCancelled) {
326
329
  connectOptions = {};
327
- yield device.connect();
328
330
  this.Log.debug('second try to reconnect without params');
331
+ try {
332
+ yield device.connect();
333
+ }
334
+ catch (e) {
335
+ this.Log.debug('last try to reconnect error: ', e);
336
+ if (e.errorCode === reactNativeBlePlx.BleErrorCode.OperationCancelled) {
337
+ this.Log.debug('last try to reconnect');
338
+ yield device.cancelConnection();
339
+ yield device.connect();
340
+ }
341
+ }
329
342
  }
330
343
  else {
331
344
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleConnectedError, (_b = e.reason) !== null && _b !== void 0 ? _b : e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-transport-react-native",
3
- "version": "0.1.33",
3
+ "version": "0.1.36",
4
4
  "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -20,10 +20,10 @@
20
20
  "lint:fix": "eslint . --fix"
21
21
  },
22
22
  "dependencies": {
23
- "@onekeyfe/hd-shared": "^0.1.33",
24
- "@onekeyfe/hd-transport": "^0.1.33",
23
+ "@onekeyfe/hd-shared": "^0.1.36",
24
+ "@onekeyfe/hd-transport": "^0.1.36",
25
25
  "react-native-ble-manager": "^8.1.0",
26
26
  "react-native-ble-plx": "^2.0.3"
27
27
  },
28
- "gitHead": "243a982fe1520e397f980892e3071fd53912339e"
28
+ "gitHead": "46ed925a322c0717c74c6bb2e0bb5e7f5df21fcf"
29
29
  }
package/src/index.ts CHANGED
@@ -120,6 +120,11 @@ export default class ReactNativeBleTransport {
120
120
  reject(ERRORS.TypedError(HardwareErrorCode.BlePermissionError));
121
121
  } else if (error.errorCode === BleErrorCode.BluetoothUnauthorized) {
122
122
  reject(ERRORS.TypedError(HardwareErrorCode.BleLocationError));
123
+ } else if (error.errorCode === BleErrorCode.ScanStartFailed) {
124
+ // Android Bluetooth will report an error when the search frequency is too fast,
125
+ // then nothing is processed and an empty array of devices is returned.
126
+ // Then the next search will be back to normal
127
+ timer.timeout(() => {}, this.scanTimeout);
123
128
  } else {
124
129
  reject(ERRORS.TypedError(HardwareErrorCode.BleScanError, error.reason ?? ''));
125
130
  }
@@ -128,13 +133,11 @@ export default class ReactNativeBleTransport {
128
133
 
129
134
  if (isOnekeyDevice(device?.name ?? null, device?.id)) {
130
135
  this.Log.debug('search device start ======================');
131
-
132
136
  const { name, localName, id } = device ?? {};
133
137
  this.Log.debug(
134
138
  `device name: ${name ?? ''}\nlocalName: ${localName ?? ''}\nid: ${id ?? ''}`
135
139
  );
136
140
  addDevice(device as unknown as Device);
137
-
138
141
  this.Log.debug('search device end ======================\n');
139
142
  }
140
143
  }
@@ -209,8 +212,8 @@ export default class ReactNativeBleTransport {
209
212
  e.errorCode === BleErrorCode.OperationCancelled
210
213
  ) {
211
214
  connectOptions = {};
212
- device = await blePlxManager.connectToDevice(uuid);
213
215
  this.Log.debug('first try to reconnect without params');
216
+ device = await blePlxManager.connectToDevice(uuid);
214
217
  } else {
215
218
  throw ERRORS.TypedError(HardwareErrorCode.BleConnectedError, e.reason ?? e);
216
219
  }
@@ -233,8 +236,19 @@ export default class ReactNativeBleTransport {
233
236
  e.errorCode === BleErrorCode.OperationCancelled
234
237
  ) {
235
238
  connectOptions = {};
236
- await device.connect();
237
239
  this.Log.debug('second try to reconnect without params');
240
+ try {
241
+ await device.connect();
242
+ } catch (e) {
243
+ this.Log.debug('last try to reconnect error: ', e);
244
+ // last try to reconnect device if this issue exists
245
+ // https://github.com/dotintent/react-native-ble-plx/issues/426
246
+ if (e.errorCode === BleErrorCode.OperationCancelled) {
247
+ this.Log.debug('last try to reconnect');
248
+ await device.cancelConnection();
249
+ await device.connect();
250
+ }
251
+ }
238
252
  } else {
239
253
  throw ERRORS.TypedError(HardwareErrorCode.BleConnectedError, e.reason ?? e);
240
254
  }