Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
mobile_scanner
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Navaron Bracke
2024-01-06 19:45:41 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
0bcca09bca64831c0c93298c3490ad9539f27554
0bcca09b
1 parent
7e11556b
adjust web barcode scanner constructor to only accept JS types; move hints creat…
…ion to separate method
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
15 deletions
lib/src/web/zxing/zxing_barcode_reader.dart
lib/src/web/zxing/zxing_browser_multi_format_reader.dart
lib/src/web/zxing/zxing_barcode_reader.dart
View file @
0bcca09
...
...
@@ -9,6 +9,7 @@ import 'package:mobile_scanner/src/enums/torch_state.dart';
import
'package:mobile_scanner/src/objects/barcode_capture.dart'
;
import
'package:mobile_scanner/src/objects/start_options.dart'
;
import
'package:mobile_scanner/src/web/barcode_reader.dart'
;
import
'package:mobile_scanner/src/web/javascript_map.dart'
;
import
'package:mobile_scanner/src/web/media_track_constraints_delegate.dart'
;
import
'package:mobile_scanner/src/web/zxing/result.dart'
;
import
'package:mobile_scanner/src/web/zxing/zxing_browser_multi_format_reader.dart'
;
...
...
@@ -84,6 +85,26 @@ final class ZXingBarcodeReader extends BarcodeReader {
}
}
JsMap
?
_createReaderHints
(
List
<
BarcodeFormat
>
formats
)
{
if
(
formats
.
isEmpty
||
formats
.
contains
(
BarcodeFormat
.
all
))
{
return
null
;
}
final
JsMap
hints
=
JsMap
();
// Set the formats hint.
// See https://github.com/zxing-js/library/blob/master/src/core/DecodeHintType.ts#L45
hints
.
set
(
2
.
toJS
,
[
for
(
final
BarcodeFormat
format
in
formats
)
getZXingBarcodeFormat
(
format
).
toJS
,
].
toJS
,
);
return
hints
;
}
/// Prepare the [web.MediaStream] for the barcode reader video input.
///
/// This method requests permission to use the camera.
...
...
@@ -242,19 +263,10 @@ final class ZXingBarcodeReader extends BarcodeReader {
formats
.
removeWhere
((
element
)
=>
element
==
BarcodeFormat
.
unknown
);
}
final
Map
<
Object
?,
Object
?>?
hints
;
if
(
formats
.
isNotEmpty
&&
!
formats
.
contains
(
BarcodeFormat
.
all
))
{
// Set the formats hint.
// See https://github.com/zxing-js/library/blob/master/src/core/DecodeHintType.ts#L45
hints
=
{
2
:
formats
.
map
(
getZXingBarcodeFormat
).
toList
(),
};
}
else
{
hints
=
null
;
}
_reader
=
ZXingBrowserMultiFormatReader
(
hints
.
jsify
(),
detectionTimeoutMs
);
_reader
=
ZXingBrowserMultiFormatReader
(
_createReaderHints
(
formats
),
detectionTimeoutMs
.
toJS
,
);
final
web
.
HTMLVideoElement
videoElement
=
web
.
document
.
createElement
(
'video'
)
as
web
.
HTMLVideoElement
;
...
...
lib/src/web/zxing/zxing_browser_multi_format_reader.dart
View file @
0bcca09
import
'dart:js_interop'
;
import
'package:mobile_scanner/src/web/javascript_map.dart'
;
import
'package:web/web.dart'
;
/// The JS interop class for the ZXing BrowserMultiFormatReader.
...
...
@@ -15,8 +16,8 @@ class ZXingBrowserMultiFormatReader {
///
/// See also: https://github.com/zxing-js/library/blob/master/src/core/DecodeHintType.ts
external
factory
ZXingBrowserMultiFormatReader
(
JSAny
?
hints
,
int
?
timeBetweenScansMillis
,
JsMap
?
hints
,
JSNumber
?
timeBetweenScansMillis
,
);
}
...
...
Please
register
or
login
to post a comment