@capawesome/capacitor-pixlive 0.0.1

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 (80) hide show
  1. package/CapawesomeCapacitorPixlive.podspec +30 -0
  2. package/Package.swift +28 -0
  3. package/README.md +1012 -0
  4. package/android/build.gradle +64 -0
  5. package/android/src/main/AndroidManifest.xml +8 -0
  6. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/Pixlive.java +704 -0
  7. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/PixliveHelper.java +112 -0
  8. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/PixlivePlugin.java +691 -0
  9. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/TouchInterceptorView.java +94 -0
  10. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/CustomException.java +20 -0
  11. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/CustomExceptions.java +29 -0
  12. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/ActivateContextOptions.java +29 -0
  13. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/CreateARViewOptions.java +68 -0
  14. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/EnableContextsWithTagsOptions.java +30 -0
  15. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/GetContextOptions.java +29 -0
  16. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/GetGPSPointsInBoundingBoxOptions.java +68 -0
  17. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/GetNearbyGPSPointsOptions.java +40 -0
  18. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/ResizeARViewOptions.java +68 -0
  19. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/SetARViewTouchEnabledOptions.java +26 -0
  20. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/SetARViewTouchHoleOptions.java +68 -0
  21. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/SetInterfaceLanguageOptions.java +29 -0
  22. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/SetNotificationsSupportOptions.java +26 -0
  23. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/SynchronizeOptions.java +30 -0
  24. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/SynchronizeWithToursAndContextsOptions.java +66 -0
  25. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/options/UpdateTagMappingOptions.java +30 -0
  26. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/results/GetContextResult.java +23 -0
  27. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/results/GetContextsResult.java +24 -0
  28. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/results/GetGPSPointsInBoundingBoxResult.java +24 -0
  29. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/results/GetNearbyBeaconsResult.java +24 -0
  30. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/results/GetNearbyGPSPointsResult.java +24 -0
  31. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/classes/results/GetVersionResult.java +24 -0
  32. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/interfaces/Callback.java +5 -0
  33. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/interfaces/EmptyCallback.java +5 -0
  34. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/interfaces/NonEmptyCallback.java +7 -0
  35. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/interfaces/NonEmptyResultCallback.java +7 -0
  36. package/android/src/main/java/io/capawesome/capacitorjs/plugins/pixlive/interfaces/Result.java +7 -0
  37. package/android/src/main/res/.gitkeep +0 -0
  38. package/dist/docs.json +2107 -0
  39. package/dist/esm/definitions.d.ts +825 -0
  40. package/dist/esm/definitions.js +2 -0
  41. package/dist/esm/definitions.js.map +1 -0
  42. package/dist/esm/index.d.ts +4 -0
  43. package/dist/esm/index.js +7 -0
  44. package/dist/esm/index.js.map +1 -0
  45. package/dist/esm/web.d.ts +31 -0
  46. package/dist/esm/web.js +85 -0
  47. package/dist/esm/web.js.map +1 -0
  48. package/dist/plugin.cjs.js +99 -0
  49. package/dist/plugin.cjs.js.map +1 -0
  50. package/dist/plugin.js +102 -0
  51. package/dist/plugin.js.map +1 -0
  52. package/ios/Plugin/CapacitorARViewController.swift +17 -0
  53. package/ios/Plugin/Classes/Options/ActivateContextOptions.swift +16 -0
  54. package/ios/Plugin/Classes/Options/CreateARViewOptions.swift +47 -0
  55. package/ios/Plugin/Classes/Options/EnableContextsWithTagsOptions.swift +16 -0
  56. package/ios/Plugin/Classes/Options/GetContextOptions.swift +16 -0
  57. package/ios/Plugin/Classes/Options/GetGPSPointsInBoundingBoxOptions.swift +43 -0
  58. package/ios/Plugin/Classes/Options/GetNearbyGPSPointsOptions.swift +25 -0
  59. package/ios/Plugin/Classes/Options/ResizeARViewOptions.swift +47 -0
  60. package/ios/Plugin/Classes/Options/SetARViewTouchEnabledOptions.swift +16 -0
  61. package/ios/Plugin/Classes/Options/SetARViewTouchHoleOptions.swift +43 -0
  62. package/ios/Plugin/Classes/Options/SetInterfaceLanguageOptions.swift +16 -0
  63. package/ios/Plugin/Classes/Options/SetNotificationsSupportOptions.swift +16 -0
  64. package/ios/Plugin/Classes/Options/SynchronizeOptions.swift +16 -0
  65. package/ios/Plugin/Classes/Options/SynchronizeWithToursAndContextsOptions.swift +34 -0
  66. package/ios/Plugin/Classes/Options/UpdateTagMappingOptions.swift +16 -0
  67. package/ios/Plugin/Classes/Results/GetContextResult.swift +16 -0
  68. package/ios/Plugin/Classes/Results/GetContextsResult.swift +16 -0
  69. package/ios/Plugin/Classes/Results/GetGPSPointsInBoundingBoxResult.swift +16 -0
  70. package/ios/Plugin/Classes/Results/GetNearbyBeaconsResult.swift +16 -0
  71. package/ios/Plugin/Classes/Results/GetNearbyGPSPointsResult.swift +16 -0
  72. package/ios/Plugin/Classes/Results/GetVersionResult.swift +16 -0
  73. package/ios/Plugin/Enums/CustomError.swift +86 -0
  74. package/ios/Plugin/Info.plist +24 -0
  75. package/ios/Plugin/Pixlive.swift +495 -0
  76. package/ios/Plugin/PixliveHelper.swift +91 -0
  77. package/ios/Plugin/PixlivePlugin.swift +503 -0
  78. package/ios/Plugin/Protocols/Result.swift +6 -0
  79. package/ios/Plugin/TouchForwarderView.swift +24 -0
  80. package/package.json +93 -0
@@ -0,0 +1,691 @@
1
+ package io.capawesome.capacitorjs.plugins.pixlive;
2
+
3
+ import android.Manifest;
4
+ import android.os.Build;
5
+ import androidx.annotation.NonNull;
6
+ import androidx.annotation.Nullable;
7
+ import com.getcapacitor.JSArray;
8
+ import com.getcapacitor.JSObject;
9
+ import com.getcapacitor.Logger;
10
+ import com.getcapacitor.PermissionState;
11
+ import com.getcapacitor.Plugin;
12
+ import com.getcapacitor.PluginCall;
13
+ import com.getcapacitor.PluginMethod;
14
+ import com.getcapacitor.annotation.CapacitorPlugin;
15
+ import com.getcapacitor.annotation.Permission;
16
+ import com.getcapacitor.annotation.PermissionCallback;
17
+ import io.capawesome.capacitorjs.plugins.pixlive.classes.options.*;
18
+ import io.capawesome.capacitorjs.plugins.pixlive.classes.results.*;
19
+ import io.capawesome.capacitorjs.plugins.pixlive.interfaces.*;
20
+ import java.util.ArrayList;
21
+ import java.util.List;
22
+
23
+ @CapacitorPlugin(
24
+ name = "Pixlive",
25
+ permissions = {
26
+ @Permission(strings = { Manifest.permission.BLUETOOTH }, alias = PixlivePlugin.PERMISSION_BLUETOOTH),
27
+ @Permission(strings = { Manifest.permission.BLUETOOTH_CONNECT }, alias = PixlivePlugin.PERMISSION_BLUETOOTH_CONNECT),
28
+ @Permission(strings = { Manifest.permission.BLUETOOTH_SCAN }, alias = PixlivePlugin.PERMISSION_BLUETOOTH_SCAN),
29
+ @Permission(strings = { Manifest.permission.CAMERA }, alias = PixlivePlugin.PERMISSION_CAMERA),
30
+ @Permission(strings = { Manifest.permission.ACCESS_FINE_LOCATION }, alias = PixlivePlugin.PERMISSION_LOCATION),
31
+ @Permission(strings = { Manifest.permission.POST_NOTIFICATIONS }, alias = PixlivePlugin.PERMISSION_NOTIFICATIONS)
32
+ }
33
+ )
34
+ public class PixlivePlugin extends Plugin {
35
+
36
+ public static final String TAG = "Pixlive";
37
+ public static final String ERROR_UNKNOWN_ERROR = "An unknown error occurred.";
38
+
39
+ static final String PERMISSION_BLUETOOTH = "bluetooth";
40
+ static final String PERMISSION_BLUETOOTH_CONNECT = "bluetoothConnect";
41
+ static final String PERMISSION_BLUETOOTH_SCAN = "bluetoothScan";
42
+ static final String PERMISSION_CAMERA = "camera";
43
+ static final String PERMISSION_LOCATION = "location";
44
+ static final String PERMISSION_NOTIFICATIONS = "notifications";
45
+
46
+ private static final String CALLBACK_PERMISSION = "handlePermissionCallback";
47
+
48
+ private Pixlive implementation;
49
+
50
+ @Override
51
+ public void load() {
52
+ implementation = new Pixlive(this);
53
+ }
54
+
55
+ @Override
56
+ protected void handleOnPause() {
57
+ super.handleOnPause();
58
+ if (implementation != null) {
59
+ implementation.handleOnPause();
60
+ }
61
+ }
62
+
63
+ @Override
64
+ protected void handleOnResume() {
65
+ super.handleOnResume();
66
+ if (implementation != null) {
67
+ implementation.handleOnResume();
68
+ }
69
+ }
70
+
71
+ @Override
72
+ protected void handleOnDestroy() {
73
+ if (implementation != null) {
74
+ implementation.handleOnDestroy();
75
+ }
76
+ super.handleOnDestroy();
77
+ }
78
+
79
+ @PluginMethod
80
+ public void initialize(PluginCall call) {
81
+ try {
82
+ EmptyCallback callback = new EmptyCallback() {
83
+ @Override
84
+ public void success() {
85
+ resolveCall(call);
86
+ }
87
+
88
+ @Override
89
+ public void error(@NonNull Exception exception) {
90
+ rejectCall(call, exception);
91
+ }
92
+ };
93
+
94
+ assert implementation != null;
95
+ implementation.initialize(callback);
96
+ } catch (Exception exception) {
97
+ rejectCall(call, exception);
98
+ }
99
+ }
100
+
101
+ @PluginMethod
102
+ @Override
103
+ public void checkPermissions(PluginCall call) {
104
+ super.checkPermissions(call);
105
+ }
106
+
107
+ @PluginMethod
108
+ @Override
109
+ public void requestPermissions(PluginCall call) {
110
+ try {
111
+ List<String> aliases = getPermissionAliasesFromCall(call);
112
+ String[] aliasArray = aliases.toArray(new String[0]);
113
+ requestPermissionForAliases(aliasArray, call, CALLBACK_PERMISSION);
114
+ } catch (Exception exception) {
115
+ rejectCall(call, exception);
116
+ }
117
+ }
118
+
119
+ @PermissionCallback
120
+ private void handlePermissionCallback(PluginCall call) {
121
+ checkPermissions(call);
122
+ }
123
+
124
+ @PluginMethod
125
+ public void synchronize(PluginCall call) {
126
+ try {
127
+ SynchronizeOptions options = new SynchronizeOptions(call);
128
+ EmptyCallback callback = new EmptyCallback() {
129
+ @Override
130
+ public void success() {
131
+ resolveCall(call);
132
+ }
133
+
134
+ @Override
135
+ public void error(@NonNull Exception exception) {
136
+ rejectCall(call, exception);
137
+ }
138
+ };
139
+
140
+ assert implementation != null;
141
+ implementation.synchronize(options, callback);
142
+ } catch (Exception exception) {
143
+ rejectCall(call, exception);
144
+ }
145
+ }
146
+
147
+ @PluginMethod
148
+ public void synchronizeWithToursAndContexts(PluginCall call) {
149
+ try {
150
+ SynchronizeWithToursAndContextsOptions options = new SynchronizeWithToursAndContextsOptions(call);
151
+ EmptyCallback callback = new EmptyCallback() {
152
+ @Override
153
+ public void success() {
154
+ resolveCall(call);
155
+ }
156
+
157
+ @Override
158
+ public void error(@NonNull Exception exception) {
159
+ rejectCall(call, exception);
160
+ }
161
+ };
162
+
163
+ assert implementation != null;
164
+ implementation.synchronizeWithToursAndContexts(options, callback);
165
+ } catch (Exception exception) {
166
+ rejectCall(call, exception);
167
+ }
168
+ }
169
+
170
+ @PluginMethod
171
+ public void updateTagMapping(PluginCall call) {
172
+ try {
173
+ UpdateTagMappingOptions options = new UpdateTagMappingOptions(call);
174
+ EmptyCallback callback = new EmptyCallback() {
175
+ @Override
176
+ public void success() {
177
+ resolveCall(call);
178
+ }
179
+
180
+ @Override
181
+ public void error(@NonNull Exception exception) {
182
+ rejectCall(call, exception);
183
+ }
184
+ };
185
+
186
+ assert implementation != null;
187
+ implementation.updateTagMapping(options, callback);
188
+ } catch (Exception exception) {
189
+ rejectCall(call, exception);
190
+ }
191
+ }
192
+
193
+ @PluginMethod
194
+ public void enableContextsWithTags(PluginCall call) {
195
+ try {
196
+ EnableContextsWithTagsOptions options = new EnableContextsWithTagsOptions(call);
197
+ EmptyCallback callback = new EmptyCallback() {
198
+ @Override
199
+ public void success() {
200
+ resolveCall(call);
201
+ }
202
+
203
+ @Override
204
+ public void error(@NonNull Exception exception) {
205
+ rejectCall(call, exception);
206
+ }
207
+ };
208
+
209
+ assert implementation != null;
210
+ implementation.enableContextsWithTags(options, callback);
211
+ } catch (Exception exception) {
212
+ rejectCall(call, exception);
213
+ }
214
+ }
215
+
216
+ @PluginMethod
217
+ public void getContexts(PluginCall call) {
218
+ try {
219
+ NonEmptyResultCallback<GetContextsResult> callback = new NonEmptyResultCallback<>() {
220
+ @Override
221
+ public void success(@NonNull GetContextsResult result) {
222
+ resolveCall(call, result);
223
+ }
224
+
225
+ @Override
226
+ public void error(@NonNull Exception exception) {
227
+ rejectCall(call, exception);
228
+ }
229
+ };
230
+
231
+ assert implementation != null;
232
+ implementation.getContexts(callback);
233
+ } catch (Exception exception) {
234
+ rejectCall(call, exception);
235
+ }
236
+ }
237
+
238
+ @PluginMethod
239
+ public void getContext(PluginCall call) {
240
+ try {
241
+ GetContextOptions options = new GetContextOptions(call);
242
+ NonEmptyResultCallback<GetContextResult> callback = new NonEmptyResultCallback<>() {
243
+ @Override
244
+ public void success(@NonNull GetContextResult result) {
245
+ resolveCall(call, result);
246
+ }
247
+
248
+ @Override
249
+ public void error(@NonNull Exception exception) {
250
+ rejectCall(call, exception);
251
+ }
252
+ };
253
+
254
+ assert implementation != null;
255
+ implementation.getContext(options, callback);
256
+ } catch (Exception exception) {
257
+ rejectCall(call, exception);
258
+ }
259
+ }
260
+
261
+ @PluginMethod
262
+ public void activateContext(PluginCall call) {
263
+ try {
264
+ ActivateContextOptions options = new ActivateContextOptions(call);
265
+ EmptyCallback callback = new EmptyCallback() {
266
+ @Override
267
+ public void success() {
268
+ resolveCall(call);
269
+ }
270
+
271
+ @Override
272
+ public void error(@NonNull Exception exception) {
273
+ rejectCall(call, exception);
274
+ }
275
+ };
276
+
277
+ assert implementation != null;
278
+ implementation.activateContext(options, callback);
279
+ } catch (Exception exception) {
280
+ rejectCall(call, exception);
281
+ }
282
+ }
283
+
284
+ @PluginMethod
285
+ public void stopContext(PluginCall call) {
286
+ try {
287
+ EmptyCallback callback = new EmptyCallback() {
288
+ @Override
289
+ public void success() {
290
+ resolveCall(call);
291
+ }
292
+
293
+ @Override
294
+ public void error(@NonNull Exception exception) {
295
+ rejectCall(call, exception);
296
+ }
297
+ };
298
+
299
+ assert implementation != null;
300
+ implementation.stopContext(callback);
301
+ } catch (Exception exception) {
302
+ rejectCall(call, exception);
303
+ }
304
+ }
305
+
306
+ @PluginMethod
307
+ public void getNearbyGPSPoints(PluginCall call) {
308
+ try {
309
+ GetNearbyGPSPointsOptions options = new GetNearbyGPSPointsOptions(call);
310
+ NonEmptyResultCallback<GetNearbyGPSPointsResult> callback = new NonEmptyResultCallback<>() {
311
+ @Override
312
+ public void success(@NonNull GetNearbyGPSPointsResult result) {
313
+ resolveCall(call, result);
314
+ }
315
+
316
+ @Override
317
+ public void error(@NonNull Exception exception) {
318
+ rejectCall(call, exception);
319
+ }
320
+ };
321
+
322
+ assert implementation != null;
323
+ implementation.getNearbyGPSPoints(options, callback);
324
+ } catch (Exception exception) {
325
+ rejectCall(call, exception);
326
+ }
327
+ }
328
+
329
+ @PluginMethod
330
+ public void getGPSPointsInBoundingBox(PluginCall call) {
331
+ try {
332
+ GetGPSPointsInBoundingBoxOptions options = new GetGPSPointsInBoundingBoxOptions(call);
333
+ NonEmptyResultCallback<GetGPSPointsInBoundingBoxResult> callback = new NonEmptyResultCallback<>() {
334
+ @Override
335
+ public void success(@NonNull GetGPSPointsInBoundingBoxResult result) {
336
+ resolveCall(call, result);
337
+ }
338
+
339
+ @Override
340
+ public void error(@NonNull Exception exception) {
341
+ rejectCall(call, exception);
342
+ }
343
+ };
344
+
345
+ assert implementation != null;
346
+ implementation.getGPSPointsInBoundingBox(options, callback);
347
+ } catch (Exception exception) {
348
+ rejectCall(call, exception);
349
+ }
350
+ }
351
+
352
+ @PluginMethod
353
+ public void getNearbyBeacons(PluginCall call) {
354
+ try {
355
+ NonEmptyResultCallback<GetNearbyBeaconsResult> callback = new NonEmptyResultCallback<>() {
356
+ @Override
357
+ public void success(@NonNull GetNearbyBeaconsResult result) {
358
+ resolveCall(call, result);
359
+ }
360
+
361
+ @Override
362
+ public void error(@NonNull Exception exception) {
363
+ rejectCall(call, exception);
364
+ }
365
+ };
366
+
367
+ assert implementation != null;
368
+ implementation.getNearbyBeacons(callback);
369
+ } catch (Exception exception) {
370
+ rejectCall(call, exception);
371
+ }
372
+ }
373
+
374
+ @PluginMethod
375
+ public void startNearbyGPSDetection(PluginCall call) {
376
+ try {
377
+ EmptyCallback callback = new EmptyCallback() {
378
+ @Override
379
+ public void success() {
380
+ resolveCall(call);
381
+ }
382
+
383
+ @Override
384
+ public void error(@NonNull Exception exception) {
385
+ rejectCall(call, exception);
386
+ }
387
+ };
388
+
389
+ assert implementation != null;
390
+ implementation.startNearbyGPSDetection(callback);
391
+ } catch (Exception exception) {
392
+ rejectCall(call, exception);
393
+ }
394
+ }
395
+
396
+ @PluginMethod
397
+ public void stopNearbyGPSDetection(PluginCall call) {
398
+ try {
399
+ EmptyCallback callback = new EmptyCallback() {
400
+ @Override
401
+ public void success() {
402
+ resolveCall(call);
403
+ }
404
+
405
+ @Override
406
+ public void error(@NonNull Exception exception) {
407
+ rejectCall(call, exception);
408
+ }
409
+ };
410
+
411
+ assert implementation != null;
412
+ implementation.stopNearbyGPSDetection(callback);
413
+ } catch (Exception exception) {
414
+ rejectCall(call, exception);
415
+ }
416
+ }
417
+
418
+ @PluginMethod
419
+ public void startGPSNotifications(PluginCall call) {
420
+ try {
421
+ EmptyCallback callback = new EmptyCallback() {
422
+ @Override
423
+ public void success() {
424
+ resolveCall(call);
425
+ }
426
+
427
+ @Override
428
+ public void error(@NonNull Exception exception) {
429
+ rejectCall(call, exception);
430
+ }
431
+ };
432
+
433
+ assert implementation != null;
434
+ implementation.startGPSNotifications(callback);
435
+ } catch (Exception exception) {
436
+ rejectCall(call, exception);
437
+ }
438
+ }
439
+
440
+ @PluginMethod
441
+ public void stopGPSNotifications(PluginCall call) {
442
+ try {
443
+ EmptyCallback callback = new EmptyCallback() {
444
+ @Override
445
+ public void success() {
446
+ resolveCall(call);
447
+ }
448
+
449
+ @Override
450
+ public void error(@NonNull Exception exception) {
451
+ rejectCall(call, exception);
452
+ }
453
+ };
454
+
455
+ assert implementation != null;
456
+ implementation.stopGPSNotifications(callback);
457
+ } catch (Exception exception) {
458
+ rejectCall(call, exception);
459
+ }
460
+ }
461
+
462
+ @PluginMethod
463
+ public void setNotificationsSupport(PluginCall call) {
464
+ try {
465
+ SetNotificationsSupportOptions options = new SetNotificationsSupportOptions(call);
466
+ EmptyCallback callback = new EmptyCallback() {
467
+ @Override
468
+ public void success() {
469
+ resolveCall(call);
470
+ }
471
+
472
+ @Override
473
+ public void error(@NonNull Exception exception) {
474
+ rejectCall(call, exception);
475
+ }
476
+ };
477
+
478
+ assert implementation != null;
479
+ implementation.setNotificationsSupport(options, callback);
480
+ } catch (Exception exception) {
481
+ rejectCall(call, exception);
482
+ }
483
+ }
484
+
485
+ @PluginMethod
486
+ public void setInterfaceLanguage(PluginCall call) {
487
+ try {
488
+ SetInterfaceLanguageOptions options = new SetInterfaceLanguageOptions(call);
489
+ EmptyCallback callback = new EmptyCallback() {
490
+ @Override
491
+ public void success() {
492
+ resolveCall(call);
493
+ }
494
+
495
+ @Override
496
+ public void error(@NonNull Exception exception) {
497
+ rejectCall(call, exception);
498
+ }
499
+ };
500
+
501
+ assert implementation != null;
502
+ implementation.setInterfaceLanguage(options, callback);
503
+ } catch (Exception exception) {
504
+ rejectCall(call, exception);
505
+ }
506
+ }
507
+
508
+ @PluginMethod
509
+ public void createARView(PluginCall call) {
510
+ try {
511
+ CreateARViewOptions options = new CreateARViewOptions(call);
512
+ EmptyCallback callback = new EmptyCallback() {
513
+ @Override
514
+ public void success() {
515
+ resolveCall(call);
516
+ }
517
+
518
+ @Override
519
+ public void error(@NonNull Exception exception) {
520
+ rejectCall(call, exception);
521
+ }
522
+ };
523
+
524
+ assert implementation != null;
525
+ implementation.createARView(options, callback);
526
+ } catch (Exception exception) {
527
+ rejectCall(call, exception);
528
+ }
529
+ }
530
+
531
+ @PluginMethod
532
+ public void destroyARView(PluginCall call) {
533
+ try {
534
+ EmptyCallback callback = new EmptyCallback() {
535
+ @Override
536
+ public void success() {
537
+ resolveCall(call);
538
+ }
539
+
540
+ @Override
541
+ public void error(@NonNull Exception exception) {
542
+ rejectCall(call, exception);
543
+ }
544
+ };
545
+
546
+ assert implementation != null;
547
+ implementation.destroyARView(callback);
548
+ } catch (Exception exception) {
549
+ rejectCall(call, exception);
550
+ }
551
+ }
552
+
553
+ @PluginMethod
554
+ public void resizeARView(PluginCall call) {
555
+ try {
556
+ ResizeARViewOptions options = new ResizeARViewOptions(call);
557
+ EmptyCallback callback = new EmptyCallback() {
558
+ @Override
559
+ public void success() {
560
+ resolveCall(call);
561
+ }
562
+
563
+ @Override
564
+ public void error(@NonNull Exception exception) {
565
+ rejectCall(call, exception);
566
+ }
567
+ };
568
+
569
+ assert implementation != null;
570
+ implementation.resizeARView(options, callback);
571
+ } catch (Exception exception) {
572
+ rejectCall(call, exception);
573
+ }
574
+ }
575
+
576
+ @PluginMethod
577
+ public void setARViewTouchEnabled(PluginCall call) {
578
+ try {
579
+ SetARViewTouchEnabledOptions options = new SetARViewTouchEnabledOptions(call);
580
+ EmptyCallback callback = new EmptyCallback() {
581
+ @Override
582
+ public void success() {
583
+ resolveCall(call);
584
+ }
585
+
586
+ @Override
587
+ public void error(@NonNull Exception exception) {
588
+ rejectCall(call, exception);
589
+ }
590
+ };
591
+
592
+ assert implementation != null;
593
+ implementation.setARViewTouchEnabled(options, callback);
594
+ } catch (Exception exception) {
595
+ rejectCall(call, exception);
596
+ }
597
+ }
598
+
599
+ @PluginMethod
600
+ public void setARViewTouchHole(PluginCall call) {
601
+ try {
602
+ SetARViewTouchHoleOptions options = new SetARViewTouchHoleOptions(call);
603
+ EmptyCallback callback = new EmptyCallback() {
604
+ @Override
605
+ public void success() {
606
+ resolveCall(call);
607
+ }
608
+
609
+ @Override
610
+ public void error(@NonNull Exception exception) {
611
+ rejectCall(call, exception);
612
+ }
613
+ };
614
+
615
+ assert implementation != null;
616
+ implementation.setARViewTouchHole(options, callback);
617
+ } catch (Exception exception) {
618
+ rejectCall(call, exception);
619
+ }
620
+ }
621
+
622
+ @PluginMethod
623
+ public void getVersion(PluginCall call) {
624
+ try {
625
+ NonEmptyResultCallback<GetVersionResult> callback = new NonEmptyResultCallback<>() {
626
+ @Override
627
+ public void success(@NonNull GetVersionResult result) {
628
+ resolveCall(call, result);
629
+ }
630
+
631
+ @Override
632
+ public void error(@NonNull Exception exception) {
633
+ rejectCall(call, exception);
634
+ }
635
+ };
636
+
637
+ assert implementation != null;
638
+ implementation.getVersion(callback);
639
+ } catch (Exception exception) {
640
+ rejectCall(call, exception);
641
+ }
642
+ }
643
+
644
+ public void notifyListenersFromImplementation(@NonNull String eventName, @NonNull JSObject data) {
645
+ notifyListeners(eventName, data);
646
+ }
647
+
648
+ @NonNull
649
+ private List<String> getPermissionAliasesFromCall(@NonNull PluginCall call) throws Exception {
650
+ JSArray permissionsArray = call.getArray("permissions");
651
+ List<String> aliases = new ArrayList<>();
652
+ if (permissionsArray != null) {
653
+ List<String> permissionsList = permissionsArray.toList();
654
+ for (String permission : permissionsList) {
655
+ aliases.add(permission);
656
+ }
657
+ } else {
658
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
659
+ aliases.add(PERMISSION_BLUETOOTH_CONNECT);
660
+ aliases.add(PERMISSION_BLUETOOTH_SCAN);
661
+ } else {
662
+ aliases.add(PERMISSION_BLUETOOTH);
663
+ }
664
+ aliases.add(PERMISSION_CAMERA);
665
+ aliases.add(PERMISSION_LOCATION);
666
+ aliases.add(PERMISSION_NOTIFICATIONS);
667
+ }
668
+ return aliases;
669
+ }
670
+
671
+ private void rejectCall(@NonNull PluginCall call, @NonNull Exception exception) {
672
+ String message = exception.getMessage();
673
+ if (message == null) {
674
+ message = ERROR_UNKNOWN_ERROR;
675
+ }
676
+ Logger.error(TAG, message, exception);
677
+ call.reject(message);
678
+ }
679
+
680
+ private void resolveCall(@NonNull PluginCall call) {
681
+ call.resolve();
682
+ }
683
+
684
+ private void resolveCall(@NonNull PluginCall call, @Nullable Result result) {
685
+ if (result == null) {
686
+ call.resolve();
687
+ } else {
688
+ call.resolve(result.toJSObject());
689
+ }
690
+ }
691
+ }