Releases: juliansteenbakker/mobile_scanner
v3.0.0-beta.4
Fixes:
- Fixes a permission bug on Android where denying the permission would cause an infinite loop of permission requests.
- Updates the example app to handle permission errors with the new builder parameter.
Now it no longer throws uncaught exceptions when the permission is denied. - Updated several dependencies
Features:
- Added a new
errorBuilder
to theMobileScanner
widget that can be used to customize the error state of the preview. (Thanks @navaronbracke !)
v3.0.0-beta.3
Special thanks to p-mazhnik, navaronbracke and WenheLI for the code improvements and new features!
Deprecated:
- The
onStart
method has been renamed toonScannerStarted
. - The
onPermissionSet
argument of theMobileScannerController
is now deprecated.
Breaking changes:
MobileScannerException
now uses anerrorCode
instead of amessage
.MobileScannerException
now contains additional details from the original error.- Refactored
MobileScannerController.start()
to throwMobileScannerException
s
with consistent error codes, rather than string messages.
To handle permission errors, consider catching the result ofMobileScannerController.start()
. - The
autoResume
attribute has been removed from theMobileScanner
widget.
The controller already automatically resumes, so it had no effect. - Removed
MobileScannerCallback
andMobileScannerArgumentsCallback
typedef. - [Web] Replaced
jsqr
library withzxing-js
for full barcode support.
Improvements:
- Toggling the device torch now does nothing if the device has no torch, rather than throwing an error.
- Removed
called stop while already stopped
messages.
Features:
- You can now provide a
scanWindow
to theMobileScanner()
widget. - You can now draw an overlay over the scanned barcode. See the barcode scanner window in the example app for more information.
- Added a new
placeholderBuilder
function to theMobileScanner
widget to customize the preview placeholder. - Added
autoStart
parameter to MobileScannerController(). If set to false, controller won't start automatically. - Added
hasTorch
function on MobileScannerController(). After starting the controller, you can check if the device has a torch. - [iOS] Support
torchEnabled
parameter from MobileScannerController() on iOS - [Web] Added ability to use custom barcode scanning js libraries
by extendingWebBarcodeReaderBase
class and changingbarCodeReader
property inMobileScannerWebPlugin
Fixes:
- Fixes the missing gradle setup for the Android project, which prevented gradle sync from working.
- Fixes
MobileScannerController.stop()
throwing when already stopped. - Fixes
MobileScannerController.toggleTorch()
throwing if the device has no torch.
Now it does nothing if the torch is not available. - Fixes a memory leak where the
MobileScanner
would keep listening to the barcode events. - Fixes the
MobileScanner
preview depending on all attributes ofMediaQueryData
.
Now it only depends on its layout constraints. - Fixed a potential crash when the scanner is restarted due to the app being resumed.
- [iOS] Fix crash when changing torch state
v3.0.0-beta.2
Breaking changes:
- The arguments parameter of onDetect is removed. The data is now returned by the onStart callback
in the MobileScanner widget. - onDetect now returns the object BarcodeCapture, which contains a List of barcodes and, if enabled, an image.
- allowDuplicates is removed and replaced by MobileScannerSpeed enum.
- onPermissionSet in MobileScanner widget is deprecated and will be removed. Use the onPermissionSet
onPermissionSet callback in MobileScannerController instead. - [iOS] The minimum deployment target is now 11.0 or higher.
Features:
- The returnImage is working for both iOS and Android. You can enable it in the MobileScannerController.
The image will be returned in the BarcodeCapture object provided by onDetect. - You can now control the DetectionSpeed, as well as the timeout of the DetectionSpeed. For more
info see the DetectionSpeed documentation. This replaces the allowDuplicates function.
Other improvements:
- Both the [iOS] and [Android] codebases have been refactored completely.
- [iOS] Updated POD dependencies
v3.0.0-beta.1
Breaking changes:
- [Android] SDK updated to SDK 33.
Features:
- [Web] Add binaryData for raw value.
- [iOS] Captures the last scanned barcode with Barcode.image.
- [iOS] Add support for multiple formats on iOS with BarcodeScannerOptions.
- Add displayValue which returns barcode value in a user-friendly format.
- Add autoResume option to MobileScannerController which automatically resumes the camera when the application is resumed
Other changes:
- [Android] Revert camera2 dependency to stable release
- [iOS] Update barcode scanning library to latest version
- Several minor code improvements
v2.1.0
Upgraded GoogleMLKit/BarcodeScanning pod on iOS from 2.6.0 to 3.2.0.
Migrated to stable version of androidx.camera for Android.
Please checkout version 3.0.0-beta.2 for the latest features.
v2.0.0-play-services
This version uses the MLKit play-services model on Android in order to save space.
With the example app, this version reduces the release version from 14.9MB to 7MB.
More information: https://developers.google.com/ml-kit/vision/barcode-scanning/android
v2.0.0
Breaking changes: This version is only compatible with flutter 3.0.0 and later.
v1.1.1-play-services
This version uses the MLKit play-services model on Android in order to save space.
With the example app, this version reduces the release version from 14.9MB to 7MB.
More information: https://developers.google.com/ml-kit/vision/barcode-scanning/android
v1.1.1
Bugfixes:
- Add null checks for Android.
- Update camera dependency for Android.
- Fix return type for analyzeImage.
- Add fixes for Flutter 3.
v1.1.0
Bugfixes:
- Fix for 'stream already listened to' exception.
- Fix building on Android with latest Flutter version.
- Add several WEB improvements.
- Upgraded several dependencies.