From 7adaa8348974667f1a8e40cef70852dc8eadc69f Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 29 Jul 2025 13:07:59 +0200 Subject: [PATCH] get location on package start --- .../mzansi_directory/mzansi_directory.dart | 43 ++++++++++++++++--- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart b/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart index d18bf897..3233fba4 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart @@ -1,10 +1,12 @@ import 'package:flutter/material.dart'; +import 'package:geolocator/geolocator.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart'; +import 'package:mzansi_innovation_hub/mih_services/mih_location_services.dart'; class MzansiDirectory extends StatefulWidget { final MzansiDirectoryArguments arguments; @@ -19,6 +21,8 @@ class MzansiDirectory extends StatefulWidget { class _MzansiDirectoryState extends State { int _selcetedIndex = 0; + late Future futurePosition = + MIHLocationAPI().getGPSPosition(context); @override void initState() { @@ -49,12 +53,41 @@ class _MzansiDirectoryState extends State { List getToolBody() { List toolBodies = [ - MihSearchMzansi( - startUpSearch: widget.arguments.startUpSearch, - personalSearch: widget.arguments.personalSearch, - ), + FutureBuilder( + future: futurePosition, + builder: (context, asyncSnapshot) { + String myLocation = ""; + if (asyncSnapshot.connectionState == ConnectionState.waiting) { + myLocation = "Getting Your GPS Location Ready"; + } else { + myLocation = asyncSnapshot.data + .toString() + .replaceAll("Latitude: ", "") + .replaceAll("Longitude: ", ""); + } + return MihSearchMzansi( + startUpSearch: widget.arguments.startUpSearch, + personalSearch: widget.arguments.personalSearch, + myLocation: myLocation, + ); + }), // MihContacts(), - MihFavouriteBusinesses(), + FutureBuilder( + future: futurePosition, + builder: (context, asyncSnapshot) { + String myLocation = ""; + if (asyncSnapshot.connectionState == ConnectionState.waiting) { + myLocation = "Getting Your GPS Location Ready"; + } else { + myLocation = asyncSnapshot.data + .toString() + .replaceAll("Latitude: ", "") + .replaceAll("Longitude: ", ""); + } + return MihFavouriteBusinesses( + myLocation: myLocation, + ); + }), ]; return toolBodies; }