forked from firka/student-legacy
finished qr scanner (test)
This commit is contained in:
parent
986b13de68
commit
3708b917c4
@ -59,8 +59,8 @@ Future<void> syncAll(BuildContext context) {
|
|||||||
tasks = [
|
tasks = [
|
||||||
// refresh login
|
// refresh login
|
||||||
syncStatus(() async {
|
syncStatus(() async {
|
||||||
// print(user.user?.accessTokenExpire);
|
print(user.user?.accessTokenExpire);
|
||||||
// print('${user.user?.accessToken ?? "no token"} - ACCESS TOKEN');
|
print('${user.user?.accessToken ?? "no token"} - ACCESS TOKEN');
|
||||||
|
|
||||||
if (user.user == null) return;
|
if (user.user == null) return;
|
||||||
if (user.user!.accessTokenExpire.isBefore(DateTime.now())) {
|
if (user.user!.accessTokenExpire.isBefore(DateTime.now())) {
|
||||||
|
@ -132,6 +132,9 @@ extension SettingsLocalization on String {
|
|||||||
"other": "Other",
|
"other": "Other",
|
||||||
"stickermap": "Sticker Map",
|
"stickermap": "Sticker Map",
|
||||||
"qr_scanner": "QR Scanner",
|
"qr_scanner": "QR Scanner",
|
||||||
|
"camera_perm_error":
|
||||||
|
"Camera permission is required to scan QR codes.",
|
||||||
|
"invalid_qr_code": "Invalid QR code!",
|
||||||
},
|
},
|
||||||
"hu_hu": {
|
"hu_hu": {
|
||||||
"heads_up": "Figyelem!",
|
"heads_up": "Figyelem!",
|
||||||
@ -262,6 +265,9 @@ extension SettingsLocalization on String {
|
|||||||
"other": "Egyéb",
|
"other": "Egyéb",
|
||||||
"stickermap": "Matrica térkép",
|
"stickermap": "Matrica térkép",
|
||||||
"qr_scanner": "QR Kódolvasó",
|
"qr_scanner": "QR Kódolvasó",
|
||||||
|
"camera_perm_error":
|
||||||
|
"A kamera engedély szükséges a QR kódok beolvasásához.",
|
||||||
|
"invalid_qr_code": "Érvénytelen QR kód!",
|
||||||
},
|
},
|
||||||
"de_de": {
|
"de_de": {
|
||||||
"heads_up": "Achtung!",
|
"heads_up": "Achtung!",
|
||||||
@ -392,6 +398,9 @@ extension SettingsLocalization on String {
|
|||||||
"other": "Sonstiges",
|
"other": "Sonstiges",
|
||||||
"stickermap": "Sticker Map",
|
"stickermap": "Sticker Map",
|
||||||
"qr_scanner": "QR-Scanner",
|
"qr_scanner": "QR-Scanner",
|
||||||
|
"camera_perm_error":
|
||||||
|
"Kameraberechtigung ist erforderlich, um QR-Codes zu scannen.",
|
||||||
|
"invalid_qr_code": "Ungültiger QR-Code!",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3,7 +3,10 @@ import 'dart:io';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
import 'package:flutter_feather_icons/flutter_feather_icons.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:refilc/theme/colors/colors.dart';
|
||||||
|
import 'package:refilc_mobile_ui/common/custom_snack_bar.dart';
|
||||||
import 'package:refilc_mobile_ui/screens/settings/settings_screen.i18n.dart';
|
import 'package:refilc_mobile_ui/screens/settings/settings_screen.i18n.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class CodeScannerScreen extends StatefulWidget {
|
class CodeScannerScreen extends StatefulWidget {
|
||||||
const CodeScannerScreen({super.key});
|
const CodeScannerScreen({super.key});
|
||||||
@ -113,18 +116,51 @@ class _CodeScannerScreenState extends State<CodeScannerScreen> {
|
|||||||
this.controller = controller;
|
this.controller = controller;
|
||||||
});
|
});
|
||||||
controller.scannedDataStream.listen((scanData) {
|
controller.scannedDataStream.listen((scanData) {
|
||||||
|
controller.pauseCamera();
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
result = scanData;
|
result = scanData;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
|
||||||
|
if (scanData.code != null) {
|
||||||
|
if (scanData.code!.startsWith('qw://')) {
|
||||||
|
// String data = scanData.code!.replaceFirst('qw://', '');
|
||||||
|
// check the qr id from api
|
||||||
|
// TODO: this qr shit
|
||||||
|
} else if (scanData.code!.startsWith('https://') ||
|
||||||
|
scanData.code!.startsWith('http://')) {
|
||||||
|
Uri uri = Uri.parse(scanData.code!.replaceFirst('http', 'https'));
|
||||||
|
|
||||||
|
if (uri.host.contains('refilc.hu') ||
|
||||||
|
uri.host.contains('refilcapp.hu') ||
|
||||||
|
uri.host.contains('filc.one')) {
|
||||||
|
launchUrl(uri, mode: LaunchMode.inAppBrowserView);
|
||||||
|
} else {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(CustomSnackBar(
|
||||||
|
content: Text("invalid_qr_code".i18n,
|
||||||
|
style: const TextStyle(color: Colors.white)),
|
||||||
|
backgroundColor: AppColors.of(context).red,
|
||||||
|
context: context,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// log(scanData.code);
|
||||||
|
// Provider.of<SyncProvider>(context, listen: false).syncAll(context);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onPermissionSet(BuildContext context, QRViewController ctrl, bool p) {
|
void _onPermissionSet(BuildContext context, QRViewController ctrl, bool p) {
|
||||||
// log('${DateTime.now().toIso8601String()}_onPermissionSet $p');
|
// log('${DateTime.now().toIso8601String()}_onPermissionSet $p');
|
||||||
if (!p) {
|
if (!p) {
|
||||||
ScaffoldMessenger.of(context).showSnackBar(
|
ScaffoldMessenger.of(context).showSnackBar(CustomSnackBar(
|
||||||
const SnackBar(content: Text('no Permission')),
|
content: Text("camera_perm_error".i18n,
|
||||||
);
|
style: const TextStyle(color: Colors.white)),
|
||||||
|
backgroundColor: AppColors.of(context).red,
|
||||||
|
context: context,
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user