From 8e16ab9bb4681596e3de0c8adc7c081aaea19f8e Mon Sep 17 00:00:00 2001 From: yaso Date: Tue, 28 Jan 2025 11:56:19 +0200 Subject: [PATCH 1/5] add new gif package --- Frontend/pubspec.lock | 8 ++++---- Frontend/pubspec.yaml | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Frontend/pubspec.lock b/Frontend/pubspec.lock index 86aa6ea5..19f33b23 100644 --- a/Frontend/pubspec.lock +++ b/Frontend/pubspec.lock @@ -584,14 +584,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.3" - gif: + gif_view: dependency: "direct main" description: - name: gif - sha256: ade95694f1471da737922806818ffade2814d1d7f8d10af38ebcf36ace012bc0 + name: gif_view + sha256: d2441d98bcd56b3fd00e869513aeaefa56849ab62f63675e7d55f5fa4517f27e url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "1.0.0" glob: dependency: transitive description: diff --git a/Frontend/pubspec.yaml b/Frontend/pubspec.yaml index cafd7e0f..85376122 100644 --- a/Frontend/pubspec.yaml +++ b/Frontend/pubspec.yaml @@ -46,7 +46,8 @@ dependencies: google_nav_bar: ^5.0.6 mysql_client: ^0.0.27 args: 2.5.0 - gif: ^2.3.0 + # gif: ^2.3.0 + gif_view: ^1.0.0 intl: ^0.19.0 flutter_native_splash: ^2.4.1 #google_maps_flutter_web: ^0.5.10 From 9683e47c07bd003299b53d88825d508a7c8e9a4d Mon Sep 17 00:00:00 2001 From: yaso Date: Tue, 28 Jan 2025 11:56:32 +0200 Subject: [PATCH 2/5] update gif with new package --- .../mih_loading_circle.dart | 62 ++++++------------- 1 file changed, 19 insertions(+), 43 deletions(-) diff --git a/Frontend/lib/mih_components/mih_pop_up_messages/mih_loading_circle.dart b/Frontend/lib/mih_components/mih_pop_up_messages/mih_loading_circle.dart index 9e084019..a3560147 100644 --- a/Frontend/lib/mih_components/mih_pop_up_messages/mih_loading_circle.dart +++ b/Frontend/lib/mih_components/mih_pop_up_messages/mih_loading_circle.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import '../../main.dart'; -import 'package:gif/gif.dart'; +import 'package:gif_view/gif_view.dart'; class Mihloadingcircle extends StatefulWidget { const Mihloadingcircle({super.key}); @@ -9,9 +9,8 @@ class Mihloadingcircle extends StatefulWidget { State createState() => _MihloadingcircleState(); } -class _MihloadingcircleState extends State - with TickerProviderStateMixin { - late final GifController _controller; +class _MihloadingcircleState extends State { + // final GifController _controller = GifController(); late double popUpPaddingSize; late double popUpWidth; late double? popUpheight; @@ -37,60 +36,37 @@ class _MihloadingcircleState extends State @override void initState() { - _controller = GifController(vsync: this); //_controller.animateTo(26); super.initState(); } @override void dispose() { - _controller.dispose(); + // _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { - ImageProvider loading = - MzanziInnovationHub.of(context)!.theme.loadingImage(); - var size = MediaQuery.of(context).size; - setState(() { - width = size.width; - height = size.height; - }); checkScreenSize(); return Dialog( - //backgroundColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), child: Container( - padding: EdgeInsets.all(popUpPaddingSize), - width: 250, - height: 250, - decoration: BoxDecoration( - color: MzanziInnovationHub.of(context)!.theme.primaryColor(), - borderRadius: BorderRadius.circular(25.0), - border: Border.all( - color: MzanziInnovationHub.of(context)!.theme.primaryColor(), - width: 5.0), - ), - child: Gif( - image: loading, - controller: - _controller, // if duration and fps is null, original gif fps will be used. - fps: 15, - //duration: const Duration(seconds: 3), - autostart: Autostart.loop, - placeholder: (context) => const Center( - child: CircularProgressIndicator(), + padding: EdgeInsets.all(popUpPaddingSize), + width: 250, + height: 250, + decoration: BoxDecoration( + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + borderRadius: BorderRadius.circular(25.0), + border: Border.all( + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + width: 5.0), ), - onFetchCompleted: () { - _controller.reset(); - _controller.forward(); - }, - ), - ), - - // Center( - // child: MzanziInnovationHub.of(context)!.theme.loadingImage()), - // ), + child: GifView.asset( + MzanziInnovationHub.of(context)!.theme.loadingImageLocation(), + height: 200, + width: 200, + frameRate: 30, + )), ); } } From 65b8bec0b453953c982dee34adf472af2c5bac1e Mon Sep 17 00:00:00 2001 From: yaso Date: Tue, 28 Jan 2025 11:56:49 +0200 Subject: [PATCH 3/5] new get loading image theme function --- Frontend/lib/mih_theme/mih_theme.dart | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Frontend/lib/mih_theme/mih_theme.dart b/Frontend/lib/mih_theme/mih_theme.dart index 77ae9f85..5df7458e 100644 --- a/Frontend/lib/mih_theme/mih_theme.dart +++ b/Frontend/lib/mih_theme/mih_theme.dart @@ -10,6 +10,7 @@ class MyTheme { late String mode; late String screenType; late AssetImage loading; + late String loadingAssetText; late TargetPlatform platform; bool kIsWeb = const bool.fromEnvironment('dart.library.js_util'); // Options:- @@ -227,6 +228,24 @@ class MyTheme { return loading; } + String loadingImageLocation() { + if (mode == "Dark") { + loadingAssetText = 'images/loading_light.gif'; + } else { + loadingAssetText = 'images/loading_dark.gif'; + } + return loadingAssetText; + } + + String altLoadingImageLocation() { + if (mode == "Dark") { + loadingAssetText = 'images/loading_dark.gif'; + } else { + loadingAssetText = 'images/loading_light.gif'; + } + return loadingAssetText; + } + AssetImage aiLogoImage() { if (mode == "Dark") { return const AssetImage( From dd0dee5bd0464681a805a1500bc5ee501e48d26f Mon Sep 17 00:00:00 2001 From: yaso Date: Tue, 28 Jan 2025 11:57:29 +0200 Subject: [PATCH 4/5] bring back loading before auth --- 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 822f34f3..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 8fea2c49fc2ef5c6352a1b20c948a296579d18c0 Mon Sep 17 00:00:00 2001 From: yaso Date: Tue, 28 Jan 2025 11:58:27 +0200 Subject: [PATCH 5/5] remove unnessasary code and trigger bio when needed and not initstate --- .../authentication/biometric_check.dart | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Frontend/lib/mih_packages/authentication/biometric_check.dart b/Frontend/lib/mih_packages/authentication/biometric_check.dart index e440b3ee..60e59e9f 100644 --- a/Frontend/lib/mih_packages/authentication/biometric_check.dart +++ b/Frontend/lib/mih_packages/authentication/biometric_check.dart @@ -68,7 +68,7 @@ class _BiometricCheckState extends State { void authenticateUser() async { final bool canAuthWithBio = await _auth.canCheckBiometrics; - print("Biomentric Available: $canAuthWithBio"); + // print("Biomentric Available: $canAuthWithBio"); if (canAuthWithBio) { try { final bool didBioAuth = await _auth.authenticate( @@ -82,7 +82,7 @@ class _BiometricCheckState extends State { _isBioAuthenticated = true; }); } - print("Authenticated: $didBioAuth"); + // print("Authenticated: $didBioAuth"); } catch (error) { print(error); } @@ -123,22 +123,21 @@ class _BiometricCheckState extends State { ), //spacer const SizedBox(height: 25), - if (!_isBioAuthenticated) - Icon( - Icons.lock, - size: 200, - color: MzanziInnovationHub.of(context)! - .theme - .secondaryColor(), - ), - if (_isBioAuthenticated) - Icon( - Icons.lock_open, - size: 200, - color: MzanziInnovationHub.of(context)! - .theme - .secondaryColor(), - ), + // if (!_isBioAuthenticated) + Icon( + Icons.lock, + size: 200, + color: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + // if (_isBioAuthenticated) + // Icon( + // Icons.lock_open, + // size: 200, + // color: MzanziInnovationHub.of(context)! + // .theme + // .secondaryColor(), + // ), const SizedBox(height: 30), Container( alignment: Alignment.bottomCenter, @@ -187,7 +186,7 @@ class _BiometricCheckState extends State { void initState() { // TODO: implement initState super.initState(); - if (widget.firstBoot == true) authenticateUser(); + // if (widget.firstBoot == true) authenticateUser(); } @override @@ -206,6 +205,7 @@ class _BiometricCheckState extends State { personalSelected: widget.personalSelected, ); } else { + authenticateUser(); return getBiomentricAuthScreen(); } }