asset scan user feedback if not found.

design_3.0_medical_gas
Sikander Saleem 2 weeks ago
parent 31a9296a8e
commit cdc69fcee0

@ -33,11 +33,11 @@ class Utils {
static bool get isLoading => _isLoadingVisible; static bool get isLoading => _isLoadingVisible;
static void showToast(String message, {bool longDuration = true}) { static void showToast(String message, {bool longDuration = true, ToastGravity toastGravity = ToastGravity.BOTTOM}) {
Fluttertoast.showToast( Fluttertoast.showToast(
msg: message, msg: message,
toastLength: longDuration ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT, toastLength: longDuration ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM, gravity: toastGravity,
timeInSecForIosWeb: 1, timeInSecForIosWeb: 1,
backgroundColor: Colors.black54, backgroundColor: Colors.black54,
textColor: Colors.white, textColor: Colors.white,

@ -1,15 +1,19 @@
import 'dart:io'; import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:qr_code_scanner_plus/qr_code_scanner_plus.dart'; import 'package:qr_code_scanner_plus/qr_code_scanner_plus.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/helper/utils.dart';
import 'package:test_sa/models/device/asset.dart'; import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/modules/tm_module/device_transfer/search_device_page.dart'; import 'package:test_sa/modules/tm_module/device_transfer/search_device_page.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import '../../../controllers/providers/api/devices_provider.dart'; import '../../../controllers/providers/api/devices_provider.dart';
@ -32,6 +36,7 @@ class _AssetScanQrState extends State<AssetScanQr> {
// Barcode result; // Barcode result;
QRViewController? _controller; QRViewController? _controller;
bool _scanDone = false; bool _scanDone = false;
bool _scanning = false;
final GlobalKey qrKey = GlobalKey(debugLabel: 'QR_scanner'); final GlobalKey qrKey = GlobalKey(debugLabel: 'QR_scanner');
late AssetProvider _devicesProvider; late AssetProvider _devicesProvider;
@ -93,7 +98,14 @@ class _AssetScanQrState extends State<AssetScanQr> {
_scanDone = false; _scanDone = false;
} }
} else { } else {
_controller?.pauseCamera();
setState(() {
_scanning = true;
});
final result = await _getDevice(scanData.code!, isQr: true); final result = await _getDevice(scanData.code!, isQr: true);
setState(() {
_scanning = false;
});
if (result.isNotEmpty) { if (result.isNotEmpty) {
if (widget.multiSelection) { if (widget.multiSelection) {
Navigator.of(context).pop(<Asset>[result[0]]); Navigator.of(context).pop(<Asset>[result[0]]);
@ -101,6 +113,8 @@ class _AssetScanQrState extends State<AssetScanQr> {
Navigator.of(context).pop(result[0]); Navigator.of(context).pop(result[0]);
} }
} else { } else {
Utils.showToast("No Item Found. Try Again", toastGravity: ToastGravity.CENTER);
_controller?.resumeCamera();
_scanDone = false; _scanDone = false;
} }
} }
@ -115,6 +129,14 @@ class _AssetScanQrState extends State<AssetScanQr> {
fit: BoxFit.fitHeight, fit: BoxFit.fitHeight,
), ),
), ),
if (_scanning)
Container(
width: 56.toScreenHeight,
height: 56.toScreenHeight,
padding: const EdgeInsets.all(8),
decoration: const BoxDecoration(shape: BoxShape.circle, color: Colors.white),
child: const CircularProgressIndicator(color: AppColor.primary10, strokeWidth: 3),
).center
], ],
).expanded, ).expanded,
if (widget.enablePickManually) if (widget.enablePickManually)

Loading…
Cancel
Save