From 7716db88aac4f8750ba0c44172b42aa0fd0a1496 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 15 Jan 2025 11:33:58 +0200 Subject: [PATCH 01/15] web baseAPIURL to android and web --- Frontend/lib/mih_env/env.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Frontend/lib/mih_env/env.dart b/Frontend/lib/mih_env/env.dart index ceb8c81e..aed10c54 100644 --- a/Frontend/lib/mih_env/env.dart +++ b/Frontend/lib/mih_env/env.dart @@ -13,7 +13,8 @@ abstract class AppEnviroment { switch (env) { case Enviroment.dev: { - baseApiUrl = "http://10.0.2.2:8080"; //"http://localhost:8080"; + // baseApiUrl = "http://10.0.2.2:8080"; //Android + baseApiUrl = "http://localhost:8080"; //Web baseFileUrl = "http://10.0.2.2:9000"; //"http://localhost:9000"; whatsappAccessToken = "EAAPINXuNFdYBOzBjTcvZA2iPXEHbHRF9uNXyP3ihkPRUcBqKNru5g9NKRRKkFaiaITEzO3BMo6CjdUmlDH4qYTW2mzDrZB4Q21ZCEZBgECZCu27vfaOXJZCYQLNxwoXkrZBRYv8ZAP37f69r3z9JxLQxdxn9gwqA3oNZAlBBRapJQzxOr6pZBTdI3bbjbu17ZBIwRcF4JCqPDCNLEZCI3bmHwEd2i2niNMYZD"; From 231656f65d76edeefc1c72451dc497eba552df62 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 15 Jan 2025 11:34:21 +0200 Subject: [PATCH 02/15] align text to centre --- Frontend/lib/mih_packages/authentication/biometric_check.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/Frontend/lib/mih_packages/authentication/biometric_check.dart b/Frontend/lib/mih_packages/authentication/biometric_check.dart index c49a5bef..f48344f3 100644 --- a/Frontend/lib/mih_packages/authentication/biometric_check.dart +++ b/Frontend/lib/mih_packages/authentication/biometric_check.dart @@ -112,6 +112,7 @@ class _BiometricCheckState extends State { //Heading Text( 'Biomentric Authentication', + textAlign: TextAlign.center, style: TextStyle( fontSize: 25, fontWeight: FontWeight.bold, From ba370b725b3c397da7f1042ee745aa6d66824a22 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 15 Jan 2025 11:34:41 +0200 Subject: [PATCH 03/15] version update --- Frontend/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Frontend/pubspec.yaml b/Frontend/pubspec.yaml index 4e00a862..0fccf78e 100644 --- a/Frontend/pubspec.yaml +++ b/Frontend/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.2+11 +version: 1.0.2+12 environment: sdk: '>=3.2.4 <4.0.0' From 74a43e2b83131a5830cd5119ae61fa13ca451d36 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 11:43:31 +0200 Subject: [PATCH 04/15] add mobile scanner --- Frontend/pubspec.lock | 44 +++++++++++++++++++++---------------------- Frontend/pubspec.yaml | 6 +++--- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Frontend/pubspec.lock b/Frontend/pubspec.lock index a72646e3..71160a85 100644 --- a/Frontend/pubspec.lock +++ b/Frontend/pubspec.lock @@ -5,23 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "72.0.0" + version: "76.0.0" _macros: dependency: transitive description: dart source: sdk - version: "0.3.2" + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.11.0" ansicolor: dependency: transitive description: @@ -234,10 +234,10 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" convert: dependency: transitive description: @@ -617,18 +617,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -697,10 +697,10 @@ packages: dependency: transitive description: name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" url: "https://pub.dev" source: hosted - version: "0.1.2-main.4" + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -1057,7 +1057,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_maps: dependency: transitive description: @@ -1086,10 +1086,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" stream_channel: dependency: transitive description: @@ -1110,10 +1110,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" supertokens_flutter: dependency: "direct main" description: @@ -1214,10 +1214,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" timing: dependency: transitive description: @@ -1342,10 +1342,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" watcher: dependency: transitive description: diff --git a/Frontend/pubspec.yaml b/Frontend/pubspec.yaml index 0fccf78e..f63441ca 100644 --- a/Frontend/pubspec.yaml +++ b/Frontend/pubspec.yaml @@ -19,8 +19,8 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.2+12 environment: - sdk: '>=3.2.4 <4.0.0' - + sdk: '>=3.5.3 <4.0.0' + # flutter: ">=1.17.0" # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions # consider running `flutter pub upgrade --major-versions`. Alternatively, @@ -64,7 +64,7 @@ dependencies: mobile_scanner: ^6.0.2 flutter_launcher_icons: ^0.13.1 # flutter_barcode_scanner: ^2.0.0 - barcode_widget: ^2.0.4 + barcode_widget: ^2.0.4 #Generate Barcodes url_launcher: ^6.3.1 fl_downloader: ^2.0.2 local_auth: ^2.3.0 From 8d998ffd957bac6bf0c2d6d4ebba94f037428284 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 11:43:42 +0200 Subject: [PATCH 05/15] add permission --- Frontend/android/app/src/main/AndroidManifest.xml | 2 ++ Frontend/ios/Runner/Info.plist | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Frontend/android/app/src/main/AndroidManifest.xml b/Frontend/android/app/src/main/AndroidManifest.xml index 8470431f..6ece29d0 100644 --- a/Frontend/android/app/src/main/AndroidManifest.xml +++ b/Frontend/android/app/src/main/AndroidManifest.xml @@ -6,6 +6,8 @@ + + sms tel - NSCameraUsageDescription - Camera permission is required for barcode scanning. NSLocationWhenInUseUsageDescription This app needs access to location when open. CFBundleDevelopmentRegion From 564f1641b9674b4c47a400bad06615d80216a3a2 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 11:43:58 +0200 Subject: [PATCH 06/15] update baseurl stuff --- Frontend/lib/mih_env/env.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Frontend/lib/mih_env/env.dart b/Frontend/lib/mih_env/env.dart index aed10c54..49b4161b 100644 --- a/Frontend/lib/mih_env/env.dart +++ b/Frontend/lib/mih_env/env.dart @@ -13,8 +13,8 @@ abstract class AppEnviroment { switch (env) { case Enviroment.dev: { - // baseApiUrl = "http://10.0.2.2:8080"; //Android - baseApiUrl = "http://localhost:8080"; //Web + baseApiUrl = "http://10.0.2.2:8080"; //Android + // baseApiUrl = "http://localhost:8080"; //Web baseFileUrl = "http://10.0.2.2:9000"; //"http://localhost:9000"; whatsappAccessToken = "EAAPINXuNFdYBOzBjTcvZA2iPXEHbHRF9uNXyP3ihkPRUcBqKNru5g9NKRRKkFaiaITEzO3BMo6CjdUmlDH4qYTW2mzDrZB4Q21ZCEZBgECZCu27vfaOXJZCYQLNxwoXkrZBRYv8ZAP37f69r3z9JxLQxdxn9gwqA3oNZAlBBRapJQzxOr6pZBTdI3bbjbu17ZBIwRcF4JCqPDCNLEZCI3bmHwEd2i2niNMYZD"; From aa013c79ffd86571d637185b1ce5ab9d2bd1562e Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 11:51:10 +0200 Subject: [PATCH 07/15] Chaneg Tile to package and add dev scanner --- .../lib/mih_packages/mih_home/mih_home.dart | 79 +++++++++---------- 1 file changed, 37 insertions(+), 42 deletions(-) diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart index 65416371..e671a094 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -8,7 +8,9 @@ import 'package:flutter/services.dart'; import 'package:flutter_swipe_detector/flutter_swipe_detector.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:google_nav_bar/google_nav_bar.dart'; -import 'package:mobile_scanner/mobile_scanner.dart'; +import 'package:simple_barcode_scanner/simple_barcode_scanner.dart'; +// import 'package:simple_barcode_scanner/simple_barcode_scanner.dart'; +// import 'package:mobile_scanner/mobile_scanner.dart'; // import 'package:simple_barcode_scanner/screens/web.dart'; // import 'package:simple_barcode_scanner/simple_barcode_scanner.dart'; import '../../main.dart'; @@ -84,9 +86,9 @@ class _MIHHomeState extends State { String appSearch = ""; int amount = 10; final baseAPI = AppEnviroment.baseApiUrl; - final MobileScannerController scannerController = MobileScannerController( - // required options for the scanner - ); + // final MobileScannerController scannerController = MobileScannerController( + // // required options for the scanner + // ); void setAppsNewPersonal(List tileList) { ImageProvider logo = MzanziInnovationHub.of(context)!.theme.logoImage(); @@ -417,14 +419,6 @@ class _MIHHomeState extends State { )); } - void foundCode(BarcodeCapture bcode) { - if (bcode.barcodes.first.rawValue != null) { - print(bcode.barcodes.first.rawValue); - scannerController.stop(); - Navigator.of(context).pop(); - } - } - void setAppsDev(List tileList) { if (AppEnviroment.getEnv() == "Dev") { tileList.add(MIHTile( @@ -477,36 +471,37 @@ class _MIHHomeState extends State { )); tileList.add(MIHTile( onTap: () async { - showDialog( - barrierDismissible: false, - context: context, - builder: (context) { - // return const MIHErrorMessage(errorType: "Input Error"); - // return const MIHErrorMessage(errorType: "Password Requirements"); - // return const MIHErrorMessage(errorType: "Invalid Username"); - // return const MIHErrorMessage(errorType: "Invalid Email"); - // return const MIHErrorMessage(errorType: "User Exists"); - // return const MIHErrorMessage(errorType: "Password Match"); - // return const MIHErrorMessage(errorType: "Invalid Credentials"); - return MIHWindow( - fullscreen: false, - windowTitle: "Scanner", - windowBody: [ - SizedBox( - height: 1000, - child: MobileScanner( - controller: scannerController, - onDetect: foundCode, - ), - ) - ], - windowTools: [], - onWindowTapClose: () { - Navigator.pop(context); - }, + if (MzanziInnovationHub.of(context)!.theme.getPlatform() == "Web") { + print("================ Web ===================="); + print("here 1"); + try { + String? res = await SimpleBarcodeScanner.scanBarcode( + context, + barcodeAppBar: const BarcodeAppBar( + appBarTitle: 'Scan Barcode', + centerTitle: true, + enableBackButton: true, + backButtonIcon: Icon(Icons.arrow_back), + ), + isShowFlashIcon: true, + delayMillis: 500, + cameraFace: CameraFace.back, + scanFormat: ScanFormat.ONLY_BARCODE, ); - }, - ); + if (res != null) { + print(res); + } + } catch (error) { + print(error); + } + } else { + TextEditingController cardNumberController = + TextEditingController(); + Navigator.of(context).pushNamed( + '/scanner', + arguments: cardNumberController, + ); + } }, tileName: "Scanner - Dev", tileIcon: Icon( @@ -954,7 +949,7 @@ class _MIHHomeState extends State { child: SizedBox( child: MIHSearchField( controller: searchController, - hintText: "Search Mzansi Tiles", + hintText: "Search Mzansi Packages", required: false, editable: true, onTap: () { From 7020e499021e8da21eea501913b82e7cc138009e Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 11:55:31 +0200 Subject: [PATCH 08/15] add android and IOS check before scanner --- .../mzansi_wallet/loyalty_cards.dart | 105 ++++++------------ 1 file changed, 37 insertions(+), 68 deletions(-) diff --git a/Frontend/lib/mih_packages/mzansi_wallet/loyalty_cards.dart b/Frontend/lib/mih_packages/mzansi_wallet/loyalty_cards.dart index 61bb6520..6d68f971 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/loyalty_cards.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/loyalty_cards.dart @@ -11,8 +11,6 @@ import 'package:Mzansi_Innovation_Hub/mih_objects/loyalty_card.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/components/mih_card_display.dart'; import 'package:flutter/material.dart'; -// import 'package:flutter/services.dart'; -// import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; import 'package:simple_barcode_scanner/simple_barcode_scanner.dart'; @@ -33,7 +31,10 @@ class _LoyaltyCardsState extends State { late Future> cardList; //bool showSelectedCardType = false; final ValueNotifier shopName = ValueNotifier(""); - final MobileScannerController scannerController = MobileScannerController(); + final MobileScannerController scannerController = MobileScannerController( + detectionSpeed: DetectionSpeed.unrestricted, + ); + final boxFit = BoxFit.contain; void foundCode(BarcodeCapture bcode) { if (bcode.barcodes.first.rawValue != null) { @@ -46,30 +47,38 @@ class _LoyaltyCardsState extends State { } } - void openscanner() { - showDialog( - barrierDismissible: false, - context: context, - builder: (context) { - return MIHWindow( - fullscreen: false, - windowTitle: "Scanner", - windowBody: [ - Expanded( - child: MobileScanner( - controller: scannerController, - onDetect: foundCode, - ), - ), - ], - windowTools: [], - onWindowTapClose: () { - scannerController.stop(); - Navigator.pop(context); - }, + void openscanner() async { + if (MzanziInnovationHub.of(context)!.theme.getPlatform() == "Web") { + print("================ Web ===================="); + print("here 1"); + try { + String? res = await SimpleBarcodeScanner.scanBarcode( + context, + barcodeAppBar: const BarcodeAppBar( + appBarTitle: 'Scan Barcode', + centerTitle: true, + enableBackButton: true, + backButtonIcon: Icon(Icons.arrow_back), + ), + isShowFlashIcon: true, + delayMillis: 500, + cameraFace: CameraFace.back, + scanFormat: ScanFormat.ONLY_BARCODE, ); - }, - ); + if (res != null) { + setState(() { + cardNumberController.text = res; + }); + } + } catch (error) { + print(error); + } + } else { + Navigator.of(context).pushNamed( + '/scanner', + arguments: cardNumberController, + ); + } } void addCardWindow(BuildContext ctxt) { @@ -145,48 +154,8 @@ class _LoyaltyCardsState extends State { ), const SizedBox(width: 10), MIHButton( - onTap: - // () async { - // String bcodeScanResults; - // try { - // bcodeScanResults = await FlutterBarcodeScanner.scanBarcode( - // '#ff6666', - // 'Cancel', - // true, - // ScanMode.BARCODE, - // ); - // } on PlatformException { - // bcodeScanResults = "Platform not supported"; - // } - - // if (!mounted) return; - // setState(() { - // cardNumberController.text = bcodeScanResults; - // }); - // }, - // () { - // openscanner(); - // }, - () async { - print("here"); - String? res = await SimpleBarcodeScanner.scanBarcode( - context, - barcodeAppBar: const BarcodeAppBar( - appBarTitle: 'Scan Bardcode', - centerTitle: true, - enableBackButton: true, - backButtonIcon: Icon(Icons.arrow_back), - ), - isShowFlashIcon: true, - delayMillis: 500, - cameraFace: CameraFace.back, - scanFormat: ScanFormat.ONLY_BARCODE, - ); - if (res != null) { - setState(() { - cardNumberController.text = res; - }); - } + onTap: () async { + openscanner(); }, buttonText: "Scan", buttonColor: From e0558b974196961f7b687d6559705dab3acf69c0 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 11:55:46 +0200 Subject: [PATCH 09/15] create MIH IOS and anrdoid scanner page --- .../mzansi_wallet/mih_barcode_scanner.dart | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 Frontend/lib/mih_packages/mzansi_wallet/mih_barcode_scanner.dart diff --git a/Frontend/lib/mih_packages/mzansi_wallet/mih_barcode_scanner.dart b/Frontend/lib/mih_packages/mzansi_wallet/mih_barcode_scanner.dart new file mode 100644 index 00000000..e98efec0 --- /dev/null +++ b/Frontend/lib/mih_packages/mzansi_wallet/mih_barcode_scanner.dart @@ -0,0 +1,108 @@ +import 'package:Mzansi_Innovation_Hub/main.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; +import 'package:flutter/material.dart'; +import 'package:mobile_scanner/mobile_scanner.dart'; + +class MihBarcodeScanner extends StatefulWidget { + final TextEditingController cardNumberController; + const MihBarcodeScanner({ + super.key, + required this.cardNumberController, + }); + + @override + State createState() => _MihBarcodeScannerState(); +} + +class _MihBarcodeScannerState extends State { + final MobileScannerController scannerController = MobileScannerController( + detectionSpeed: DetectionSpeed.normal, + ); + + void foundCode(BarcodeCapture bcode) { + if (bcode.barcodes.first.rawValue != null) { + setState(() { + widget.cardNumberController.text = bcode.barcodes.first.rawValue!; + }); + //print(bcode.barcodes.first.rawValue); + scannerController.stop(); + Navigator.of(context).pop(); + } + } + + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + body: Stack( + children: [ + MobileScanner( + onDetect: foundCode, + ), + Align( + alignment: Alignment.center, + child: Padding( + padding: const EdgeInsets.all(10.0), + child: Container( + width: 500, + height: 150, + decoration: BoxDecoration( + border: Border.all( + width: 5, + color: MzanziInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + ), + ), + ), + Align( + alignment: AlignmentDirectional.bottomCenter, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.all(10.0), + child: MIHButton( + onTap: () { + scannerController.stop(); + Navigator.of(context).pop(); + }, + buttonText: "Cancel", + buttonColor: MzanziInnovationHub.of(context)! + .theme + .secondaryColor(), + textColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + // GestureDetector( + // onTap: () { + // scannerController.stop(); + // Navigator.of(context).pop(); + // }, + // child: const Text( + // "Cancel", + // style: TextStyle( + // fontWeight: FontWeight.bold, + // fontSize: 25, + // ), + // ), + // ), + // IconButton( + // onPressed: () {}, + // icon: const Icon( + // Icons.flip_camera_android, + // size: 30, + // ), + // ), + ], + ), + ) + ], + ), + ), + ); + } +} From ae36bb5b28c6ec69133dc96a1391d67b234c6852 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 11:55:56 +0200 Subject: [PATCH 10/15] add scanner route --- Frontend/lib/mih_router/routeGenerator.dart | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Frontend/lib/mih_router/routeGenerator.dart b/Frontend/lib/mih_router/routeGenerator.dart index 8ea87309..0256ad85 100644 --- a/Frontend/lib/mih_router/routeGenerator.dart +++ b/Frontend/lib/mih_router/routeGenerator.dart @@ -1,6 +1,7 @@ import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/calculator.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mih_policy_tos/mih_privacy_polocy.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mih_policy_tos/mih_terms_of_service.dart'; +import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/mih_barcode_scanner.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/mzansi_wallet.dart'; import 'package:flutter/material.dart'; import '../mih_components/mih_layout/mih_print_prevew.dart'; @@ -267,6 +268,22 @@ class RouteGenerator { ); } return _errorRoute(); + //=============================================================== + + //Full Screen File Viewer + case '/scanner': + if (args is TextEditingController) { + return MaterialPageRoute( + settings: settings, + builder: (_) => MihBarcodeScanner( + cardNumberController: args, + ), + ); + } + return _errorRoute(); + //=============================================================== + + //Calculator case '/calculator': return MaterialPageRoute( settings: settings, From a2e471cb23105a13a2f291597dc3cd69b0f0edda Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 12:13:04 +0200 Subject: [PATCH 11/15] fix fingerprint request after switching themes --- .../mih_components/mih_layout/mih_app_drawer.dart | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Frontend/lib/mih_components/mih_layout/mih_app_drawer.dart b/Frontend/lib/mih_components/mih_layout/mih_app_drawer.dart index e2b97130..2e28b7a7 100644 --- a/Frontend/lib/mih_components/mih_layout/mih_app_drawer.dart +++ b/Frontend/lib/mih_components/mih_layout/mih_app_drawer.dart @@ -287,7 +287,11 @@ class _MIHAppDrawerState extends State { }); if (await SuperTokens.doesSessionExist() == false) { - Navigator.of(context).popAndPushNamed('/'); + Navigator.of(context).pop(); + Navigator.of(context).popAndPushNamed( + '/', + arguments: AuthArguments(true, false), + ); } }, ), @@ -316,7 +320,12 @@ class _MIHAppDrawerState extends State { .changeTheme(ThemeMode.dark); //print("Dark Mode: $darkm"); } - Navigator.of(context).popAndPushNamed('/'); + Navigator.of(context).pop(); + Navigator.of(context).popAndPushNamed( + '/', + arguments: AuthArguments(true, false), + ); + // Navigator.of(context).popAndPushNamed('/',); }); }, child: Image(image: logoThemeSwitch), From af618e75328185619066a71790e95633e99b054c Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 12:13:16 +0200 Subject: [PATCH 12/15] add loading befor biometrics --- Frontend/lib/mih_packages/authentication/auth_check.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Frontend/lib/mih_packages/authentication/auth_check.dart b/Frontend/lib/mih_packages/authentication/auth_check.dart index 9bc72592..2444b748 100644 --- a/Frontend/lib/mih_packages/authentication/auth_check.dart +++ b/Frontend/lib/mih_packages/authentication/auth_check.dart @@ -1,3 +1,4 @@ +import 'package:Mzansi_Innovation_Hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/authentication/biometric_check.dart'; import 'package:flutter/material.dart'; @@ -62,8 +63,9 @@ class _AuthCheckState extends State { } else if (snapshot.data == false) { return const SignInOrRegister(); } else { - return const SizedBox(width: 5, height: 5); - //const Mihloadingcircle(); + return + // const SizedBox(width: 5, height: 5); + const Mihloadingcircle(); } }); }, From 1acdb4a06a6bcd6acb24d87370f8ec6db81084ba Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 12:13:38 +0200 Subject: [PATCH 13/15] auto request fingerprint on first boot --- .../lib/mih_packages/authentication/biometric_check.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Frontend/lib/mih_packages/authentication/biometric_check.dart b/Frontend/lib/mih_packages/authentication/biometric_check.dart index f48344f3..e440b3ee 100644 --- a/Frontend/lib/mih_packages/authentication/biometric_check.dart +++ b/Frontend/lib/mih_packages/authentication/biometric_check.dart @@ -183,6 +183,13 @@ class _BiometricCheckState extends State { ); } + @override + void initState() { + // TODO: implement initState + super.initState(); + if (widget.firstBoot == true) authenticateUser(); + } + @override Widget build(BuildContext context) { if (MzanziInnovationHub.of(context)!.theme.getPlatform() == "Web") { From 5bf87544d64d6f2e0be9dda181e66498fb6aedd7 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 12:13:56 +0200 Subject: [PATCH 14/15] fix navuigation post profile up[date --- .../mih_packages/mzansi_profile/profile_user_update.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart b/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart index d62a1e3d..4150d3db 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart @@ -165,8 +165,10 @@ class _ProfileUserUpdateState extends State { //print(response.statusCode); if (response.statusCode == 200) { Navigator.of(context).pop(); - Navigator.of(context) - .popAndPushNamed('/', arguments: widget.arguments.signedInUser); + Navigator.of(context).popAndPushNamed( + '/', + arguments: AuthArguments(true, false), + ); String message = "${widget.arguments.signedInUser.email}'s information has been updated successfully!"; successPopUp(message); From 531eb9c8f5afeaa6cf7e3b989c77e0e4bd4b86b2 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 16 Jan 2025 12:14:11 +0200 Subject: [PATCH 15/15] enable swipe to last tool --- Frontend/lib/mih_packages/patient_profile/patient_view.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Frontend/lib/mih_packages/patient_profile/patient_view.dart b/Frontend/lib/mih_packages/patient_profile/patient_view.dart index 0fbc9277..8b4f7ffe 100644 --- a/Frontend/lib/mih_packages/patient_profile/patient_view.dart +++ b/Frontend/lib/mih_packages/patient_profile/patient_view.dart @@ -287,7 +287,7 @@ class _PatientViewState extends State { checkScreenSize(); return SwipeDetector( onSwipeLeft: (offset) { - if (_selectedIndex < 2) { + if (_selectedIndex < 3) { setState(() { _selectedIndex += 1; });