Showing
2 changed files
with
26 additions
and
13 deletions
| @@ -443,22 +443,29 @@ class MobileScanner( | @@ -443,22 +443,29 @@ class MobileScanner( | ||
| 443 | /** | 443 | /** |
| 444 | * Analyze a single image. | 444 | * Analyze a single image. |
| 445 | */ | 445 | */ |
| 446 | - fun analyzeImage(image: Uri, onSuccess: AnalyzerSuccessCallback, onError: AnalyzerErrorCallback) { | 446 | + fun analyzeImage( |
| 447 | + image: Uri, | ||
| 448 | + scannerOptions: BarcodeScannerOptions?, | ||
| 449 | + onSuccess: AnalyzerSuccessCallback, | ||
| 450 | + onError: AnalyzerErrorCallback) { | ||
| 447 | val inputImage = InputImage.fromFilePath(activity, image) | 451 | val inputImage = InputImage.fromFilePath(activity, image) |
| 448 | 452 | ||
| 449 | - scanner.process(inputImage) | ||
| 450 | - .addOnSuccessListener { barcodes -> | ||
| 451 | - val barcodeMap = barcodes.map { barcode -> barcode.data } | 453 | + // Use a short lived scanner instance, which is closed when the analysis is done. |
| 454 | + val barcodeScanner: BarcodeScanner = createBarcodeScanner(scannerOptions) | ||
| 452 | 455 | ||
| 453 | - if (barcodeMap.isNotEmpty()) { | ||
| 454 | - onSuccess(barcodeMap) | ||
| 455 | - } else { | ||
| 456 | - onSuccess(null) | ||
| 457 | - } | ||
| 458 | - } | ||
| 459 | - .addOnFailureListener { e -> | ||
| 460 | - onError(e.localizedMessage ?: e.toString()) | 456 | + barcodeScanner.process(inputImage).addOnSuccessListener { barcodes -> |
| 457 | + val barcodeMap = barcodes.map { barcode -> barcode.data } | ||
| 458 | + | ||
| 459 | + if (barcodeMap.isEmpty()) { | ||
| 460 | + onSuccess(null) | ||
| 461 | + } else { | ||
| 462 | + onSuccess(barcodeMap) | ||
| 461 | } | 463 | } |
| 464 | + }.addOnFailureListener { e -> | ||
| 465 | + onError(e.localizedMessage ?: e.toString()) | ||
| 466 | + }.addOnCompleteListener { | ||
| 467 | + barcodeScanner.close() | ||
| 468 | + } | ||
| 462 | } | 469 | } |
| 463 | 470 | ||
| 464 | /** | 471 | /** |
| @@ -243,7 +243,13 @@ class MobileScannerHandler( | @@ -243,7 +243,13 @@ class MobileScannerHandler( | ||
| 243 | analyzerResult = result | 243 | analyzerResult = result |
| 244 | val uri = Uri.fromFile(File(call.arguments.toString())) | 244 | val uri = Uri.fromFile(File(call.arguments.toString())) |
| 245 | 245 | ||
| 246 | - mobileScanner!!.analyzeImage(uri, analyzeImageSuccessCallback, analyzeImageErrorCallback) | 246 | + // TODO: parse options from the method call |
| 247 | + // See https://github.com/juliansteenbakker/mobile_scanner/issues/1069 | ||
| 248 | + mobileScanner!!.analyzeImage( | ||
| 249 | + uri, | ||
| 250 | + null, | ||
| 251 | + analyzeImageSuccessCallback, | ||
| 252 | + analyzeImageErrorCallback) | ||
| 247 | } | 253 | } |
| 248 | 254 | ||
| 249 | private fun toggleTorch(result: MethodChannel.Result) { | 255 | private fun toggleTorch(result: MethodChannel.Result) { |
-
Please register or login to post a comment