From fd003b010032fd98d132a15555d1cc3f98825dfa Mon Sep 17 00:00:00 2001 From: yaso Date: Mon, 22 Jun 2026 10:58:59 +0200 Subject: [PATCH 1/2] Fix blank screen before first load --- mih_ui/android/gradle.properties | 4 ++++ mih_ui/lib/main_dev.dart | 1 - mih_ui/lib/main_prod.dart | 3 +-- mih_ui/lib/mih_config/mih_go_router.dart | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mih_ui/android/gradle.properties b/mih_ui/android/gradle.properties index f018a618..475a6280 100644 --- a/mih_ui/android/gradle.properties +++ b/mih_ui/android/gradle.properties @@ -1,3 +1,7 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +# This builtInKotlin flag was added automatically by Flutter migrator +android.builtInKotlin=false +# This newDsl flag was added automatically by Flutter migrator +android.newDsl=false diff --git a/mih_ui/lib/main_dev.dart b/mih_ui/lib/main_dev.dart index 437c62b9..0776a77f 100644 --- a/mih_ui/lib/main_dev.dart +++ b/mih_ui/lib/main_dev.dart @@ -42,7 +42,6 @@ void main() async { debugPrint('APP INSTALLED!'); }); final GoRouter appRouter = MihGoRouter().mihRouter; - FlutterNativeSplash.remove(); runApp(MzansiInnovationHub( router: appRouter, )); diff --git a/mih_ui/lib/main_prod.dart b/mih_ui/lib/main_prod.dart index c8ce2935..8c1c5e74 100644 --- a/mih_ui/lib/main_prod.dart +++ b/mih_ui/lib/main_prod.dart @@ -33,8 +33,7 @@ void main() async { debugPrint('APP INSTALLED!'); }); final GoRouter appRouter = MihGoRouter().mihRouter; - FlutterNativeSplash.remove(); - runApp(MzansiInnovationHub( + (MzansiInnovationHub( router: appRouter, )); } diff --git a/mih_ui/lib/mih_config/mih_go_router.dart b/mih_ui/lib/mih_config/mih_go_router.dart index 2d5db6b4..36b7a22f 100644 --- a/mih_ui/lib/mih_config/mih_go_router.dart +++ b/mih_ui/lib/mih_config/mih_go_router.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'package:go_router/go_router.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_file_viewer/components/mih_print_prevew.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; @@ -85,6 +86,7 @@ class MihGoRouter { ]; KenLogger.success( "Redirect Check: ${state.fullPath}, isUserSignedIn: $isUserSignedIn"); + FlutterNativeSplash.remove(); if (!isUserSignedIn && !unauthenticatedPaths.contains(state.fullPath)) { return MihGoRouterPaths.mihAuthentication; } From 3d5fdde322800117794aceaf110236f91ad60126 Mon Sep 17 00:00:00 2001 From: yaso Date: Mon, 22 Jun 2026 11:19:15 +0200 Subject: [PATCH 2/2] copy link button on profile QR screens --- .../package_tools/mih_business_qr_code.dart | 25 ++++++++++++++++++ .../package_tools/mih_personal_qr_code.dart | 26 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart b/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart index e4a445e2..f03873a4 100644 --- a/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart +++ b/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart @@ -5,6 +5,7 @@ import 'package:file_picker/file_picker.dart'; import 'package:file_saver/file_saver.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_speed_dial/flutter_speed_dial.dart'; import 'package:go_router/go_router.dart'; import 'package:ken_logger/ken_logger.dart'; @@ -403,6 +404,30 @@ class _MihBusinessQrCodeState extends State { ); }, ), + SpeedDialChild( + child: Icon( + Icons.copy_rounded, + color: MihColors.primary(), + ), + label: "Copy Link", + labelBackgroundColor: MihColors.green(), + labelStyle: TextStyle( + color: MihColors.primary(), + fontWeight: FontWeight.bold, + ), + backgroundColor: MihColors.green(), + onTap: () async { + await Clipboard.setData( + ClipboardData(text: "$qrCodedata${business.business_id}"), + ); + if (!context.mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + MihSnackBar( + child: Text("Link Copied!"), + ), + ); + }, + ), ]), ) ], diff --git a/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart b/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart index 232c399a..b9f86d4f 100644 --- a/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart +++ b/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart @@ -4,6 +4,7 @@ import 'package:file_picker/file_picker.dart'; import 'package:file_saver/file_saver.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_speed_dial/flutter_speed_dial.dart'; import 'package:go_router/go_router.dart'; import 'package:ken_logger/ken_logger.dart'; @@ -402,6 +403,31 @@ class _MihPersonalQrCodeState extends State { ); }, ), + SpeedDialChild( + child: Icon( + Icons.copy_rounded, + color: MihColors.primary(), + ), + label: "Copy Link", + labelBackgroundColor: MihColors.green(), + labelStyle: TextStyle( + color: MihColors.primary(), + fontWeight: FontWeight.bold, + ), + backgroundColor: MihColors.green(), + onTap: () async { + await Clipboard.setData( + ClipboardData( + text: "$_qrCodedata${user.username.toLowerCase()}"), + ); + if (!context.mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + MihSnackBar( + child: Text("Link Copied!"), + ), + ); + }, + ), ]), ) ],