From 62eafaf7660ae90219b304d36764c07d8e516311 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Thu, 2 Jul 2026 09:59:35 +0200 Subject: [PATCH] ios build update, about mih count fix & new get file api --- mih_api_hub/Minio_Storage/minioConnection.py | 14 +- mih_api_hub/routers/fileStorage.py | 22 +- mih_ui/ios/Podfile.lock | 334 +----------------- mih_ui/ios/Runner.xcodeproj/project.pbxproj | 29 +- .../xcshareddata/swiftpm/Package.resolved | 149 ++++++++ .../about_mih/package_tools/mih_info.dart | 2 +- .../lib/mih_services/mih_file_services.dart | 55 ++- mih_ui/pubspec.yaml | 2 +- 8 files changed, 236 insertions(+), 371 deletions(-) create mode 100644 mih_ui/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/mih_api_hub/Minio_Storage/minioConnection.py b/mih_api_hub/Minio_Storage/minioConnection.py index 106d0010..25a848df 100644 --- a/mih_api_hub/Minio_Storage/minioConnection.py +++ b/mih_api_hub/Minio_Storage/minioConnection.py @@ -5,21 +5,21 @@ from dotenv import load_dotenv load_dotenv() minioAccess = os.getenv("MINIO_ACCESS_KEY") minioSecret = os.getenv("MINIO_SECRET_KEY") +minioEndpoint = os.getenv("MINIO_ENDPOINT", "mih-minio:9000") +minioSecure = os.getenv("MINIO_SECURE", "False") in ("True") def minioConnect(env): if(env == "Dev"): return Minio( - endpoint="mih-minio:9000", - # "minio.mzansi-innovation-hub.co.za", + endpoint=minioEndpoint, access_key=minioAccess, secret_key=minioSecret, - secure=False + secure=minioSecure, ) else: return Minio( - # endpoint="mih-minio:9000", - endpoint="minio.mzansi-innovation-hub.co.za", + endpoint=minioEndpoint, access_key=minioAccess, secret_key=minioSecret, - secure=True - ) \ No newline at end of file + secure=minioSecure, + ) diff --git a/mih_api_hub/routers/fileStorage.py b/mih_api_hub/routers/fileStorage.py index 60ddd6a7..a515f515 100644 --- a/mih_api_hub/routers/fileStorage.py +++ b/mih_api_hub/routers/fileStorage.py @@ -5,7 +5,7 @@ from typing import List import requests from fastapi import APIRouter, HTTPException, File, UploadFile, Form -from fastapi.responses import FileResponse, JSONResponse +from fastapi.responses import FileResponse, JSONResponse, StreamingResponse from pydantic import BaseModel @@ -108,6 +108,26 @@ class claimStatementUploud(BaseModel): logo_path: str sig_path: str +@router.get("/v2/minio/pull/file/{env}/{app_id}/{folder}/{file_name}", tags=["Minio"]) +async def pullFileFromMinioV2(app_id: str, folder: str, file_name: str, env: str): + object_path = f"{app_id}/{folder}/{file_name}" + try: + client = Minio_Storage.minioConnection.minioConnect(env) + + response = client.get_object(bucket_name="mih", object_name=object_path) + + ext = file_name.split(".")[-1].lower() + content_type = f"image/{ext}" if ext in ["png", "jpg", "jpeg", "gif", "webp"] else "application/octet-stream" + + return StreamingResponse( + io.BytesIO(response.read()), + media_type=content_type, + headers={"Cache-Control": "public, max-age=31536000"} + ) + + except Exception as error: + raise HTTPException(status_code=404, detail=f"File not found or MinIO connection failed: {str(error)}") + @router.get("/minio/pull/file/{env}/{app_id}/{folder}/{file_name}", tags=["Minio"]) async def pull_File_from_user(app_id: str, folder: str, file_name: str, env: str): #, session: SessionContainer = Depends(verify_session()) path = app_id + "/" + folder + "/" + file_name diff --git a/mih_ui/ios/Podfile.lock b/mih_ui/ios/Podfile.lock index 3d76d0db..c32a40ff 100644 --- a/mih_ui/ios/Podfile.lock +++ b/mih_ui/ios/Podfile.lock @@ -1,360 +1,52 @@ PODS: - - app_settings (6.1.2): - - Flutter - - AppCheckCore (11.2.0): - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) - - PromisesObjC (~> 2.4) - - camera_avfoundation (0.0.1): - - Flutter - - device_info_plus (0.0.1): - - Flutter - - DKImagePickerController/Core (4.3.9): - - DKImagePickerController/ImageDataManager - - DKImagePickerController/Resource - - DKImagePickerController/ImageDataManager (4.3.9) - - DKImagePickerController/PhotoGallery (4.3.9): - - DKImagePickerController/Core - - DKPhotoGallery - - DKImagePickerController/Resource (4.3.9) - - DKPhotoGallery (0.0.19): - - DKPhotoGallery/Core (= 0.0.19) - - DKPhotoGallery/Model (= 0.0.19) - - DKPhotoGallery/Preview (= 0.0.19) - - DKPhotoGallery/Resource (= 0.0.19) - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Core (0.0.19): - - DKPhotoGallery/Model - - DKPhotoGallery/Preview - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Model (0.0.19): - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Preview (0.0.19): - - DKPhotoGallery/Model - - DKPhotoGallery/Resource - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Resource (0.0.19): - - SDWebImage - - SwiftyGif - - FBAudienceNetwork (6.20.1) - - file_picker (0.0.1): - - DKImagePickerController/PhotoGallery - - Flutter - - file_saver (0.0.1): - - Flutter - - file_selector_ios (0.0.1): - - Flutter - - Firebase/Auth (12.8.0): - - Firebase/CoreOnly - - FirebaseAuth (~> 12.8.0) - - Firebase/CoreOnly (12.8.0): - - FirebaseCore (~> 12.8.0) - - firebase_app_check (0.4.1-2): - - Firebase/CoreOnly (~> 12.8.0) - - firebase_core - - FirebaseAppCheck (~> 12.8.0) - - Flutter - - firebase_auth (6.1.2): - - Firebase/Auth (= 12.8.0) - - firebase_core - - Flutter - - firebase_core (4.4.0): - - Firebase/CoreOnly (= 12.8.0) - - Flutter - - FirebaseAppCheck (12.8.0): - - AppCheckCore (~> 11.0) - - FirebaseAppCheckInterop (~> 12.8.0) - - FirebaseCore (~> 12.8.0) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/UserDefaults (~> 8.1) - - FirebaseAppCheckInterop (12.8.0) - - FirebaseAuth (12.8.0): - - FirebaseAppCheckInterop (~> 12.8.0) - - FirebaseAuthInterop (~> 12.8.0) - - FirebaseCore (~> 12.8.0) - - FirebaseCoreExtension (~> 12.8.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/Environment (~> 8.1) - - GTMSessionFetcher/Core (< 6.0, >= 3.4) - - RecaptchaInterop (~> 101.0) - - FirebaseAuthInterop (12.8.0) - - FirebaseCore (12.8.0): - - FirebaseCoreInternal (~> 12.8.0) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/Logger (~> 8.1) - - FirebaseCoreExtension (12.8.0): - - FirebaseCore (~> 12.8.0) - - FirebaseCoreInternal (12.8.0): - - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FBAudienceNetwork (6.21.1) - fl_downloader (0.0.1): - Flutter - Flutter (1.0.0) - - flutter_native_splash (2.4.3): - - Flutter - flutter_tts (0.0.1): - Flutter - - geolocator_apple (1.2.0): + - gma_mediation_meta (1.5.2): - Flutter - - FlutterMacOS - - gma_mediation_meta (1.4.1): - - Flutter - - GoogleMobileAdsMediationFacebook (~> 6.20.1.0) - - Google-Mobile-Ads-SDK (12.2.0): + - GoogleMobileAdsMediationFacebook (~> 6.21.1.0) + - Google-Mobile-Ads-SDK (13.6.0): - GoogleUserMessagingPlatform (>= 1.1) - - google_mobile_ads (6.0.0): - - Flutter - - Google-Mobile-Ads-SDK (~> 12.2.0) - - webview_flutter_wkwebview - - GoogleMobileAdsMediationFacebook (6.20.1.0): - - FBAudienceNetwork (= 6.20.1) - - Google-Mobile-Ads-SDK (~> 12.0) + - GoogleMobileAdsMediationFacebook (6.21.1.1.1): + - FBAudienceNetwork (= 6.21.1) + - Google-Mobile-Ads-SDK (~> 13.4) - GoogleUserMessagingPlatform (3.1.0) - - GoogleUtilities/AppDelegateSwizzler (8.1.0): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Privacy - - GoogleUtilities/Environment (8.1.0): - - GoogleUtilities/Privacy - - GoogleUtilities/Logger (8.1.0): - - GoogleUtilities/Environment - - GoogleUtilities/Privacy - - GoogleUtilities/Network (8.1.0): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Privacy - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (8.1.0)": - - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (8.1.0) - - GoogleUtilities/Reachability (8.1.0): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (8.1.0): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GTMSessionFetcher/Core (5.0.0) - - image_picker_ios (0.0.1): - - Flutter - - local_auth_darwin (0.0.1): - - Flutter - - FlutterMacOS - - mobile_scanner (7.0.0): - - Flutter - - FlutterMacOS - - package_info_plus (0.4.5): - - Flutter - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - - printing (1.0.0): - - Flutter - - PromisesObjC (2.4.0) - - quick_actions_ios (0.0.1): - - Flutter - - RecaptchaInterop (101.0.0) - - record_ios (1.1.0): - - Flutter - - screen_brightness_ios (0.1.0): - - Flutter - - SDWebImage (5.21.5): - - SDWebImage/Core (= 5.21.5) - - SDWebImage/Core (5.21.5) - - share_plus (0.0.1): - - Flutter - - shared_preferences_foundation (0.0.1): - - Flutter - - FlutterMacOS - - sqflite_darwin (0.0.4): - - Flutter - - FlutterMacOS - - SwiftyGif (5.4.5) - - syncfusion_flutter_pdfviewer (0.0.1): - - Flutter - - url_launcher_ios (0.0.1): - - Flutter - - webview_flutter_wkwebview (0.0.1): - - Flutter - - FlutterMacOS DEPENDENCIES: - - app_settings (from `.symlinks/plugins/app_settings/ios`) - - camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`) - - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - - file_picker (from `.symlinks/plugins/file_picker/ios`) - - file_saver (from `.symlinks/plugins/file_saver/ios`) - - file_selector_ios (from `.symlinks/plugins/file_selector_ios/ios`) - - firebase_app_check (from `.symlinks/plugins/firebase_app_check/ios`) - - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - fl_downloader (from `.symlinks/plugins/fl_downloader/ios`) - Flutter (from `Flutter`) - - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_tts (from `.symlinks/plugins/flutter_tts/ios`) - - geolocator_apple (from `.symlinks/plugins/geolocator_apple/darwin`) - gma_mediation_meta (from `.symlinks/plugins/gma_mediation_meta/ios`) - - google_mobile_ads (from `.symlinks/plugins/google_mobile_ads/ios`) - - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`) - - mobile_scanner (from `.symlinks/plugins/mobile_scanner/darwin`) - - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - - printing (from `.symlinks/plugins/printing/ios`) - - quick_actions_ios (from `.symlinks/plugins/quick_actions_ios/ios`) - - record_ios (from `.symlinks/plugins/record_ios/ios`) - - screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`) - - share_plus (from `.symlinks/plugins/share_plus/ios`) - - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - - syncfusion_flutter_pdfviewer (from `.symlinks/plugins/syncfusion_flutter_pdfviewer/ios`) - - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`) SPEC REPOS: trunk: - - AppCheckCore - - DKImagePickerController - - DKPhotoGallery - FBAudienceNetwork - - Firebase - - FirebaseAppCheck - - FirebaseAppCheckInterop - - FirebaseAuth - - FirebaseAuthInterop - - FirebaseCore - - FirebaseCoreExtension - - FirebaseCoreInternal - Google-Mobile-Ads-SDK - GoogleMobileAdsMediationFacebook - GoogleUserMessagingPlatform - - GoogleUtilities - - GTMSessionFetcher - - PromisesObjC - - RecaptchaInterop - - SDWebImage - - SwiftyGif EXTERNAL SOURCES: - app_settings: - :path: ".symlinks/plugins/app_settings/ios" - camera_avfoundation: - :path: ".symlinks/plugins/camera_avfoundation/ios" - device_info_plus: - :path: ".symlinks/plugins/device_info_plus/ios" - file_picker: - :path: ".symlinks/plugins/file_picker/ios" - file_saver: - :path: ".symlinks/plugins/file_saver/ios" - file_selector_ios: - :path: ".symlinks/plugins/file_selector_ios/ios" - firebase_app_check: - :path: ".symlinks/plugins/firebase_app_check/ios" - firebase_auth: - :path: ".symlinks/plugins/firebase_auth/ios" - firebase_core: - :path: ".symlinks/plugins/firebase_core/ios" fl_downloader: :path: ".symlinks/plugins/fl_downloader/ios" Flutter: :path: Flutter - flutter_native_splash: - :path: ".symlinks/plugins/flutter_native_splash/ios" flutter_tts: :path: ".symlinks/plugins/flutter_tts/ios" - geolocator_apple: - :path: ".symlinks/plugins/geolocator_apple/darwin" gma_mediation_meta: :path: ".symlinks/plugins/gma_mediation_meta/ios" - google_mobile_ads: - :path: ".symlinks/plugins/google_mobile_ads/ios" - image_picker_ios: - :path: ".symlinks/plugins/image_picker_ios/ios" - local_auth_darwin: - :path: ".symlinks/plugins/local_auth_darwin/darwin" - mobile_scanner: - :path: ".symlinks/plugins/mobile_scanner/darwin" - package_info_plus: - :path: ".symlinks/plugins/package_info_plus/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/darwin" - printing: - :path: ".symlinks/plugins/printing/ios" - quick_actions_ios: - :path: ".symlinks/plugins/quick_actions_ios/ios" - record_ios: - :path: ".symlinks/plugins/record_ios/ios" - screen_brightness_ios: - :path: ".symlinks/plugins/screen_brightness_ios/ios" - share_plus: - :path: ".symlinks/plugins/share_plus/ios" - shared_preferences_foundation: - :path: ".symlinks/plugins/shared_preferences_foundation/darwin" - sqflite_darwin: - :path: ".symlinks/plugins/sqflite_darwin/darwin" - syncfusion_flutter_pdfviewer: - :path: ".symlinks/plugins/syncfusion_flutter_pdfviewer/ios" - url_launcher_ios: - :path: ".symlinks/plugins/url_launcher_ios/ios" - webview_flutter_wkwebview: - :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" SPEC CHECKSUMS: - app_settings: 0341ec6daa4f0c50f5a421bf0ad7c36084db6e90 - AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f - camera_avfoundation: be3be85408cd4126f250386828e9b1dfa40ab436 - device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe - DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c - DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 - FBAudienceNetwork: 08e86d63a05b3a5a59414af12e4af8d756943c80 - file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be - file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 - file_selector_ios: f92e583d43608aebc2e4a18daac30b8902845502 - Firebase: 9a58fdbc9d8655ed7b79a19cf9690bb007d3d46d - firebase_app_check: 9756167f67afd4844027314bea522e42599631b5 - firebase_auth: 2ebdb4dbe0da3a75585694dcba711f7a8a926601 - firebase_core: ee30637e6744af8e0c12a6a1e8a9718506ec2398 - FirebaseAppCheck: 11da425929a45c677d537adfff3520ccd57c1690 - FirebaseAppCheckInterop: ba3dc604a89815379e61ec2365101608d365cf7d - FirebaseAuth: 4c289b1a43f5955283244a55cf6bd616de344be5 - FirebaseAuthInterop: 95363fe96493cb4f106656666a0768b420cba090 - FirebaseCore: 0dbad74bda10b8fb9ca34ad8f375fb9dd3ebef7c - FirebaseCoreExtension: 6605938d51f765d8b18bfcafd2085276a252bee2 - FirebaseCoreInternal: fe5fa466aeb314787093a7dce9f0beeaad5a2a21 - fl_downloader: dc99aa8dd303f862cccb830087f37acc9b0156ee + FBAudienceNetwork: 85d18a65c9e35bc426bd4664cf3ae2a1172d7b60 + fl_downloader: e9913c2722a6819ac7f5c08de5e7b59ada200ca9 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 - flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf - flutter_tts: b88dbc8655d3dc961bc4a796e4e16a4cc1795833 - geolocator_apple: ab36aa0e8b7d7a2d7639b3b4e48308394e8cef5e - gma_mediation_meta: 44defcf3b61414cdca65c0f897360e31b9332a09 - Google-Mobile-Ads-SDK: 1dfb0c3cb46c7e2b00b0f4de74a1e06d9ea25d67 - google_mobile_ads: 535223588a6791b7a3cc3513a1bc7b89d12f3e62 - GoogleMobileAdsMediationFacebook: b11a92ae3bfdae19853b882252b7e62791c18162 + flutter_tts: 35ac3c7d42412733e795ea96ad2d7e05d0a75113 + gma_mediation_meta: cfa5493a4d585032e7789848190d320090c71709 + Google-Mobile-Ads-SDK: 6e501ace4af8d63e967bd45497c8b2b05821163d + GoogleMobileAdsMediationFacebook: 4420c648e278f6821001048d1f152dd74245f759 GoogleUserMessagingPlatform: befe603da6501006420c206222acd449bba45a9c - GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 - GTMSessionFetcher: 02d6e866e90bc236f48a703a041dfe43e6221a29 - image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a - local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 - mobile_scanner: 9157936403f5a0644ca3779a38ff8404c5434a93 - package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 - printing: 54ff03f28fe9ba3aa93358afb80a8595a071dd07 - PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - quick_actions_ios: 4b07fb49d8d8f3518d7565fbb7a91014067a7d82 - RecaptchaInterop: 11e0b637842dfb48308d242afc3f448062325aba - record_ios: f75fa1d57f840012775c0e93a38a7f3ceea1a374 - screen_brightness_ios: 9953fd7da5bd480f1a93990daeec2eb42d4f3b52 - SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838 - share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 - sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 - SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - syncfusion_flutter_pdfviewer: 90dc48305d2e33d4aa20681d1e98ddeda891bc14 - url_launcher_ios: 694010445543906933d732453a59da0a173ae33d - webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2 PODFILE CHECKSUM: 1057d7c44bf0ab9d1ed8a78d57b4ebda5272e992 diff --git a/mih_ui/ios/Runner.xcodeproj/project.pbxproj b/mih_ui/ios/Runner.xcodeproj/project.pbxproj index 6e608c2c..de4811ed 100644 --- a/mih_ui/ios/Runner.xcodeproj/project.pbxproj +++ b/mih_ui/ios/Runner.xcodeproj/project.pbxproj @@ -13,11 +13,11 @@ 71E3C54FEF20104FD7A5C7E5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 277EDD110F2042FAAC4E5333 /* Pods_Runner.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 75DB4569FB42001E83B22FC4 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 486D5A0EDC898EC440394271 /* GoogleService-Info.plist */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; BB6B9D1B18FA0FA6EA8CED1C /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A290F9A90D1B4F51A7E7DD19 /* Pods_RunnerTests.framework */; }; - 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -59,6 +59,7 @@ 52DEBFF4174C303DD5BF01CA /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; @@ -69,7 +70,6 @@ 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9885C899E803B0DD96117EDD /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; A290F9A90D1B4F51A7E7DD19 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -196,9 +196,6 @@ productType = "com.apple.product-type.bundle.unit-test"; }; 97C146ED1CF9000F007C117D /* Runner */ = { - packageProductDependencies = ( - 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, - ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( @@ -217,6 +214,9 @@ dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -225,9 +225,6 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { - packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, - ); isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; @@ -253,6 +250,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -488,7 +488,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -515,6 +515,7 @@ INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = MIH; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -626,7 +627,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -678,7 +679,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -707,6 +708,7 @@ INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = MIH; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -737,6 +739,7 @@ INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = MIH; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -783,12 +786,14 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; /* End XCLocalSwiftPackageReference section */ + /* Begin XCSwiftPackageProductDependency section */ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { isa = XCSwiftPackageProductDependency; diff --git a/mih_ui/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/mih_ui/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 00000000..e2607570 --- /dev/null +++ b/mih_ui/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,149 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5", + "version" : "1.2024072200.0" + } + }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "bb4002485ff867768dec13bf904a2ddb050bd1b1", + "version" : "11.3.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "42e81d245e30e49ea6a5830cf2842d44a1591270", + "version" : "12.15.0" + } + }, + { + "identity" : "google-ads-on-device-conversion-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", + "state" : { + "revision" : "dc39082d8881109d35b94b1c122164c0e8d08a55", + "version" : "3.6.1" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "144855f40d8668927f256a3045f7fdc4c3f4338b", + "version" : "12.15.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "617af071af9aa1d6a091d59a202910ac482128f9", + "version" : "10.1.0" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "9f183ae842be978784f2963a343682e0c46d8fb3", + "version" : "8.1.2" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6", + "version" : "1.69.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "c0ac7575d70050c2973ba2318bd5af47f8e8153a", + "version" : "5.3.0" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe", + "version" : "101.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", + "version" : "1.22.5" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "3851d94a41890dea16dc3db34caf60e585cb4163", + "version" : "2.30910.1" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837", + "version" : "2.4.1" + } + }, + { + "identity" : "recaptcha-enterprise-mobile-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/GoogleCloudPlatform/recaptcha-enterprise-mobile-sdk.git", + "state" : { + "revision" : "85588690041e63784be7bcb4b631c32565127ba2", + "version" : "18.9.1" + } + }, + { + "identity" : "swift-package-manager-google-mobile-ads", + "kind" : "remoteSourceControl", + "location" : "https://github.com/googleads/swift-package-manager-google-mobile-ads", + "state" : { + "revision" : "7651abff585dc8dacd1744222d5f03bdd2a8532a", + "version" : "13.6.0" + } + }, + { + "identity" : "swift-package-manager-google-user-messaging-platform", + "kind" : "remoteSourceControl", + "location" : "https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git", + "state" : { + "revision" : "13b248eaa73b7826f0efb1bcf455e251d65ecb1b", + "version" : "3.1.0" + } + } + ], + "version" : 2 +} diff --git a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart index 9f24529b..9ef71ae5 100644 --- a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart +++ b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart @@ -67,7 +67,7 @@ class _MihInfoState extends State { children: [ SizedBox( child: Text( - "${aboutProvider.businessCount}", + "${aboutProvider.userCount}", style: TextStyle( fontWeight: FontWeight.bold, fontSize: 23, diff --git a/mih_ui/lib/mih_services/mih_file_services.dart b/mih_ui/lib/mih_services/mih_file_services.dart index ac9f11c1..7b7138a1 100644 --- a/mih_ui/lib/mih_services/mih_file_services.dart +++ b/mih_ui/lib/mih_services/mih_file_services.dart @@ -17,23 +17,7 @@ class MihFileApi { static Future getMinioFileUrl( String filePath, ) async { - // loadingPopUp(context); - // print("here"); - // var url = - // "${AppEnviroment.baseApiUrl}/minio/pull/file/${AppEnviroment.getEnv()}/$filePath"; - // var response = await http.get(Uri.parse(url)); String fileUrl = ""; - // print(response.statusCode); - // if (response.statusCode == 200) { - // String body = response.body; - // var decodedData = jsonDecode(body); - - // fileUrl = decodedData['minioURL']; - // } else { - // fileUrl = ""; - // } - // Navigator.of(context).pop(); // Pop loading dialog - // return fileUrl; try { var url = "${AppEnviroment.baseApiUrl}/minio/pull/file/${AppEnviroment.getEnv()}/$filePath"; @@ -41,19 +25,35 @@ class MihFileApi { if (response.statusCode == 200) { var decodedData = jsonDecode(response.body); fileUrl = decodedData['minioURL']; - } else { - // internetConnectionPopUp(context); - // KenLogger.error("Get File Error: $url"); - // KenLogger.error("Get File Error: ${response.statusCode}"); - // KenLogger.error("Get File Error: ${response.body}"); - } + } else {} } catch (e) { - // internetConnectionPopUp(context); KenLogger.error("Error getting url"); - } finally { - // Navigator.of(context).pop(); // Always pop loading dialog - } - // KenLogger.success("File URL: $fileUrl"); + } finally {} + if (AppEnviroment.getEnv() == "Dev" && kIsWeb) { + fileUrl = fileUrl.replaceAll("10.0.2.2", "127.0.0.1"); + } else if (AppEnviroment.getEnv() == "Dev" && Platform.isIOS) { + fileUrl = fileUrl.replaceAll("10.0.2.2", "127.0.0.1"); + } else if (AppEnviroment.getEnv() == "Dev" && Platform.isLinux) { + fileUrl = fileUrl.replaceAll("10.0.2.2", "127.0.0.1"); + } + return fileUrl; + } + + static Future getMinioFileUrlV2( + String filePath, + ) async { + String fileUrl = ""; + try { + var url = + "${AppEnviroment.baseApiUrl}/minio/pull/file/${AppEnviroment.getEnv()}/$filePath"; + var response = await http.get(Uri.parse(url)); + if (response.statusCode == 200) { + var decodedData = jsonDecode(response.body); + fileUrl = decodedData['minioURL']; + } else {} + } catch (e) { + KenLogger.error("Error getting url"); + } finally {} if (AppEnviroment.getEnv() == "Dev" && kIsWeb) { fileUrl = fileUrl.replaceAll("10.0.2.2", "127.0.0.1"); } else if (AppEnviroment.getEnv() == "Dev" && Platform.isIOS) { @@ -61,7 +61,6 @@ class MihFileApi { } else if (AppEnviroment.getEnv() == "Dev" && Platform.isLinux) { fileUrl = fileUrl.replaceAll("10.0.2.2", "127.0.0.1"); } - // KenLogger.success("File URL: $fileUrl"); return fileUrl; } diff --git a/mih_ui/pubspec.yaml b/mih_ui/pubspec.yaml index 5867089b..505f1e82 100644 --- a/mih_ui/pubspec.yaml +++ b/mih_ui/pubspec.yaml @@ -46,7 +46,7 @@ dependencies: #app_settings: ^6.1.1 pwa_install: ^0.0.6 google_mobile_ads: ^8.0.0 - gma_mediation_meta: ^1.4.1 + gma_mediation_meta: ^1.5.2 redacted: ^1.0.13 custom_rating_bar: ^3.0.0 country_code_picker: ^3.3.0