|
|
|
@ -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)
|
|
|
|
|