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 +