Fix scan bug

This commit is contained in:
fhkhd
2024-03-15 17:54:16 +03:30
parent b0b5d8abea
commit d1c6355fe8
2 changed files with 45 additions and 33 deletions
+41
View File
@@ -3,7 +3,9 @@ import 'dart:convert';
import 'package:cssd/models/item_model.dart'; import 'package:cssd/models/item_model.dart';
import 'package:cssd/models/package_model.dart'; import 'package:cssd/models/package_model.dart';
import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:cssd/utils/scan.dart';
import '../config/urls.dart'; import '../config/urls.dart';
import '../config/user.dart'; import '../config/user.dart';
@@ -78,16 +80,55 @@ class PackageProvider extends ChangeNotifier {
} }
} }
var isCurrectItem = false;
changeItemValByScan(String value, int index) async { changeItemValByScan(String value, int index) async {
filteredItems?.forEach((item) { filteredItems?.forEach((item) {
if (item.id == value) { if (item.id == value) {
itemValues[index].text = "${item.name} - ${item.udi}"; itemValues[index].text = "${item.name} - ${item.udi}";
isCurrectItem = true;
} }
print("item value : ${itemValues[index].text}"); print("item value : ${itemValues[index].text}");
}); });
notifyListeners(); notifyListeners();
} }
void scanItem(isEnabled, context, index) async {
await scan().then(
(String result) async {
if (result == 'cancel') {
if (index != 0) await removeItemVal();
print('cancel');
} else if (result == 'error') {
print('error');
} else if (result == 'access') {
print('access');
} else {
await changeItemValByScan(result, index);
isEnabled = false;
print("currect item : ${isCurrectItem}");
if (isCurrectItem) {
Fluttertoast.showToast(
msg: "Item added.",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
scanItem(isEnabled, context, index += 1);
await addItemVal();
isCurrectItem = false;
} else {
Fluttertoast.showToast(
msg: "No item exists,try again!",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
scanItem(isEnabled, context, index);
}
}
},
);
}
String searchBoxValue = ''; String searchBoxValue = '';
bool filterOn = false; bool filterOn = false;
List<PackageResultObject>? items; List<PackageResultObject>? items;
@@ -1,7 +1,5 @@
import 'package:cssd/providers/packages.dart'; import 'package:cssd/providers/packages.dart';
import 'package:cssd/utils/scan.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -170,8 +168,10 @@ class AddItemBox extends StatelessWidget {
), ),
Spacer(), Spacer(),
InkWell( InkWell(
onTap: () { onTap: () async {
ScanItem(isEnabled, context, index); Provider.of<PackageProvider>(context,
listen: false)
.scanItem(isEnabled, context, index);
}, },
child: Container( child: Container(
padding: EdgeInsets.all(8), padding: EdgeInsets.all(8),
@@ -242,33 +242,4 @@ class AddItemBox extends StatelessWidget {
), ),
); );
} }
void ScanItem(isEnabled, context, index) async {
await scan().then(
(String result) async {
if (result == 'cancel') {
if (index != 0)
await Provider.of<PackageProvider>(context, listen: false)
.removeItemVal();
print('cancel');
} else if (result == 'error') {
print('error');
} else if (result == 'access') {
print('access');
} else {
await Provider.of<PackageProvider>(context, listen: false)
.changeItemValByScan(result, index);
isEnabled = false;
Fluttertoast.showToast(
msg: "Item added.",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
ScanItem(isEnabled, context, index += 1);
await Provider.of<PackageProvider>(context, listen: false)
.addItemVal();
}
},
);
}
} }