@blueid/access-capacitor 1.16.0 → 1.18.0

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.
Files changed (34) hide show
  1. package/android/build.gradle +4 -4
  2. package/android/repo/net/blueid/access/5.0/access-5.0-sources.jar +0 -0
  3. package/android/repo/net/blueid/access/5.0/access-5.0-sources.jar.md5 +1 -0
  4. package/android/repo/net/blueid/access/5.0/access-5.0-sources.jar.sha1 +1 -0
  5. package/android/repo/net/blueid/access/5.0/access-5.0-sources.jar.sha256 +1 -0
  6. package/android/repo/net/blueid/access/5.0/access-5.0-sources.jar.sha512 +1 -0
  7. package/android/repo/net/blueid/access/5.0/access-5.0.aar +0 -0
  8. package/android/repo/net/blueid/access/5.0/access-5.0.aar.md5 +1 -0
  9. package/android/repo/net/blueid/access/5.0/access-5.0.aar.sha1 +1 -0
  10. package/android/repo/net/blueid/access/5.0/access-5.0.aar.sha256 +1 -0
  11. package/android/repo/net/blueid/access/5.0/access-5.0.aar.sha512 +1 -0
  12. package/android/repo/net/blueid/access/5.0/access-5.0.module +257 -0
  13. package/android/repo/net/blueid/access/5.0/access-5.0.module.md5 +1 -0
  14. package/android/repo/net/blueid/access/5.0/access-5.0.module.sha1 +1 -0
  15. package/android/repo/net/blueid/access/5.0/access-5.0.module.sha256 +1 -0
  16. package/android/repo/net/blueid/access/5.0/access-5.0.module.sha512 +1 -0
  17. package/android/repo/net/blueid/access/5.0/access-5.0.pom +160 -0
  18. package/android/repo/net/blueid/access/5.0/access-5.0.pom.md5 +1 -0
  19. package/android/repo/net/blueid/access/5.0/access-5.0.pom.sha1 +1 -0
  20. package/android/repo/net/blueid/access/5.0/access-5.0.pom.sha256 +1 -0
  21. package/android/repo/net/blueid/access/5.0/access-5.0.pom.sha512 +1 -0
  22. package/android/repo/net/blueid/access/maven-metadata.xml +13 -0
  23. package/android/repo/net/blueid/access/maven-metadata.xml.md5 +1 -0
  24. package/android/repo/net/blueid/access/maven-metadata.xml.sha1 +1 -0
  25. package/android/repo/net/blueid/access/maven-metadata.xml.sha256 +1 -0
  26. package/android/repo/net/blueid/access/maven-metadata.xml.sha512 +1 -0
  27. package/ios/CBlueIDAccess.xcframework/Info.plist +8 -8
  28. package/ios/CBlueIDAccess.xcframework/ios-arm64/libCBlueIDAccess.a +0 -0
  29. package/ios/CBlueIDAccess.xcframework/ios-arm64_x86_64-simulator/libCBlueIDAccess.a +0 -0
  30. package/ios/CBlueIDAccess.xcframework/macos-arm64_x86_64/libCBlueIDAccess.a +0 -0
  31. package/ios/Plugin/BlueIDAccessSDK/BlueDevices.swift +11 -25
  32. package/ios/Plugin/BlueIDAccessSDK/BlueDevicesList.swift +89 -0
  33. package/ios/Plugin/BlueIDAccessSDK/BlueSPTransponder.swift +1 -3
  34. package/package.json +2 -1
@@ -11,7 +11,7 @@ buildscript {
11
11
  mavenCentral()
12
12
  }
13
13
  dependencies {
14
- classpath 'com.android.tools.build:gradle:8.0.0'
14
+ classpath 'com.android.tools.build:gradle:8.0.2'
15
15
  }
16
16
  }
17
17
 
@@ -19,10 +19,10 @@ apply plugin: 'com.android.library'
19
19
 
20
20
  android {
21
21
  namespace "com.blueid.access.plugins.capacitor"
22
- compileSdkVersion project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 33
22
+ compileSdkVersion project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 34
23
23
  defaultConfig {
24
- minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 22
25
- targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 33
24
+ minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 30
25
+ targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 34
26
26
  versionCode 1
27
27
  versionName "1.0"
28
28
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -0,0 +1 @@
1
+ 4b5b566ab76c364fc8e7c24c410a40f2
@@ -0,0 +1 @@
1
+ f7e210c54fe9b23e72d7f3c88f0a8ebfa54a106b
@@ -0,0 +1 @@
1
+ ac3c7a633e9a446177b1100e8fcaf14c94681c0860f7c4cf8da7a031435c23fe
@@ -0,0 +1 @@
1
+ 0fdaabbae28e381782bce56de50e0869e13d6144397ff03af368de0d85c46efe4f393369c796ee9206a0667a6b1ac1d9eca4ecc60d365810b4d63a8ded6c8155
@@ -0,0 +1 @@
1
+ edbcee983ca076d05b3abd2da31bf74a
@@ -0,0 +1 @@
1
+ 3e4877787d664c9f2cdd11ec4107f0c728b71dd1
@@ -0,0 +1 @@
1
+ 50447fd265c245f097093bc8499ba54499b2c423690425c39ad42a4b2bc80b4b
@@ -0,0 +1 @@
1
+ cd7a9541338e24ae60642b7d190acaa96361c3a0e9deb2d4e3ab935a7351d513b2e23c3741e7fb94fc407ac8c2f5d3ba8018ca2020c4740a59d6bdb9aaf4e21c
@@ -0,0 +1,257 @@
1
+ {
2
+ "formatVersion": "1.1",
3
+ "component": {
4
+ "group": "net.blueid",
5
+ "module": "access",
6
+ "version": "5.0",
7
+ "attributes": {
8
+ "org.gradle.status": "release"
9
+ }
10
+ },
11
+ "createdBy": {
12
+ "gradle": {
13
+ "version": "8.4"
14
+ }
15
+ },
16
+ "variants": [
17
+ {
18
+ "name": "releaseApiElements-published",
19
+ "attributes": {
20
+ "org.gradle.category": "library",
21
+ "org.gradle.usage": "java-api",
22
+ "org.jetbrains.kotlin.platform.type": "androidJvm"
23
+ },
24
+ "dependencies": [
25
+ {
26
+ "group": "org.jetbrains.kotlin",
27
+ "module": "kotlin-stdlib",
28
+ "version": {
29
+ "requires": "1.9.22"
30
+ }
31
+ }
32
+ ],
33
+ "files": [
34
+ {
35
+ "name": "access-5.0.aar",
36
+ "url": "access-5.0.aar",
37
+ "size": 2758664,
38
+ "sha512": "cd7a9541338e24ae60642b7d190acaa96361c3a0e9deb2d4e3ab935a7351d513b2e23c3741e7fb94fc407ac8c2f5d3ba8018ca2020c4740a59d6bdb9aaf4e21c",
39
+ "sha256": "50447fd265c245f097093bc8499ba54499b2c423690425c39ad42a4b2bc80b4b",
40
+ "sha1": "3e4877787d664c9f2cdd11ec4107f0c728b71dd1",
41
+ "md5": "edbcee983ca076d05b3abd2da31bf74a"
42
+ }
43
+ ]
44
+ },
45
+ {
46
+ "name": "releaseRuntimeElements-published",
47
+ "attributes": {
48
+ "org.gradle.category": "library",
49
+ "org.gradle.usage": "java-runtime",
50
+ "org.jetbrains.kotlin.platform.type": "androidJvm"
51
+ },
52
+ "dependencies": [
53
+ {
54
+ "group": "androidx.room",
55
+ "module": "room-runtime",
56
+ "version": {
57
+ "requires": "2.6.1"
58
+ }
59
+ },
60
+ {
61
+ "group": "com.google.android.material",
62
+ "module": "material",
63
+ "version": {
64
+ "requires": "1.11.0"
65
+ }
66
+ },
67
+ {
68
+ "group": "androidx.room",
69
+ "module": "room-ktx",
70
+ "version": {
71
+ "requires": "2.6.1"
72
+ }
73
+ },
74
+ {
75
+ "group": "androidx.appcompat",
76
+ "module": "appcompat",
77
+ "version": {
78
+ "requires": "1.6.1"
79
+ }
80
+ },
81
+ {
82
+ "group": "com.squareup.retrofit2",
83
+ "module": "retrofit",
84
+ "version": {
85
+ "requires": "2.9.0"
86
+ }
87
+ },
88
+ {
89
+ "group": "com.squareup.retrofit2",
90
+ "module": "converter-scalars",
91
+ "version": {
92
+ "requires": "2.9.0"
93
+ }
94
+ },
95
+ {
96
+ "group": "com.squareup.okhttp3",
97
+ "module": "logging-interceptor",
98
+ "version": {
99
+ "requires": "4.11.0"
100
+ }
101
+ },
102
+ {
103
+ "group": "com.jakewharton.retrofit",
104
+ "module": "retrofit2-kotlinx-serialization-converter",
105
+ "version": {
106
+ "requires": "1.0.0"
107
+ }
108
+ },
109
+ {
110
+ "group": "no.nordicsemi.android.kotlin.ble",
111
+ "module": "scanner",
112
+ "version": {
113
+ "requires": "1.0.13"
114
+ }
115
+ },
116
+ {
117
+ "group": "no.nordicsemi.android.kotlin.ble",
118
+ "module": "client",
119
+ "version": {
120
+ "requires": "1.0.13"
121
+ }
122
+ },
123
+ {
124
+ "group": "com.google.protobuf",
125
+ "module": "protobuf-java",
126
+ "version": {
127
+ "requires": "3.25.3"
128
+ }
129
+ },
130
+ {
131
+ "group": "com.google.protobuf",
132
+ "module": "protobuf-java-util",
133
+ "version": {
134
+ "requires": "3.25.3"
135
+ }
136
+ },
137
+ {
138
+ "group": "androidx.activity",
139
+ "module": "activity-ktx",
140
+ "version": {
141
+ "requires": "1.8.2"
142
+ }
143
+ },
144
+ {
145
+ "group": "androidx.annotation",
146
+ "module": "annotation",
147
+ "version": {
148
+ "requires": "1.7.1"
149
+ }
150
+ },
151
+ {
152
+ "group": "org.jetbrains.kotlinx",
153
+ "module": "kotlinx-coroutines-android",
154
+ "version": {
155
+ "requires": "1.7.3"
156
+ }
157
+ },
158
+ {
159
+ "group": "org.jetbrains.kotlinx",
160
+ "module": "kotlinx-serialization-json",
161
+ "version": {
162
+ "requires": "1.6.0"
163
+ }
164
+ },
165
+ {
166
+ "group": "androidx.lifecycle",
167
+ "module": "lifecycle-viewmodel-ktx",
168
+ "version": {
169
+ "requires": "2.7.0"
170
+ }
171
+ },
172
+ {
173
+ "group": "androidx.work",
174
+ "module": "work-runtime",
175
+ "version": {
176
+ "requires": "2.9.0"
177
+ }
178
+ },
179
+ {
180
+ "group": "androidx.work",
181
+ "module": "work-runtime-ktx",
182
+ "version": {
183
+ "requires": "2.9.0"
184
+ }
185
+ },
186
+ {
187
+ "group": "com.google.dagger",
188
+ "module": "dagger",
189
+ "version": {
190
+ "requires": "2.50"
191
+ }
192
+ },
193
+ {
194
+ "group": "com.github.skydoves",
195
+ "module": "sandwich-retrofit",
196
+ "version": {
197
+ "requires": "2.0.6"
198
+ }
199
+ },
200
+ {
201
+ "group": "org.jetbrains.kotlin",
202
+ "module": "kotlin-reflect",
203
+ "version": {
204
+ "requires": "1.9.22"
205
+ }
206
+ },
207
+ {
208
+ "group": "org.mockito",
209
+ "module": "mockito-bom",
210
+ "version": {
211
+ "requires": "5.11.0"
212
+ }
213
+ },
214
+ {
215
+ "group": "org.jetbrains.kotlin",
216
+ "module": "kotlin-stdlib",
217
+ "version": {
218
+ "requires": "1.9.22"
219
+ }
220
+ }
221
+ ],
222
+ "files": [
223
+ {
224
+ "name": "access-5.0.aar",
225
+ "url": "access-5.0.aar",
226
+ "size": 2758664,
227
+ "sha512": "cd7a9541338e24ae60642b7d190acaa96361c3a0e9deb2d4e3ab935a7351d513b2e23c3741e7fb94fc407ac8c2f5d3ba8018ca2020c4740a59d6bdb9aaf4e21c",
228
+ "sha256": "50447fd265c245f097093bc8499ba54499b2c423690425c39ad42a4b2bc80b4b",
229
+ "sha1": "3e4877787d664c9f2cdd11ec4107f0c728b71dd1",
230
+ "md5": "edbcee983ca076d05b3abd2da31bf74a"
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "name": "releaseSourcesElements-published",
236
+ "attributes": {
237
+ "org.gradle.category": "documentation",
238
+ "org.gradle.dependency.bundling": "external",
239
+ "org.gradle.docstype": "sources",
240
+ "org.gradle.libraryelements": "jar",
241
+ "org.gradle.usage": "java-runtime",
242
+ "org.jetbrains.kotlin.platform.type": "androidJvm"
243
+ },
244
+ "files": [
245
+ {
246
+ "name": "access-5.0-sources.jar",
247
+ "url": "access-5.0-sources.jar",
248
+ "size": 909298,
249
+ "sha512": "0fdaabbae28e381782bce56de50e0869e13d6144397ff03af368de0d85c46efe4f393369c796ee9206a0667a6b1ac1d9eca4ecc60d365810b4d63a8ded6c8155",
250
+ "sha256": "ac3c7a633e9a446177b1100e8fcaf14c94681c0860f7c4cf8da7a031435c23fe",
251
+ "sha1": "f7e210c54fe9b23e72d7f3c88f0a8ebfa54a106b",
252
+ "md5": "4b5b566ab76c364fc8e7c24c410a40f2"
253
+ }
254
+ ]
255
+ }
256
+ ]
257
+ }
@@ -0,0 +1 @@
1
+ 999f39fedb83ceb690d310dad99e6cbb
@@ -0,0 +1 @@
1
+ d5c21392c1e9c947d19d2c84809c2b1d9110b82b
@@ -0,0 +1 @@
1
+ c0f5695efbbc71887d2fcab844ca968a53acada73b04ea0e3c32cf233913683b
@@ -0,0 +1 @@
1
+ 7bea45c6bd4f5a98ef58ca4916f50158ef082c94098036ebcfcb373342c7e2ca53d27b4f5508caf2b9a1e81475bba6a021ce763af106375937de2ce051746673
@@ -0,0 +1,160 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4
+ <!-- This module was also published with a richer model, Gradle metadata, -->
5
+ <!-- which should be used instead. Do not delete the following line which -->
6
+ <!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
7
+ <!-- that they should prefer consuming it instead. -->
8
+ <!-- do_not_remove: published-with-gradle-metadata -->
9
+ <modelVersion>4.0.0</modelVersion>
10
+ <groupId>net.blueid</groupId>
11
+ <artifactId>access</artifactId>
12
+ <version>5.0</version>
13
+ <packaging>aar</packaging>
14
+ <dependencies>
15
+ <dependency>
16
+ <groupId>org.jetbrains.kotlin</groupId>
17
+ <artifactId>kotlin-stdlib</artifactId>
18
+ <version>1.9.22</version>
19
+ <scope>compile</scope>
20
+ </dependency>
21
+ <dependency>
22
+ <groupId>androidx.room</groupId>
23
+ <artifactId>room-runtime</artifactId>
24
+ <version>2.6.1</version>
25
+ <scope>runtime</scope>
26
+ </dependency>
27
+ <dependency>
28
+ <groupId>com.google.android.material</groupId>
29
+ <artifactId>material</artifactId>
30
+ <version>1.11.0</version>
31
+ <scope>runtime</scope>
32
+ </dependency>
33
+ <dependency>
34
+ <groupId>androidx.room</groupId>
35
+ <artifactId>room-ktx</artifactId>
36
+ <version>2.6.1</version>
37
+ <scope>runtime</scope>
38
+ </dependency>
39
+ <dependency>
40
+ <groupId>androidx.appcompat</groupId>
41
+ <artifactId>appcompat</artifactId>
42
+ <version>1.6.1</version>
43
+ <scope>runtime</scope>
44
+ </dependency>
45
+ <dependency>
46
+ <groupId>com.squareup.retrofit2</groupId>
47
+ <artifactId>retrofit</artifactId>
48
+ <version>2.9.0</version>
49
+ <scope>runtime</scope>
50
+ </dependency>
51
+ <dependency>
52
+ <groupId>com.squareup.retrofit2</groupId>
53
+ <artifactId>converter-scalars</artifactId>
54
+ <version>2.9.0</version>
55
+ <scope>runtime</scope>
56
+ </dependency>
57
+ <dependency>
58
+ <groupId>com.squareup.okhttp3</groupId>
59
+ <artifactId>logging-interceptor</artifactId>
60
+ <version>4.11.0</version>
61
+ <scope>runtime</scope>
62
+ </dependency>
63
+ <dependency>
64
+ <groupId>com.jakewharton.retrofit</groupId>
65
+ <artifactId>retrofit2-kotlinx-serialization-converter</artifactId>
66
+ <version>1.0.0</version>
67
+ <scope>runtime</scope>
68
+ </dependency>
69
+ <dependency>
70
+ <groupId>no.nordicsemi.android.kotlin.ble</groupId>
71
+ <artifactId>scanner</artifactId>
72
+ <version>1.0.13</version>
73
+ <scope>runtime</scope>
74
+ </dependency>
75
+ <dependency>
76
+ <groupId>no.nordicsemi.android.kotlin.ble</groupId>
77
+ <artifactId>client</artifactId>
78
+ <version>1.0.13</version>
79
+ <scope>runtime</scope>
80
+ </dependency>
81
+ <dependency>
82
+ <groupId>com.google.protobuf</groupId>
83
+ <artifactId>protobuf-java</artifactId>
84
+ <version>3.25.3</version>
85
+ <scope>runtime</scope>
86
+ </dependency>
87
+ <dependency>
88
+ <groupId>com.google.protobuf</groupId>
89
+ <artifactId>protobuf-java-util</artifactId>
90
+ <version>3.25.3</version>
91
+ <scope>runtime</scope>
92
+ </dependency>
93
+ <dependency>
94
+ <groupId>androidx.activity</groupId>
95
+ <artifactId>activity-ktx</artifactId>
96
+ <version>1.8.2</version>
97
+ <scope>runtime</scope>
98
+ </dependency>
99
+ <dependency>
100
+ <groupId>androidx.annotation</groupId>
101
+ <artifactId>annotation</artifactId>
102
+ <version>1.7.1</version>
103
+ <scope>runtime</scope>
104
+ </dependency>
105
+ <dependency>
106
+ <groupId>org.jetbrains.kotlinx</groupId>
107
+ <artifactId>kotlinx-coroutines-android</artifactId>
108
+ <version>1.7.3</version>
109
+ <scope>runtime</scope>
110
+ </dependency>
111
+ <dependency>
112
+ <groupId>org.jetbrains.kotlinx</groupId>
113
+ <artifactId>kotlinx-serialization-json</artifactId>
114
+ <version>1.6.0</version>
115
+ <scope>runtime</scope>
116
+ </dependency>
117
+ <dependency>
118
+ <groupId>androidx.lifecycle</groupId>
119
+ <artifactId>lifecycle-viewmodel-ktx</artifactId>
120
+ <version>2.7.0</version>
121
+ <scope>runtime</scope>
122
+ </dependency>
123
+ <dependency>
124
+ <groupId>androidx.work</groupId>
125
+ <artifactId>work-runtime</artifactId>
126
+ <version>2.9.0</version>
127
+ <scope>runtime</scope>
128
+ </dependency>
129
+ <dependency>
130
+ <groupId>androidx.work</groupId>
131
+ <artifactId>work-runtime-ktx</artifactId>
132
+ <version>2.9.0</version>
133
+ <scope>runtime</scope>
134
+ </dependency>
135
+ <dependency>
136
+ <groupId>com.google.dagger</groupId>
137
+ <artifactId>dagger</artifactId>
138
+ <version>2.50</version>
139
+ <scope>runtime</scope>
140
+ </dependency>
141
+ <dependency>
142
+ <groupId>com.github.skydoves</groupId>
143
+ <artifactId>sandwich-retrofit</artifactId>
144
+ <version>2.0.6</version>
145
+ <scope>runtime</scope>
146
+ </dependency>
147
+ <dependency>
148
+ <groupId>org.jetbrains.kotlin</groupId>
149
+ <artifactId>kotlin-reflect</artifactId>
150
+ <version>1.9.22</version>
151
+ <scope>runtime</scope>
152
+ </dependency>
153
+ <dependency>
154
+ <groupId>org.mockito</groupId>
155
+ <artifactId>mockito-bom</artifactId>
156
+ <version>5.11.0</version>
157
+ <scope>runtime</scope>
158
+ </dependency>
159
+ </dependencies>
160
+ </project>
@@ -0,0 +1 @@
1
+ 26d0c37a2afe7471ed9c163d273a5044
@@ -0,0 +1 @@
1
+ 1253640f192cb2cbcf4627f23675bd55907a689c
@@ -0,0 +1 @@
1
+ a00b32a36f20cbe58f6e27c593e890f75c9dc1d3f9d8851ebb8d5e1b13917b98
@@ -0,0 +1 @@
1
+ 0133f4e1be80d72dd5bf167c7c78bd2324b26eeba79f76f99c21835926c9dbdb69f7205abf1158c3fcc8455b669a585f1d8f53b97d2fb625e418d6b2b3bbb0b1
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <metadata>
3
+ <groupId>net.blueid</groupId>
4
+ <artifactId>access</artifactId>
5
+ <versioning>
6
+ <latest>5.0</latest>
7
+ <release>5.0</release>
8
+ <versions>
9
+ <version>5.0</version>
10
+ </versions>
11
+ <lastUpdated>20240408201106</lastUpdated>
12
+ </versioning>
13
+ </metadata>
@@ -0,0 +1 @@
1
+ fea20cb8b72b0378c243a5a9c0fd454a
@@ -0,0 +1 @@
1
+ 82cb355b18e8f1dddc59c5816acf3a66bd7fc316
@@ -0,0 +1 @@
1
+ 92b220235d1e6ba2b23ab3adb78c685fd26a390231ff13f7fd7f039a137ac022
@@ -0,0 +1 @@
1
+ a115da1464fabf791c63c790eb4655569322fcf5a4e3e67e3527c160d72fc51dbeba70d59b7d9028fa79150e524c84951aad1f84c6ff85fd14b2426208c35070
@@ -10,15 +10,16 @@
10
10
  <key>HeadersPath</key>
11
11
  <string>Headers</string>
12
12
  <key>LibraryIdentifier</key>
13
- <string>ios-arm64</string>
13
+ <string>macos-arm64_x86_64</string>
14
14
  <key>LibraryPath</key>
15
15
  <string>libCBlueIDAccess.a</string>
16
16
  <key>SupportedArchitectures</key>
17
17
  <array>
18
18
  <string>arm64</string>
19
+ <string>x86_64</string>
19
20
  </array>
20
21
  <key>SupportedPlatform</key>
21
- <string>ios</string>
22
+ <string>macos</string>
22
23
  </dict>
23
24
  <dict>
24
25
  <key>BinaryPath</key>
@@ -26,18 +27,15 @@
26
27
  <key>HeadersPath</key>
27
28
  <string>Headers</string>
28
29
  <key>LibraryIdentifier</key>
29
- <string>ios-arm64_x86_64-simulator</string>
30
+ <string>ios-arm64</string>
30
31
  <key>LibraryPath</key>
31
32
  <string>libCBlueIDAccess.a</string>
32
33
  <key>SupportedArchitectures</key>
33
34
  <array>
34
35
  <string>arm64</string>
35
- <string>x86_64</string>
36
36
  </array>
37
37
  <key>SupportedPlatform</key>
38
38
  <string>ios</string>
39
- <key>SupportedPlatformVariant</key>
40
- <string>simulator</string>
41
39
  </dict>
42
40
  <dict>
43
41
  <key>BinaryPath</key>
@@ -45,7 +43,7 @@
45
43
  <key>HeadersPath</key>
46
44
  <string>Headers</string>
47
45
  <key>LibraryIdentifier</key>
48
- <string>macos-arm64_x86_64</string>
46
+ <string>ios-arm64_x86_64-simulator</string>
49
47
  <key>LibraryPath</key>
50
48
  <string>libCBlueIDAccess.a</string>
51
49
  <key>SupportedArchitectures</key>
@@ -54,7 +52,9 @@
54
52
  <string>x86_64</string>
55
53
  </array>
56
54
  <key>SupportedPlatform</key>
57
- <string>macos</string>
55
+ <string>ios</string>
56
+ <key>SupportedPlatformVariant</key>
57
+ <string>simulator</string>
58
58
  </dict>
59
59
  </array>
60
60
  <key>CFBundlePackageType</key>
@@ -2,10 +2,11 @@ import Foundation
2
2
 
3
3
  internal var maxDeviceAgeSeconds = 10.0
4
4
 
5
- private var blueDevices: [BlueDevice] = []
6
5
  private var bluePurgeDevicesTimer: Timer? = nil
7
6
  private var blueDeviceScannersCount = 0
8
7
 
8
+ private let blueDevicesList = BlueDevicesList()
9
+
9
10
  internal func blueSetMaxDeviceAgeSeconds(_ newMaxDeviceAgeSeconds: Double) {
10
11
  maxDeviceAgeSeconds = max(newMaxDeviceAgeSeconds, 1)
11
12
  }
@@ -35,18 +36,11 @@ internal func waitForDeviceAvailability(_ deviceID: String, timeout: Int = 10, m
35
36
  }
36
37
 
37
38
  internal func blueGetDevice(_ deviceID: String) -> BlueDevice? {
38
- for device in blueDevices {
39
- if (device.info.deviceID == deviceID) {
40
- return device
41
- }
42
- }
43
-
44
- return nil
39
+ return blueDevicesList.get(deviceID)
45
40
  }
46
41
 
47
42
  internal func blueAddDevice(_ device: BlueDevice) {
48
- if blueGetDevice(device.info.deviceID) == nil {
49
- blueDevices.append(device)
43
+ if blueDevicesList.add(device) {
50
44
  blueNotifyAddeddDevice(device)
51
45
  }
52
46
  }
@@ -54,32 +48,24 @@ internal func blueAddDevice(_ device: BlueDevice) {
54
48
  internal func bluePurgeOldDevices() {
55
49
  let now = Date()
56
50
 
57
- var newDevices: [BlueDevice] = []
58
-
59
- for device in blueDevices {
51
+ blueDevicesList.remove() { device in
60
52
  let shouldPurge = now.timeIntervalSince(device.lastSeenAt) >= maxDeviceAgeSeconds && !isActiveDevice(device)
61
53
  if (shouldPurge) {
62
54
  blueNotifyRemovedDevice(device)
63
- } else {
64
- newDevices.append(device)
65
55
  }
56
+
57
+ return shouldPurge
66
58
  }
67
-
68
- blueDevices = newDevices
69
59
  }
70
60
 
71
61
  internal func bluePurgeDevicesByType(_ deviceType: BlueDeviceType) {
72
- var newDevices: [BlueDevice] = []
73
-
74
- for device in blueDevices {
75
- if (device.info.deviceType == deviceType) {
62
+ blueDevicesList.remove() { device in
63
+ let shouldPurge = device.info.deviceType == deviceType
64
+ if (shouldPurge) {
76
65
  blueNotifyRemovedDevice(device)
77
- } else {
78
- newDevices.append(device)
79
66
  }
67
+ return shouldPurge
80
68
  }
81
-
82
- blueDevices = newDevices
83
69
  }
84
70
 
85
71
  internal func blueAddDeviceScanner() {
@@ -0,0 +1,89 @@
1
+ import Foundation
2
+
3
+ /**
4
+ * @class BlueDevicesList
5
+ * A thread-safe list to manage BlueDevices.
6
+ * This class provides thread-safe operations for adding, retrieving, and removing BlueDevices.
7
+ * It internally uses a DispatchQueue with concurrent attributes to synchronize access to the list.
8
+ */
9
+ internal class BlueDevicesList {
10
+ private let queue = DispatchQueue(label: "blueid.BlueDevicesList", attributes: .concurrent)
11
+
12
+ private var devices: [BlueDevice] = []
13
+
14
+ /**
15
+ * Adds a BlueDevice to the list.
16
+ *
17
+ * - Parameters:
18
+ * - device: The BlueDevice to add.
19
+ *
20
+ * - Returns: `true` if the device was successfully added, `false` if a device with the same device ID already exists in the list.
21
+ */
22
+ func add(_ device: BlueDevice) -> Bool {
23
+ var added = false
24
+
25
+ queue.sync(flags: .barrier) {
26
+ if (self.getById(device.info.deviceID) == nil) {
27
+ self.devices.append(device)
28
+ added = true
29
+ }
30
+ }
31
+
32
+ return added
33
+ }
34
+
35
+ /**
36
+ * Retrieves a BlueDevice from the list based on its device ID.
37
+ *
38
+ * - Parameters:
39
+ * - deviceID: The ID of the BlueDevice to retrieve.
40
+ *
41
+ * - Returns: The BlueDevice with the specified device ID, or `nil` if no device with that ID exists in the list.
42
+ */
43
+ func get(_ deviceID: String) -> BlueDevice? {
44
+ var device: BlueDevice?
45
+ queue.sync() {
46
+ device = self.getById(deviceID)
47
+ }
48
+
49
+ return device
50
+ }
51
+
52
+ /**
53
+ * Removes BlueDevices from the list based on a filter closure.
54
+ *
55
+ * - Parameters:
56
+ * - where: A closure that returns `true` for devices to be removed, `false` otherwise.
57
+ */
58
+ func remove(where shouldBeRemoved: @escaping (BlueDevice) -> Bool) {
59
+ queue.async(flags: .barrier) {
60
+ var newDevices: [BlueDevice] = []
61
+
62
+ for device in self.devices {
63
+ if (!shouldBeRemoved(device)) {
64
+ newDevices.append(device)
65
+ }
66
+ }
67
+
68
+ self.devices.removeAll()
69
+ self.devices.append(contentsOf: newDevices)
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Returns the number of devices currently stored in the `BlueDevicesList`.
75
+ *
76
+ * - Returns: An integer representing the count of devices in the list.
77
+ */
78
+ func count() -> Int {
79
+ var count = 0
80
+ queue.sync() {
81
+ count = self.devices.count
82
+ }
83
+ return count
84
+ }
85
+
86
+ private func getById(_ deviceID: String) -> BlueDevice? {
87
+ return self.devices.first { $0.info.deviceID == deviceID }
88
+ }
89
+ }
@@ -61,10 +61,8 @@ internal final class BlueSPTransponder {
61
61
 
62
62
  do {
63
63
  _ = try blueClibErrorCheck(blueSPTransponder_Release())
64
- } catch let error as BlueError {
65
- fatalError(error.errorDescription!)
66
64
  } catch {
67
- fatalError("Unknown error while releasing sp transponder")
65
+ blueLogError(error.localizedDescription)
68
66
  }
69
67
  }
70
68
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blueid/access-capacitor",
3
- "version": "1.16.0",
3
+ "version": "1.18.0",
4
4
  "description": "Capacitor JS plugin for the BlueID Access SDK",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",
@@ -9,6 +9,7 @@
9
9
  "files": [
10
10
  "android/src/main/",
11
11
  "android/build.gradle",
12
+ "android/repo/",
12
13
  "dist/",
13
14
  "ios/Plugin/",
14
15
  "ios/CBlueIDAccess.xcframework/",