react-native-ble-manager 12.2.0 → 12.2.2

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.
@@ -109,6 +109,7 @@ public class DefaultPeripheral extends Peripheral {
109
109
  }
110
110
 
111
111
  public void updateData(ScanResult result) {
112
+ scanResult = result;
112
113
  advertisingData = result.getScanRecord();
113
114
  advertisingDataBytes = advertisingData.getBytes();
114
115
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-ble-manager",
3
- "version": "12.2.0",
3
+ "version": "12.2.2",
4
4
  "description": "A BLE module for react native.",
5
5
  "homepage": "https://innoveit.github.io/react-native-ble-manager/",
6
6
  "repository": {
@@ -9,7 +9,7 @@ type ManifestUsesPermissionWithExtraTools = {
9
9
  };
10
10
  type AndroidManifest = {
11
11
  manifest: InnerManifest & {
12
- permission?: ManifestPermission;
12
+ 'permission'?: ManifestPermission;
13
13
  'uses-permission'?: ManifestUsesPermissionWithExtraTools[];
14
14
  'uses-permission-sdk-23'?: ManifestUsesPermissionWithExtraTools[];
15
15
  'uses-feature'?: InnerManifest['uses-feature'];
@@ -8,7 +8,7 @@ exports.addCompanionPermissionToManifest = addCompanionPermissionToManifest;
8
8
  exports.addBLEHardwareFeatureToManifest = addBLEHardwareFeatureToManifest;
9
9
  const config_plugins_1 = require("expo/config-plugins");
10
10
  const withBLEAndroidManifest = (config, { isBleRequired, neverForLocation, companionDeviceEnabled }) => {
11
- return (0, config_plugins_1.withAndroidManifest)(config, config => {
11
+ return (0, config_plugins_1.withAndroidManifest)(config, (config) => {
12
12
  config.modResults = addLocationPermissionToManifest(config.modResults, neverForLocation);
13
13
  config.modResults = addScanPermissionToManifest(config.modResults, neverForLocation);
14
14
  config.modResults = addConnectPermissionToManifest(config.modResults, neverForLocation);
@@ -29,30 +29,51 @@ exports.withBLEAndroidManifest = withBLEAndroidManifest;
29
29
  * From Android SDK 31 (Android 12) it might not be required if BLE is not used for location.
30
30
  */
31
31
  function addLocationPermissionToManifest(androidManifest, neverForLocationSinceSdk31) {
32
- if (!Array.isArray(androidManifest.manifest['uses-permission-sdk-23'])) {
33
- androidManifest.manifest['uses-permission-sdk-23'] = [];
32
+ const existingPermissionNames = new Set();
33
+ if (Array.isArray(androidManifest.manifest['uses-permission'])) {
34
+ for (const item of androidManifest.manifest['uses-permission']) {
35
+ const permissionName = item?.$?.['android:name'];
36
+ if (permissionName) {
37
+ existingPermissionNames.add(permissionName);
38
+ }
39
+ }
40
+ }
41
+ if (Array.isArray(androidManifest.manifest['uses-permission-sdk-23'])) {
42
+ for (const item of androidManifest.manifest['uses-permission-sdk-23']) {
43
+ const permissionName = item?.$?.['android:name'];
44
+ if (permissionName) {
45
+ existingPermissionNames.add(permissionName);
46
+ }
47
+ }
34
48
  }
35
49
  const optMaxSdkVersion = neverForLocationSinceSdk31
36
50
  ? {
37
51
  'android:maxSdkVersion': '30',
38
52
  }
39
53
  : {};
40
- if (!androidManifest.manifest['uses-permission-sdk-23'].find(item => item.$['android:name'] === 'android.permission.ACCESS_COARSE_LOCATION')) {
41
- androidManifest.manifest['uses-permission-sdk-23'].push({
54
+ const permissionsToAdd = [];
55
+ if (!existingPermissionNames.has('android.permission.ACCESS_COARSE_LOCATION')) {
56
+ permissionsToAdd.push({
42
57
  $: {
43
58
  'android:name': 'android.permission.ACCESS_COARSE_LOCATION',
44
59
  ...optMaxSdkVersion,
45
60
  },
46
61
  });
47
62
  }
48
- if (!androidManifest.manifest['uses-permission-sdk-23'].find(item => item.$['android:name'] === 'android.permission.ACCESS_FINE_LOCATION')) {
49
- androidManifest.manifest['uses-permission-sdk-23'].push({
63
+ if (!existingPermissionNames.has('android.permission.ACCESS_FINE_LOCATION')) {
64
+ permissionsToAdd.push({
50
65
  $: {
51
66
  'android:name': 'android.permission.ACCESS_FINE_LOCATION',
52
67
  ...optMaxSdkVersion,
53
68
  },
54
69
  });
55
70
  }
71
+ if (permissionsToAdd.length) {
72
+ if (!Array.isArray(androidManifest.manifest['uses-permission-sdk-23'])) {
73
+ androidManifest.manifest['uses-permission-sdk-23'] = [];
74
+ }
75
+ androidManifest.manifest['uses-permission-sdk-23'].push(...permissionsToAdd);
76
+ }
56
77
  return androidManifest;
57
78
  }
58
79
  /**
@@ -63,7 +84,7 @@ function addScanPermissionToManifest(androidManifest, neverForLocation) {
63
84
  if (!Array.isArray(androidManifest.manifest['uses-permission'])) {
64
85
  androidManifest.manifest['uses-permission'] = [];
65
86
  }
66
- if (!androidManifest.manifest['uses-permission'].find(item => item.$['android:name'] === 'android.permission.BLUETOOTH_SCAN')) {
87
+ if (!androidManifest.manifest['uses-permission'].find((item) => item.$['android:name'] === 'android.permission.BLUETOOTH_SCAN')) {
67
88
  config_plugins_1.AndroidConfig.Manifest.ensureToolsAvailable(androidManifest);
68
89
  androidManifest.manifest['uses-permission']?.push({
69
90
  $: {
@@ -83,7 +104,7 @@ function addConnectPermissionToManifest(androidManifest, neverForLocation) {
83
104
  if (!Array.isArray(androidManifest.manifest['uses-permission'])) {
84
105
  androidManifest.manifest['uses-permission'] = [];
85
106
  }
86
- if (!androidManifest.manifest['uses-permission'].find(item => item.$['android:name'] === 'android.permission.BLUETOOTH_CONNECT')) {
107
+ if (!androidManifest.manifest['uses-permission'].find((item) => item.$['android:name'] === 'android.permission.BLUETOOTH_CONNECT')) {
87
108
  config_plugins_1.AndroidConfig.Manifest.ensureToolsAvailable(androidManifest);
88
109
  androidManifest.manifest['uses-permission']?.push({
89
110
  $: {
@@ -97,7 +118,7 @@ function addCompanionPermissionToManifest(androidManifest) {
97
118
  if (!Array.isArray(androidManifest.manifest['uses-feature'])) {
98
119
  androidManifest.manifest['uses-feature'] = [];
99
120
  }
100
- if (!androidManifest.manifest['uses-feature'].find(item => item.$['android:name'] === 'android.software.companion_device_setup')) {
121
+ if (!androidManifest.manifest['uses-feature'].find((item) => item.$['android:name'] === 'android.software.companion_device_setup')) {
101
122
  androidManifest.manifest['uses-feature']?.push({
102
123
  $: {
103
124
  'android:name': 'android.software.companion_device_setup',
@@ -113,7 +134,7 @@ function addBLEHardwareFeatureToManifest(androidManifest) {
113
134
  if (!Array.isArray(androidManifest.manifest['uses-feature'])) {
114
135
  androidManifest.manifest['uses-feature'] = [];
115
136
  }
116
- if (!androidManifest.manifest['uses-feature'].find(item => item.$['android:name'] === 'android.hardware.bluetooth_le')) {
137
+ if (!androidManifest.manifest['uses-feature'].find((item) => item.$['android:name'] === 'android.hardware.bluetooth_le')) {
117
138
  androidManifest.manifest['uses-feature']?.push({
118
139
  $: {
119
140
  'android:name': 'android.hardware.bluetooth_le',