Fix qr code in of adding labels in add cycles.dart

This commit is contained in:
hanie.khodkari
2024-08-13 13:40:20 +03:30
parent c0d78c1b6e
commit 9e6dc66075
2 changed files with 56 additions and 18 deletions
+53
View File
@@ -1,11 +1,15 @@
import 'dart:convert';
import 'package:fluttertoast/fluttertoast.dart';
import '../config/urls.dart';
import '../config/user.dart';
import '../models/cycles_models.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import '../pages/TestPages/test_filter_screen.dart';
class CyclesProvider extends ChangeNotifier {
List<String> labelVals = [];
List<TextEditingController> labelValues = [];
@@ -41,6 +45,55 @@ class CyclesProvider extends ChangeNotifier {
notifyListeners();
}
var isCorrectLabel = false;
changeLabelValByScan(String value, int index) async {
labelVals.forEach((label) {
if (label == value) {
labelValues[index].text = label;
isCorrectLabel = true;
}
print("label value : $label");
});
notifyListeners();
}
void scanLabel(isEnabled, context, index) async {
await scan().then(
(String result) async {
if (result == 'cancel') {
if (index != 0) await removeLabelVal();
print('cancel');
} else if (result == 'error') {
print('error');
} else if (result == 'access') {
print('access');
} else {
await changeLabelValByScan(result, index);
isEnabled = false;
print("currect label : ${isCorrectLabel}");
if (isCorrectLabel) {
Fluttertoast.showToast(
msg: "Label added.",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
scanLabel(isEnabled, context, index += 1);
await addLabelVal();
isCorrectLabel = false;
} else {
Fluttertoast.showToast(
msg: "No label exists,try again!",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
scanLabel(isEnabled, context, index);
}
}
},
);
}
String searchBoxValue = '';
bool filterOn = false;
List<CycleResultObject>? items;
@@ -1,8 +1,6 @@
import 'package:cssd/utils/scan.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../../../providers/cycles.dart';
class AddLabelBox extends StatelessWidget {
@@ -155,22 +153,9 @@ class AddLabelBox extends StatelessWidget {
Spacer(),
InkWell(
onTap: () {
scan().then(
(String result) {
if (result == 'cancel') {
print('cancel');
} else if (result == 'error') {
print('error');
} else if (result == 'access') {
print('access');
} else {
print(result);
Provider.of<CyclesProvider>(context,
listen: false)
.changeLabelVal(result, index);
}
},
);
.scanLabel(true, context, index);
},
child: Container(
padding: EdgeInsets.all(8),