From 24f497d330407830f766d0f7c7d4e533af5f08af Mon Sep 17 00:00:00 2001 From: "antoine.gonzalez" Date: Tue, 5 Dec 2023 18:35:14 +0100 Subject: [PATCH] Fix CameraBarcodeScanView inconsistencies --- .../com/enioka/scanner/camera/CameraBarcodeScanView.java | 9 +++++++++ .../enioka/scanner/camera/CameraBarcodeScanViewV1.java | 6 ++++++ .../enioka/scanner/camera/CameraBarcodeScanViewV2.java | 1 + 3 files changed, 16 insertions(+) diff --git a/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanView.java b/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanView.java index 80e3c471..80d2ed28 100644 --- a/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanView.java +++ b/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanView.java @@ -177,4 +177,13 @@ public void pauseCamera() { public void resumeCamera() { this.proxiedView.resumeCamera(); } + + /** + * Get the JPEG data of the image used in the latest successful scan. + * + * @return a byte[] of JPEG data, or null if there is no previous scan data. + */ + public byte[] getLatestSuccessfulScanJpeg() { + return this.proxiedView.getLatestSuccessfulScanJpeg(); + } } diff --git a/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV1.java b/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV1.java index 94c27640..bba6730b 100644 --- a/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV1.java +++ b/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV1.java @@ -300,6 +300,7 @@ private void setAreas(Camera.Parameters prms) { } } + @Override protected void refreshAutofocusZone() { if (this.cam == null) { Log.w(VIEW_LOG_TAG, "refreshAutofocusZone: No camera instance, make sure camera was properly initialized and `cleanup()` or `closeCamera()` were not called previously"); @@ -331,6 +332,7 @@ protected void refreshAutofocusZone() { }); } + @Override public void setPreviewResolution(Point newResolution) { if (this.cam == null) { Log.w(VIEW_LOG_TAG, "setPreviewResolution: No camera instance, make sure camera was properly initialized and `cleanup()` or `closeCamera()` were not called previously"); @@ -492,6 +494,7 @@ public void onPreviewFrame(byte[] data, Camera camera) { frameAnalyser.handleFrame(ctx); } + @Override public void giveBufferBackInternal(FrameAnalysisContext ctx) { if (this.cam == null) { Log.w(VIEW_LOG_TAG, "giveBufferBackInternal: No camera instance, make sure camera was properly initialized and `cleanup()` or `closeCamera()` were not called previously"); @@ -508,6 +511,7 @@ public void giveBufferBackInternal(FrameAnalysisContext ctx) { //////////////////////////////////////////////////////////////////////////////////////////////// // Lifecycle external toggles + @Override public void pauseCamera() { if (this.cam != null) { this.cam.setPreviewCallbackWithBuffer(null); @@ -522,6 +526,7 @@ public void pauseCamera() { }); } + @Override public void resumeCamera() { if (this.cam != null) { this.cam.startPreview(); @@ -557,6 +562,7 @@ public void pauseScanner() { //////////////////////////////////////////////////////////////////////////////////////////////// // Clean up methods + @Override public void cleanUp() { if (this.cam == null) { Log.w(VIEW_LOG_TAG, "cleanup: No camera instance, make sure camera was properly initialized and `cleanup()` or `closeCamera()` were not called previously"); diff --git a/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV2.java b/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV2.java index d4492e49..0a49e5c2 100644 --- a/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV2.java +++ b/enioka_scan/src/main/java/com/enioka/scanner/camera/CameraBarcodeScanViewV2.java @@ -317,6 +317,7 @@ private MeteringRectangle getMeteringZone() { return new MeteringRectangle(x0, y0, x1 - x0, y1 - y0, 1000); } + @Override protected void refreshAutofocusZone() { if (anyAttributeMissing("refreshAutofocusZone")) { return;