|
|
@@ -14,6 +14,7 @@ import 'package:telnow_mobile_new/src/layouts/components/template.dart';
|
|
|
import 'package:telnow_mobile_new/src/layouts/auth/login.dart';
|
|
|
import 'package:telnow_mobile_new/src/storage/sharedpreferences/shared_preferences_manager.dart';
|
|
|
import 'package:telnow_mobile_new/src/utils/U.dart';
|
|
|
+import 'package:telnow_mobile_new/src/utils/ui_service.dart';
|
|
|
import 'package:toggle_switch/toggle_switch.dart';
|
|
|
import 'package:url_launcher/url_launcher.dart';
|
|
|
import 'package:http/http.dart' as http;
|
|
|
@@ -229,12 +230,11 @@ class _NewQrPageState extends State<NewQrPage> {
|
|
|
Future scanDialog() async {
|
|
|
try {
|
|
|
final result = await InternetAddress.lookup('google.com');
|
|
|
- if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
|
|
|
- // String barcode = await FlutterBarcodeScanner.scanBarcode('#ff6666', 'Cancel', true, ScanMode.QR);
|
|
|
+ if (result.isNotEmpty && result[0].rawAddress.isNotEmpty && mounted) {
|
|
|
showModalBottomSheet<void>(
|
|
|
context: context,
|
|
|
backgroundColor: Colors.white,
|
|
|
- builder: (BuildContext contextt) {
|
|
|
+ builder: (BuildContext ctx) {
|
|
|
return SafeArea(
|
|
|
child: Column(
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
@@ -250,7 +250,7 @@ class _NewQrPageState extends State<NewQrPage> {
|
|
|
leading: Icon(Icons.image),
|
|
|
title: Text('fromGallery'.tr(), style: TextStyle(color: textColor)),
|
|
|
onTap: () async{
|
|
|
- Navigator.of(contextt).pop();
|
|
|
+ Navigator.of(ctx).pop();
|
|
|
XFile? file = await ImagePicker().pickImage(source: ImageSource.gallery);
|
|
|
if(file != null){
|
|
|
final BarcodeCapture? barcodeCapture = await MobileScannerController().analyzeImage(file.path);
|
|
|
@@ -259,7 +259,7 @@ class _NewQrPageState extends State<NewQrPage> {
|
|
|
scan(str);
|
|
|
}
|
|
|
else{
|
|
|
- showError(context, 'messageInvalidCode'.tr());
|
|
|
+ UIService.showError('messageInvalidCode'.tr());
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
@@ -268,7 +268,7 @@ class _NewQrPageState extends State<NewQrPage> {
|
|
|
leading: Icon(Icons.camera),
|
|
|
title: Text('fromCamera'.tr(), style: TextStyle(color: textColor)),
|
|
|
onTap: () async{
|
|
|
- Navigator.of(contextt).pop();
|
|
|
+ Navigator.of(ctx).pop();
|
|
|
Navigator.push(context, MaterialPageRoute(builder: (context) => const ScanBarcodePage())).then((barcode){
|
|
|
if(barcode != null){
|
|
|
scan(barcode);
|
|
|
@@ -283,26 +283,23 @@ class _NewQrPageState extends State<NewQrPage> {
|
|
|
);
|
|
|
}
|
|
|
} on SocketException catch (_) {
|
|
|
- handlingError(context, 0); //no internet
|
|
|
+ UIService.handlingError(ErrorType.noInternet); //no internet
|
|
|
} on PlatformException catch (e) {
|
|
|
if (e.code != '') {
|
|
|
- showError(context, 'messageCamPermission'.tr());
|
|
|
+ UIService.showError('messageCamPermission'.tr());
|
|
|
} else {
|
|
|
- showError(context, 'messageInvalidCode'.tr());
|
|
|
+ UIService.showError('messageInvalidCode'.tr());
|
|
|
}
|
|
|
} catch (e) {
|
|
|
- showError(context, 'messageInvalidCode'.tr());
|
|
|
+ UIService.showError('messageInvalidCode'.tr());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Future scan(String barcode) async {
|
|
|
-// print("called scan()");
|
|
|
try {
|
|
|
var pidString = barcode.split("app/").last;
|
|
|
var pid = Uri.decodeComponent(pidString.split('/').first);
|
|
|
var splitPID = pid.split('#');
|
|
|
-// print(splitPID);
|
|
|
-// print(U.decodeBase64Url(splitPID[1]));
|
|
|
|
|
|
await _sharedPreferencesManager.clearKey(SharedPreferencesManager.version);
|
|
|
await _sharedPreferencesManager.putString(SharedPreferencesManager.keyBaseUrl, U.rewriteUrl(splitPID[1]));
|
|
|
@@ -311,15 +308,17 @@ class _NewQrPageState extends State<NewQrPage> {
|
|
|
apiAuthRepository.init();
|
|
|
|
|
|
if (!pidString.contains('loginme')) {
|
|
|
- context.router.removeLast();
|
|
|
- context.navigateToPath("/app/${Uri.encodeComponent(splitPID[0])}/login");
|
|
|
+ UIService.navigateNamed("/app/${Uri.encodeComponent(splitPID[0])}/login");
|
|
|
+ // context.router.removeLast();
|
|
|
+ // context.navigateToPath("/app/${Uri.encodeComponent(splitPID[0])}/login");
|
|
|
} else {
|
|
|
- context.router.removeLast();
|
|
|
- context.navigateToPath("/app/${Uri.encodeComponent(splitPID[0])}/loginme${pidString.split("/loginme").last}");
|
|
|
+ UIService.navigateNamed("/app/${Uri.encodeComponent(splitPID[0])}/loginme${pidString.split("/loginme").last}");
|
|
|
+ // context.router.removeLast();
|
|
|
+ // context.navigateToPath("/app/${Uri.encodeComponent(splitPID[0])}/loginme${pidString.split("/loginme").last}");
|
|
|
}
|
|
|
} catch (e) {
|
|
|
debugPrint(e.toString());
|
|
|
- if(mounted) showError(context, 'messageInvalidCode'.tr());
|
|
|
+ UIService.showError('messageInvalidCode'.tr());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -338,8 +337,6 @@ class _ScanBarcodePageState extends State<ScanBarcodePage> {
|
|
|
return Scaffold(
|
|
|
body: MobileScanner(
|
|
|
onDetect: (barcodes) {
|
|
|
- // print('sini');
|
|
|
- // print(barcodes.barcodes.singleOrNull?.displayValue);
|
|
|
Navigator.of(context).pop(barcodes.barcodes.firstOrNull?.displayValue);
|
|
|
},
|
|
|
),
|