diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index b980cec..f4328ea 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -45,5 +45,7 @@
Needed to access location
NSLocationWhenInUseUsageDescription
Needed to access location
+ NSCameraUsageDescription
+ Camera permission is required for barcode scanning.
diff --git a/lib/pages/dashboard/dashboard_screen.dart b/lib/pages/dashboard/dashboard_screen.dart
index 581d1cf..d2f38ff 100644
--- a/lib/pages/dashboard/dashboard_screen.dart
+++ b/lib/pages/dashboard/dashboard_screen.dart
@@ -1,4 +1,3 @@
-import 'package:barcode_scan/platform_wrapper.dart';
import 'package:driverapp/config/config.dart';
import 'package:driverapp/config/size_config.dart';
import 'package:driverapp/core/enum/viewstate.dart';
@@ -17,6 +16,8 @@ import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
import 'package:driverapp/widgets/others/network_base_view.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
+import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
@@ -564,20 +565,24 @@ class _DashboardScreenState extends State {
}
_scanQrAndGetPatient(BuildContext context, OrdersViewModel model) async {
- /// When give qr we will change this method to get data
- /// var result = await BarcodeScanner.scan();
- /// int patientID = get from qr result
- var result = await BarcodeScanner.scan();
- // if (result.rawContent == "") {
- List listOfParams = result.rawContent.split(',');
- ScanQrRequestModel _scanQrRequestModel = ScanQrRequestModel(
- deliveryOrderID: int.parse(listOfParams[0]), groupID: 0);
- String patientType = "1";
- await model.insertOrder(_scanQrRequestModel);
- if (model.state == ViewState.ErrorLocal) {
- Utils.showErrorToast(model.error);
- } else {
- AppToast.showSuccessToast(message: "Order Added");
+ String barcodeScanRes;
+
+ try {
+ barcodeScanRes = await FlutterBarcodeScanner.scanBarcode(
+ "#ff6666", "Cancel", true, ScanMode.QR);
+ print(barcodeScanRes);
+ ScanQrRequestModel _scanQrRequestModel = ScanQrRequestModel(
+ deliveryOrderID: int.parse(barcodeScanRes), groupID: 0);
+ String patientType = "1";
+ await model.insertOrder(_scanQrRequestModel);
+ if (model.state == ViewState.ErrorLocal) {
+ Utils.showErrorToast(model.error);
+ } else {
+ AppToast.showSuccessToast(message: "Order Added");
+ }
+ } on PlatformException {
+ Utils.showErrorToast("Failed to get platform version.");
+ // barcodeScanRes = 'Failed to get platform version.';
}
}
}
diff --git a/pubspec.yaml b/pubspec.yaml
index 90596bc..f9cbf22 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -76,6 +76,9 @@ dependencies:
gradient_app_bar: ^0.1.3
app_settings: ^4.0.3
+ #Barcode Scanner
+ flutter_barcode_scanner: ^1.0.1
+