Navaron Bracke
Committed by GitHub

Merge pull request #914 from navaronbracke/release-3-5-6

chore: prepare release 3.5.6
## NEXT
## 3.5.6
Bugs fixed:
* [web] Fixed a crash with the ZXing barcode format (thanks @hazzo!)
* [web] Fixed stream controller not being closed on web.
* [iOS] Fixed a crash with unsupported torch modes. (thanks @navaronbracke !)
* [iOS] Fixed a crash with the camera discovery session. (thanks @navaronbracke !)
Improvements:
* Fixed stream controller not being closed on web.
* Upgrade camera dependencies on Android.
* Check if torch mode is supported on iOS
* Upgrade compileSdk version to 34 on Android.
* Add nrOfCameras parameter in MobileScannerArguments callback, which shows how many cameras there are available on Android.
* Add numberOfCameras parameter in MobileScannerArguments callback, which shows how many cameras there are available on Android.
* [Android] Migrated to ResolutionSelector with ResolutionStrategy. You can opt in into the new selector by setting [useNewCameraSelector] in the [MobileScannerController] to true.
* [iOS] Added new CameraSelector
## 3.5.5
Bugs fixed:
... ...
... ... @@ -250,7 +250,7 @@ class MobileScanner(
cameraProviderFuture.addListener({
cameraProvider = cameraProviderFuture.get()
val nrOfCameras = cameraProvider?.availableCameraInfos?.size
val numberOfCameras = cameraProvider?.availableCameraInfos?.size
if (cameraProvider == null) {
mobileScannerErrorCallback(CameraError())
... ... @@ -374,7 +374,7 @@ class MobileScanner(
if (portrait) height else width,
camera?.cameraInfo?.hasFlashUnit() ?: false,
textureEntry!!.id(),
nrOfCameras ?: 0
numberOfCameras ?: 0
)
)
}, executor)
... ...
... ... @@ -180,7 +180,7 @@ class MobileScannerHandler(
"textureId" to it.id,
"size" to mapOf("width" to it.width, "height" to it.height),
"torchable" to it.hasFlashUnit,
"nrOfCameras" to it.nrOfCameras
"numberOfCameras" to it.numberOfCameras
))
}
},
... ...
... ... @@ -5,5 +5,5 @@ class MobileScannerStartParameters(
val height: Double,
val hasFlashUnit: Boolean,
val id: Long,
val nrOfCameras: Int
val numberOfCameras: Int
)
\ No newline at end of file
... ...
... ... @@ -47,7 +47,7 @@ class _BarcodeScannerWithControllerState
}
}
int? nrOfCameras;
int? numberOfCameras;
@override
Widget build(BuildContext context) {
... ... @@ -60,8 +60,8 @@ class _BarcodeScannerWithControllerState
children: [
MobileScanner(
onScannerStarted: (arguments) {
if (arguments?.nrOfCameras != null) {
nrOfCameras = arguments!.nrOfCameras;
if (mounted && arguments?.numberOfCameras != null) {
numberOfCameras = arguments!.numberOfCameras;
setState(() {});
}
},
... ... @@ -154,7 +154,7 @@ class _BarcodeScannerWithControllerState
},
),
iconSize: 32.0,
onPressed: nrOfCameras != null && nrOfCameras! < 2
onPressed: (numberOfCameras ?? 0) < 2
? null
: () => controller.switchCamera(),
),
... ...
... ... @@ -4,7 +4,7 @@
#
Pod::Spec.new do |s|
s.name = 'mobile_scanner'
s.version = '3.5.5'
s.version = '3.5.6'
s.summary = 'An universal scanner for Flutter based on MLKit.'
s.description = <<-DESC
An universal scanner for Flutter based on MLKit.
... ...
... ... @@ -229,7 +229,7 @@ class _MobileScannerState extends State<MobileScanner>
value.size,
value.webId,
value.textureId,
value.nrOfCameras,
value.numberOfCameras,
),
widget.overlay!,
],
... ... @@ -239,7 +239,7 @@ class _MobileScannerState extends State<MobileScanner>
value.size,
value.webId,
value.textureId,
value.nrOfCameras,
value.numberOfCameras,
);
}
},
... ... @@ -248,7 +248,12 @@ class _MobileScannerState extends State<MobileScanner>
);
}
Widget _scanner(Size size, String? webId, int? textureId, int? nrOfCameras) {
Widget _scanner(
Size size,
String? webId,
int? textureId,
int? numberOfCameras,
) {
return ClipRect(
child: LayoutBuilder(
builder: (_, constraints) {
... ...
... ... @@ -312,7 +312,7 @@ class MobileScannerController {
isStarting = false;
return startArguments.value = MobileScannerArguments(
nrOfCameras: startResult['nrOfCameras'] as int?,
numberOfCameras: startResult['numberOfCameras'] as int?,
size: size,
hasTorch: hasTorch,
textureId: kIsWeb ? null : startResult['textureId'] as int?,
... ...
... ... @@ -16,14 +16,15 @@ class MobileScannerArguments {
final String? webId;
/// Indicates how many cameras are available.
/// Only available on Android
final int? nrOfCameras;
///
/// Currently only supported on Android.
final int? numberOfCameras;
MobileScannerArguments({
required this.size,
required this.hasTorch,
this.textureId,
this.webId,
this.nrOfCameras,
this.numberOfCameras,
});
}
... ...
... ... @@ -4,7 +4,7 @@
#
Pod::Spec.new do |s|
s.name = 'mobile_scanner'
s.version = '3.5.5'
s.version = '3.5.6'
s.summary = 'An universal scanner for Flutter based on MLKit.'
s.description = <<-DESC
An universal scanner for Flutter based on MLKit.
... ...
name: mobile_scanner
description: A universal barcode and QR code scanner for Flutter based on MLKit. Uses CameraX on Android, AVFoundation on iOS and Apple Vision & AVFoundation on macOS.
version: 3.5.5
version: 3.5.6
repository: https://github.com/juliansteenbakker/mobile_scanner
environment:
... ...