2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-12 18:25:26 +00:00

Barcode refactor (#363)

* Move barcode.dart

* Fix

* Refactoring barcode scanner code:

- Abstract the "controller" class (for future development)
- Break barcode scanning code out into multiple files
- Add CameraBarcodeController class (qr_code_scanner)

* Add await

* Make barcode scan delay configurable

* remove unused import

* Handle camera exceptions

* Improve sequencing for camera scanner

- Show loading overlay
- Prevent reload if view is no longer mounted

* Update docstring

* Update release notes
This commit is contained in:
Oliver
2023-06-11 09:41:26 +10:00
committed by GitHub
parent 45fe79daf0
commit b051aeccda
17 changed files with 592 additions and 312 deletions

View File

@ -4,7 +4,7 @@ import "package:flutter_speed_dial/flutter_speed_dial.dart";
import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/barcode.dart";
import "package:inventree/barcode/barcode.dart";
import "package:inventree/l10.dart";
import "package:inventree/inventree/stock.dart";
@ -94,7 +94,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
Navigator.push(
context,
MaterialPageRoute(builder: (context) =>
InvenTreeQRView(
barcodeController(
StockLocationScanInItemsHandler(location!)))
).then((value) {
refresh(context);
@ -114,8 +114,8 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
Navigator.push(
context,
MaterialPageRoute(builder: (context) =>
InvenTreeQRView(
ScanParentLocationHandler(location!)))
barcodeController(ScanParentLocationHandler(location!))
)
).then((value) {
refresh(context);
});

View File

@ -4,7 +4,7 @@ import "package:flutter_speed_dial/flutter_speed_dial.dart";
import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/barcode.dart";
import "package:inventree/barcode/barcode.dart";
import "package:inventree/l10.dart";
import "package:inventree/helpers.dart";

View File

@ -3,7 +3,7 @@ import "package:flutter_speed_dial/flutter_speed_dial.dart";
import "package:inventree/api.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/barcode.dart";
import "package:inventree/barcode/barcode.dart";
import "package:inventree/widget/back.dart";
import "package:inventree/widget/drawer.dart";

View File

@ -4,7 +4,7 @@ import "package:flutter_speed_dial/flutter_speed_dial.dart";
import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/barcode.dart";
import "package:inventree/barcode/barcode.dart";
import "package:inventree/helpers.dart";
import "package:inventree/l10.dart";
import "package:inventree/api.dart";
@ -168,8 +168,9 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
Navigator.push(
context,
MaterialPageRoute(builder: (context) =>
InvenTreeQRView(
StockItemScanIntoLocationHandler(widget.item)))
barcodeController(
StockItemScanIntoLocationHandler(widget.item))
)
).then((ctx) {
refresh(context);
});

View File

@ -4,7 +4,7 @@ import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/api.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/barcode.dart";
import "package:inventree/barcode/barcode.dart";
import "package:inventree/l10.dart";
import "package:inventree/inventree/part.dart";