Skip to content

Commit 5005b3f

Browse files
authored
fix(barcode-scanning): corner points were calculated somewhat inaccurately (#314)
Close #253 Close #257
1 parent 36dc42a commit 5005b3f

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

.changeset/wet-ducks-pump.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@capacitor-mlkit/barcode-scanning': patch
3+
---
4+
5+
fix(android): corner points were calculated somewhat inaccurately

packages/barcode-scanning/android/src/main/java/io/capawesome/capacitorjs/plugins/mlkit/barcodescanning/BarcodeScanner.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import androidx.camera.core.ImageAnalysis;
2525
import androidx.camera.core.ImageProxy;
2626
import androidx.camera.core.Preview;
27+
import androidx.camera.core.resolutionselector.ResolutionSelector;
28+
import androidx.camera.core.resolutionselector.ResolutionStrategy;
2729
import androidx.camera.lifecycle.ProcessCameraProvider;
2830
import androidx.camera.view.PreviewView;
2931
import androidx.core.content.ContextCompat;
@@ -108,10 +110,15 @@ public void startScan(ScanSettings scanSettings, StartScanResultCallback callbac
108110
BarcodeScannerOptions options = buildBarcodeScannerOptions(scanSettings);
109111
barcodeScannerInstance = BarcodeScanning.getClient(options);
110112

113+
ResolutionSelector resolutionSelector = new ResolutionSelector.Builder()
114+
.setResolutionStrategy(new ResolutionStrategy(scanSettings.resolution, ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER))
115+
.build();
116+
111117
ImageAnalysis imageAnalysis = new ImageAnalysis.Builder()
112118
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
113-
.setTargetResolution(scanSettings.resolution)
119+
.setResolutionSelector(resolutionSelector)
114120
.build();
121+
115122
imageAnalysis.setAnalyzer(ContextCompat.getMainExecutor(plugin.getContext()), this);
116123

117124
ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(plugin.getContext());

0 commit comments

Comments
 (0)