barkoder-nativescript 1.6.5 → 1.6.7
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.
- package/barkoder-nativescript.android.ts +307 -3
- package/barkoder-nativescript.common.ts +6 -2
- package/barkoder-nativescript.ios.ts +304 -15
- package/package.json +1 -1
- package/platforms/android/barkoder.aar +0 -0
- package/platforms/ios/Barkoder.xcframework/Info.plist +5 -5
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/Barkoder +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/Headers/iBarkoder.h +25 -3
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/Info.plist +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/default.metallib +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_384x256_int8.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_384x256_int8.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/{int8_384x256_small2.mlmodelc → n2_384x256_int8.mlmodelc}/metadata.json +18 -29
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/{int8_384x256_small2.mlmodelc → n2_384x256_int8.mlmodelc}/model.espresso.net +1960 -2558
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/{int8_384x256_small2.mlmodelc → n2_384x256_int8.mlmodelc}/model.espresso.shape +775 -950
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_384x256_int8.mlmodelc/model.espresso.weights +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc/metadata.json +77 -0
- package/platforms/ios/Barkoder.xcframework/{ios-arm64_x86_64-simulator/Barkoder.framework/int8_384x256_small2.mlmodelc → ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc}/model.espresso.net +1960 -2558
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc/model.espresso.shape +1740 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc/model.espresso.weights +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/Barkoder +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/Headers/iBarkoder.h +25 -3
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/Info.plist +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/_CodeSignature/CodeResources +98 -65
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/default.metallib +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_384x256_int8.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_384x256_int8.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/{int8_384x256_small2.mlmodelc → n2_384x256_int8.mlmodelc}/metadata.json +18 -29
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_384x256_int8.mlmodelc/model/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_384x256_int8.mlmodelc/model.espresso.net +5331 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/{int8_384x256_small2.mlmodelc → n2_384x256_int8.mlmodelc}/model.espresso.shape +775 -950
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_384x256_int8.mlmodelc/model.espresso.weights +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_384x256_int8.mlmodelc/neural_network_optionals/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/metadata.json +77 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/model/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/model.espresso.net +5331 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/model.espresso.shape +1740 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/model.espresso.weights +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/n2_512x384_int8.mlmodelc/neural_network_optionals/coremldata.bin +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/BarkoderSDK +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/Headers/BarkoderSDK-Swift.h +105 -1
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/Info.plist +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios.abi.json +1847 -646
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +49 -2
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios.swiftinterface +49 -2
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64/BarkoderSDK.framework/templates.json +19 -16
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/BarkoderSDK +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Headers/BarkoderSDK-Swift.h +210 -2
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Info.plist +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +1847 -646
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +49 -2
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +49 -2
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +1847 -646
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +49 -2
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/Modules/BarkoderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +49 -2
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/_CodeSignature/CodeResources +25 -25
- package/platforms/ios/BarkoderSDK.xcframework/ios-arm64_x86_64-simulator/BarkoderSDK.framework/templates.json +19 -16
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/float16_512x384.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/float16_512x384.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/float16_512x384.mlmodelc/metadata.json +0 -88
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/float16_512x384.mlmodelc/model.mil +0 -753
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/float16_512x384.mlmodelc/weights/weight.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/int8_384x256_small2.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/int8_384x256_small2.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/int8_384x256_small2.mlmodelc/model.espresso.weights +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/float16_512x384.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/float16_512x384.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/float16_512x384.mlmodelc/metadata.json +0 -88
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/float16_512x384.mlmodelc/model.mil +0 -753
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/float16_512x384.mlmodelc/weights/weight.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/int8_384x256_small2.mlmodelc/analytics/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/int8_384x256_small2.mlmodelc/coremldata.bin +0 -0
- package/platforms/ios/Barkoder.xcframework/ios-arm64_x86_64-simulator/Barkoder.framework/int8_384x256_small2.mlmodelc/model.espresso.weights +0 -0
- /package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/{int8_384x256_small2.mlmodelc → n2_384x256_int8.mlmodelc}/model/coremldata.bin +0 -0
- /package/platforms/ios/Barkoder.xcframework/ios-arm64/Barkoder.framework/{int8_384x256_small2.mlmodelc → n2_384x256_int8.mlmodelc}/neural_network_optionals/coremldata.bin +0 -0
- /package/platforms/ios/Barkoder.xcframework/{ios-arm64_x86_64-simulator/Barkoder.framework/int8_384x256_small2.mlmodelc → ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc}/model/coremldata.bin +0 -0
- /package/platforms/ios/Barkoder.xcframework/{ios-arm64_x86_64-simulator/Barkoder.framework/int8_384x256_small2.mlmodelc → ios-arm64/Barkoder.framework/n2_512x384_int8.mlmodelc}/neural_network_optionals/coremldata.bin +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BarkoderConstants } from "./barkoder-nativescript.common";
|
|
2
2
|
import * as application from "@nativescript/core/application";
|
|
3
|
-
import { View } from "@nativescript/core";
|
|
3
|
+
import { Color, View } from "@nativescript/core";
|
|
4
4
|
import { BarkoderView } from "./barkoder-nativescript.common";
|
|
5
5
|
import { ImageSource } from '@nativescript/core';
|
|
6
6
|
|
|
@@ -52,9 +52,13 @@ export class BarkoderViewAndroid extends View {
|
|
|
52
52
|
) => {
|
|
53
53
|
// Convert native array to JS array first
|
|
54
54
|
const jsThumbnails = [];
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
|
|
56
|
+
if(thumbnails != null) {
|
|
57
|
+
for (let i = 0; i < thumbnails.length; i++) {
|
|
58
|
+
jsThumbnails.push(thumbnails[i]);
|
|
59
|
+
}
|
|
57
60
|
}
|
|
61
|
+
|
|
58
62
|
|
|
59
63
|
const convertedThumbnails = jsThumbnails.map((bitmap) => {
|
|
60
64
|
const imgSrc = new ImageSource();
|
|
@@ -120,6 +124,10 @@ export class BarkoderViewAndroid extends View {
|
|
|
120
124
|
this.bkdView.stopScanning();
|
|
121
125
|
}
|
|
122
126
|
|
|
127
|
+
captureImage(): void {
|
|
128
|
+
this.bkdView.captureImage();
|
|
129
|
+
}
|
|
130
|
+
|
|
123
131
|
pauseScanning(): void {
|
|
124
132
|
this.bkdView.pauseScanning();
|
|
125
133
|
}
|
|
@@ -146,6 +154,15 @@ export class BarkoderViewAndroid extends View {
|
|
|
146
154
|
this.bkdView.setFlashEnabled(enabled);
|
|
147
155
|
}
|
|
148
156
|
|
|
157
|
+
setARContinueScanningOnLimit(enabled: boolean): void {
|
|
158
|
+
this.bkdView.config.arConfig.setContinueScanningOnLimit(enabled);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
setAREmitResultsAtSessionEndOnly(enabled: boolean): void {
|
|
162
|
+
this.bkdView.config.arConfig.emitResultsAtSessionEndOnly = enabled;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
149
166
|
/**
|
|
150
167
|
* Retrieves the maximum available zoom factor for the device's camera
|
|
151
168
|
*/
|
|
@@ -263,6 +280,252 @@ export class BarkoderViewAndroid extends View {
|
|
|
263
280
|
this.bkdView.config.setRegionOfInterestVisible(enabled);
|
|
264
281
|
}
|
|
265
282
|
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Configures the flash button with custom settings, supporting NativeScript types.
|
|
289
|
+
*/
|
|
290
|
+
configureFlashButton(
|
|
291
|
+
visible: boolean,
|
|
292
|
+
position: number[],
|
|
293
|
+
iconSize: number,
|
|
294
|
+
tintColor: string | Color | null,
|
|
295
|
+
backgroundColor: string | Color | null,
|
|
296
|
+
cornerRadius: number,
|
|
297
|
+
padding: number,
|
|
298
|
+
useCustomIcon: boolean,
|
|
299
|
+
flashOnIconBase64: string,
|
|
300
|
+
flashOffIconBase64: string
|
|
301
|
+
): void {
|
|
302
|
+
|
|
303
|
+
let nativeTintColor: java.lang.Integer = null;
|
|
304
|
+
if (tintColor != null) {
|
|
305
|
+
const color = (tintColor instanceof Color)
|
|
306
|
+
? tintColor
|
|
307
|
+
: new Color(tintColor as string);
|
|
308
|
+
nativeTintColor = java.lang.Integer.valueOf(color.android);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
let nativeBackgroundColor: java.lang.Integer = null;
|
|
312
|
+
if (backgroundColor != null) {
|
|
313
|
+
const color = (backgroundColor instanceof Color)
|
|
314
|
+
? backgroundColor
|
|
315
|
+
: new Color(backgroundColor as string);
|
|
316
|
+
nativeBackgroundColor = java.lang.Integer.valueOf(color.android);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
const nativePosition = java.lang.reflect.Array.newInstance(java.lang.Float.TYPE, 2);
|
|
320
|
+
nativePosition[0] = position[0];
|
|
321
|
+
nativePosition[1] = position[1];
|
|
322
|
+
|
|
323
|
+
let nativeFlashOnBitmap = null;
|
|
324
|
+
let nativeFlashOffBitmap = null;
|
|
325
|
+
|
|
326
|
+
if (useCustomIcon) {
|
|
327
|
+
nativeFlashOnBitmap = this.decodeBase64ToBitmap(flashOnIconBase64);
|
|
328
|
+
nativeFlashOffBitmap = this.decodeBase64ToBitmap(flashOffIconBase64);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
this.bkdView.configureFlashButton(
|
|
332
|
+
visible,
|
|
333
|
+
nativePosition,
|
|
334
|
+
iconSize,
|
|
335
|
+
nativeTintColor,
|
|
336
|
+
nativeBackgroundColor,
|
|
337
|
+
cornerRadius,
|
|
338
|
+
padding,
|
|
339
|
+
useCustomIcon,
|
|
340
|
+
nativeFlashOnBitmap,
|
|
341
|
+
nativeFlashOffBitmap
|
|
342
|
+
);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
private decodeBase64ToBitmap(base64String: string): android.graphics.Bitmap | null {
|
|
347
|
+
if (!base64String) {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
try {
|
|
351
|
+
// 1. Decode the Base64 string into a byte array
|
|
352
|
+
const decodedBytes = android.util.Base64.decode(base64String, android.util.Base64.DEFAULT);
|
|
353
|
+
|
|
354
|
+
// 2. Use BitmapFactory to create a Bitmap from the byte array
|
|
355
|
+
const bitmap = android.graphics.BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
|
|
356
|
+
|
|
357
|
+
return bitmap;
|
|
358
|
+
} catch (e) {
|
|
359
|
+
console.error("Error decoding Base64 string to Bitmap:", e);
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
configureCloseButton(
|
|
365
|
+
visible: boolean,
|
|
366
|
+
position: number[],
|
|
367
|
+
iconSize: number,
|
|
368
|
+
tintColor: string | Color | null,
|
|
369
|
+
backgroundColor: string | Color | null,
|
|
370
|
+
cornerRadius: number,
|
|
371
|
+
padding: number,
|
|
372
|
+
useCustomIcon: boolean,
|
|
373
|
+
customIcon: string,
|
|
374
|
+
onCloseCallback?: () => void
|
|
375
|
+
): void {
|
|
376
|
+
if (!this.bkdView) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
// ✅ 1. Safely convert tintColor
|
|
381
|
+
let nativeTintColor: java.lang.Integer = null;
|
|
382
|
+
if (tintColor != null) {
|
|
383
|
+
const color = tintColor instanceof Color
|
|
384
|
+
? tintColor
|
|
385
|
+
: new Color(tintColor as string);
|
|
386
|
+
nativeTintColor = java.lang.Integer.valueOf(color.android);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// ✅ 2. Safely convert backgroundColor
|
|
390
|
+
let nativeBackgroundColor: java.lang.Integer = null;
|
|
391
|
+
if (backgroundColor != null) {
|
|
392
|
+
const color = backgroundColor instanceof Color
|
|
393
|
+
? backgroundColor
|
|
394
|
+
: new Color(backgroundColor as string);
|
|
395
|
+
nativeBackgroundColor = java.lang.Integer.valueOf(color.android);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
// ✅ 3. Convert position to float[]
|
|
399
|
+
const nativePosition = java.lang.reflect.Array.newInstance(java.lang.Float.TYPE, 2);
|
|
400
|
+
nativePosition[0] = position[0];
|
|
401
|
+
nativePosition[1] = position[1];
|
|
402
|
+
|
|
403
|
+
// ✅ 4. Decode base64 icon if needed
|
|
404
|
+
let customIconBitmap = null;
|
|
405
|
+
if (useCustomIcon && customIcon) {
|
|
406
|
+
customIconBitmap = this.decodeBase64ToBitmap(customIcon);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// ✅ 5. Wrap the JS callback into a native Runnable
|
|
410
|
+
const nativeCallback = onCloseCallback
|
|
411
|
+
? new java.lang.Runnable({
|
|
412
|
+
run: () => {
|
|
413
|
+
onCloseCallback();
|
|
414
|
+
}
|
|
415
|
+
})
|
|
416
|
+
: null;
|
|
417
|
+
|
|
418
|
+
// ✅ 6. Call native Android method
|
|
419
|
+
this.bkdView.configureCloseButton(
|
|
420
|
+
visible,
|
|
421
|
+
nativePosition,
|
|
422
|
+
iconSize,
|
|
423
|
+
nativeTintColor,
|
|
424
|
+
nativeBackgroundColor,
|
|
425
|
+
cornerRadius,
|
|
426
|
+
padding,
|
|
427
|
+
useCustomIcon,
|
|
428
|
+
customIconBitmap,
|
|
429
|
+
nativeCallback
|
|
430
|
+
);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
configureZoomButton(
|
|
435
|
+
visible: boolean,
|
|
436
|
+
position: number[], // [xDp, yDp]
|
|
437
|
+
iconSize: number,
|
|
438
|
+
tintColor: string | Color | null,
|
|
439
|
+
backgroundColor: string | Color | null,
|
|
440
|
+
cornerRadius: number,
|
|
441
|
+
padding: number,
|
|
442
|
+
useCustomIcon: boolean,
|
|
443
|
+
zoomInIconBase64: string,
|
|
444
|
+
zoomOutIconBase64: string,
|
|
445
|
+
zoomedInFactor: number,
|
|
446
|
+
zoomedOutFactor: number
|
|
447
|
+
): void {
|
|
448
|
+
if (!this.bkdView || !global.isAndroid) {
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
// ✅ 1. Safely convert tintColor
|
|
453
|
+
let nativeTintColor: java.lang.Integer = null;
|
|
454
|
+
if (tintColor != null) {
|
|
455
|
+
const color = tintColor instanceof Color
|
|
456
|
+
? tintColor
|
|
457
|
+
: new Color(tintColor as string);
|
|
458
|
+
nativeTintColor = java.lang.Integer.valueOf(color.android);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
// ✅ 2. Safely convert backgroundColor
|
|
462
|
+
let nativeBackgroundColor: java.lang.Integer = null;
|
|
463
|
+
if (backgroundColor != null) {
|
|
464
|
+
const color = backgroundColor instanceof Color
|
|
465
|
+
? backgroundColor
|
|
466
|
+
: new Color(backgroundColor as string);
|
|
467
|
+
nativeBackgroundColor = java.lang.Integer.valueOf(color.android);
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
// ✅ 3. Convert Position (JS number[] -> Java float[])
|
|
471
|
+
const nativePosition = java.lang.reflect.Array.newInstance(java.lang.Float.TYPE, 2);
|
|
472
|
+
nativePosition[0] = position[0];
|
|
473
|
+
nativePosition[1] = position[1];
|
|
474
|
+
|
|
475
|
+
// ✅ 4. Decode base64 icons if using custom icons
|
|
476
|
+
let nativeZoomInBitmap = null;
|
|
477
|
+
let nativeZoomOutBitmap = null;
|
|
478
|
+
|
|
479
|
+
if (useCustomIcon && zoomInIconBase64 && zoomOutIconBase64) {
|
|
480
|
+
nativeZoomInBitmap = this.decodeBase64ToBitmap(zoomInIconBase64);
|
|
481
|
+
nativeZoomOutBitmap = this.decodeBase64ToBitmap(zoomOutIconBase64);
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// ✅ 5. Call native method
|
|
485
|
+
this.bkdView.configureZoomButton(
|
|
486
|
+
visible,
|
|
487
|
+
nativePosition,
|
|
488
|
+
iconSize,
|
|
489
|
+
nativeTintColor,
|
|
490
|
+
nativeBackgroundColor,
|
|
491
|
+
cornerRadius,
|
|
492
|
+
padding,
|
|
493
|
+
useCustomIcon,
|
|
494
|
+
nativeZoomInBitmap,
|
|
495
|
+
nativeZoomOutBitmap,
|
|
496
|
+
zoomedInFactor,
|
|
497
|
+
zoomedOutFactor
|
|
498
|
+
);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
// --- Placeholder for a Conversion Utility (Not part of the core wrapper, but essential) ---
|
|
503
|
+
private convertToNativeBitmap(imageSource: any): any /* android.graphics.Bitmap */ {
|
|
504
|
+
if (!imageSource) {
|
|
505
|
+
return null;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
// If the imageSource is already a native Bitmap (from a previous conversion/cache)
|
|
509
|
+
if (imageSource.android instanceof com.google.zxing.qrcode.encoder.ByteMatrix) { // Incorrect type, placeholder
|
|
510
|
+
// return imageSource.android;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
// Example conversion (highly simplified - you'll need the correct NativeScript helpers)
|
|
514
|
+
/* if (imageSource instanceof ImageSource) {
|
|
515
|
+
const nativeBitmap = imageSource.android;
|
|
516
|
+
return nativeBitmap;
|
|
517
|
+
}
|
|
518
|
+
*/
|
|
519
|
+
|
|
520
|
+
// For a robust wrapper, you would need to:
|
|
521
|
+
// 1. Check if the input is a file path, Base64 string, or an ImageSource object.
|
|
522
|
+
// 2. Use NativeScript's image-loading utilities to load and convert it to an
|
|
523
|
+
// `android.graphics.Bitmap`.
|
|
524
|
+
|
|
525
|
+
console.warn("Image conversion placeholder called. Replace with actual logic.");
|
|
526
|
+
return null; // Return null if conversion fails
|
|
527
|
+
}
|
|
528
|
+
|
|
266
529
|
/**
|
|
267
530
|
* Defines the Region of Interest (ROI) on the camera preview for barcode scanning, specifying an area where the application focuses on detecting barcodes
|
|
268
531
|
*/
|
|
@@ -527,6 +790,10 @@ export class BarkoderViewAndroid extends View {
|
|
|
527
790
|
this.bkdView.config.getDecoderConfig().formattingType =
|
|
528
791
|
com.barkoder.Barkoder.FormattingType.AAMVA;
|
|
529
792
|
break;
|
|
793
|
+
case BarkoderConstants.FormattingType.SADL:
|
|
794
|
+
this.bkdView.config.getDecoderConfig().formattingType =
|
|
795
|
+
com.barkoder.Barkoder.FormattingType.SADL;
|
|
796
|
+
break;
|
|
530
797
|
}
|
|
531
798
|
}
|
|
532
799
|
|
|
@@ -687,6 +954,8 @@ export class BarkoderViewAndroid extends View {
|
|
|
687
954
|
return this.bkdView.config.getDecoderConfig().JapanesePost.enabled;
|
|
688
955
|
case BarkoderConstants.DecoderType.MaxiCode:
|
|
689
956
|
return this.bkdView.config.getDecoderConfig().MaxiCode.enabled;
|
|
957
|
+
case BarkoderConstants.DecoderType.OCRText:
|
|
958
|
+
return this.bkdView.config.getDecoderConfig().OCRText.enabled;
|
|
690
959
|
}
|
|
691
960
|
}
|
|
692
961
|
|
|
@@ -733,6 +1002,7 @@ export class BarkoderViewAndroid extends View {
|
|
|
733
1002
|
this.bkdView.config.getDecoderConfig().KIX.enabled = false;
|
|
734
1003
|
this.bkdView.config.getDecoderConfig().JapanesePost.enabled = false;
|
|
735
1004
|
this.bkdView.config.getDecoderConfig().MaxiCode.enabled = false;
|
|
1005
|
+
this.bkdView.config.getDecoderConfig().OCRText.enabled = false;
|
|
736
1006
|
decoders.forEach((dt: BarkoderConstants.DecoderType) => {
|
|
737
1007
|
switch (dt) {
|
|
738
1008
|
case BarkoderConstants.DecoderType.Aztec:
|
|
@@ -852,6 +1122,9 @@ export class BarkoderViewAndroid extends View {
|
|
|
852
1122
|
case BarkoderConstants.DecoderType.MaxiCode:
|
|
853
1123
|
this.bkdView.config.getDecoderConfig().MaxiCode.enabled = true;
|
|
854
1124
|
break;
|
|
1125
|
+
case BarkoderConstants.DecoderType.OCRText:
|
|
1126
|
+
this.bkdView.config.getDecoderConfig().OCRText.enabled = true;
|
|
1127
|
+
break;
|
|
855
1128
|
default:
|
|
856
1129
|
break;
|
|
857
1130
|
}
|
|
@@ -1101,6 +1374,10 @@ export class BarkoderViewAndroid extends View {
|
|
|
1101
1374
|
this.bkdView.config.getDecoderConfig().maximumResultsCount = maximumResultsCount;
|
|
1102
1375
|
}
|
|
1103
1376
|
|
|
1377
|
+
setARResultLimit(resultLimit: number): void {
|
|
1378
|
+
this.bkdView.config.arConfig.resultLimit = resultLimit;
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1104
1381
|
/**
|
|
1105
1382
|
* Sets the delay in milliseconds for considering duplicate barcodes during scanning
|
|
1106
1383
|
*/
|
|
@@ -1108,6 +1385,29 @@ export class BarkoderViewAndroid extends View {
|
|
|
1108
1385
|
this.bkdView.config.getDecoderConfig().duplicatesDelayMs = duplicateDelayMs;
|
|
1109
1386
|
}
|
|
1110
1387
|
|
|
1388
|
+
getSadlImageFromExtra(extra: any): ImageSource | null {
|
|
1389
|
+
if (!extra || !global.isAndroid) {
|
|
1390
|
+
return null;
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
try {
|
|
1394
|
+
const bitmap =
|
|
1395
|
+
com.barkoder.BarkoderHelper.sadlImage(extra);
|
|
1396
|
+
|
|
1397
|
+
if (!bitmap) {
|
|
1398
|
+
return null;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
const imageSource = new ImageSource();
|
|
1402
|
+
imageSource.setNativeSource(bitmap);
|
|
1403
|
+
return imageSource;
|
|
1404
|
+
|
|
1405
|
+
} catch (e) {
|
|
1406
|
+
console.error('Failed to extract SADL image:', e);
|
|
1407
|
+
return null;
|
|
1408
|
+
}
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1111
1411
|
/**
|
|
1112
1412
|
* Sets the caching duration (in milliseconds) for multi-code results
|
|
1113
1413
|
*/
|
|
@@ -1327,6 +1627,10 @@ export class BarkoderViewAndroid extends View {
|
|
|
1327
1627
|
com.barkoder.Barkoder.SetCustomOption(this.bkdView.config.getDecoderConfig(), string, mode);
|
|
1328
1628
|
}
|
|
1329
1629
|
|
|
1630
|
+
setCustomOptionGlobal(string: string, mode: number): void {
|
|
1631
|
+
com.barkoder.Barkoder.SetCustomOptionGlobal(string, mode);
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1330
1634
|
setDynamicExposure(mode : number) : void {
|
|
1331
1635
|
this.bkdView.setDynamicExposure(mode);
|
|
1332
1636
|
}
|
|
@@ -60,7 +60,8 @@ export enum DecoderType {
|
|
|
60
60
|
RoyalMail = 36,
|
|
61
61
|
KIX = 37,
|
|
62
62
|
JapanesePost = 38,
|
|
63
|
-
MaxiCode = 39
|
|
63
|
+
MaxiCode = 39,
|
|
64
|
+
OCRText = 40
|
|
64
65
|
|
|
65
66
|
}
|
|
66
67
|
|
|
@@ -68,7 +69,8 @@ export enum FormattingType {
|
|
|
68
69
|
Disabled = 0,
|
|
69
70
|
Automatic = 1,
|
|
70
71
|
GS1 = 2,
|
|
71
|
-
AAMVA = 3
|
|
72
|
+
AAMVA = 3,
|
|
73
|
+
SADL = 4
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
export enum DecodingSpeed {
|
|
@@ -238,6 +240,7 @@ export class DekoderConfig {
|
|
|
238
240
|
kix?: BarcodeConfig;
|
|
239
241
|
japanasePost?: BarcodeConfig;
|
|
240
242
|
maxicode?: BarcodeConfig;
|
|
243
|
+
ocrText?: BarcodeConfig;
|
|
241
244
|
general?: GeneralSettings;
|
|
242
245
|
|
|
243
246
|
constructor(config: Partial<DekoderConfig>) {
|
|
@@ -286,6 +289,7 @@ export class DekoderConfig {
|
|
|
286
289
|
'KIX': this.kix?.toMap(),
|
|
287
290
|
'Japanase Post': this.japanasePost?.toMap(),
|
|
288
291
|
'MaxiCode': this.maxicode?.toMap(),
|
|
292
|
+
'OCR Text': this.maxicode?.toMap(),
|
|
289
293
|
'general': this.general?.toMap()
|
|
290
294
|
}
|
|
291
295
|
|