From 1708218a8f2d269b6874468bd366d22c08c69566 Mon Sep 17 00:00:00 2001 From: jebeli Date: Sat, 6 Sep 2025 15:16:22 +0330 Subject: [PATCH] fixed ios videocast --- ios/Podfile.lock | 252 ++++++++++-------- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + ios/Runner/AppDelegate.swift | 2 +- lib/services/app_initalizer.dart | 6 +- lib/views/home/home.dart | 134 ++-------- lib/views/home/main/widgets/podcast_item.dart | 1 + .../studio_details/studio_details.mobile.dart | 22 +- .../studio_details/studio_details.web.dart | 44 +-- .../widgets/studio_details_widget.dart | 8 +- lib/views/story_viewer/story_viewer_page.dart | 11 +- .../.plugin_symlinks/app_links_linux | 1 + .../.plugin_symlinks/device_info_plus | 1 + .../ephemeral/.plugin_symlinks/file_picker | 1 + .../.plugin_symlinks/file_selector_linux | 1 + .../flutter_local_notifications_linux | 1 + .../flutter_secure_storage_linux | 1 + linux/flutter/ephemeral/.plugin_symlinks/gtk | 1 + .../.plugin_symlinks/image_picker_linux | 1 + .../.plugin_symlinks/package_info_plus | 1 + .../.plugin_symlinks/path_provider_linux | 1 + .../ephemeral/.plugin_symlinks/record_linux | 1 + .../ephemeral/.plugin_symlinks/sentry_flutter | 1 + .../.plugin_symlinks/url_launcher_linux | 1 + .../ephemeral/.plugin_symlinks/wakelock_plus | 1 + linux/flutter/generated_plugin_registrant.cc | 35 +++ linux/flutter/generated_plugin_registrant.h | 15 ++ linux/flutter/generated_plugins.cmake | 29 ++ macos/Flutter/GeneratedPluginRegistrant.swift | 52 ++++ .../ephemeral/Flutter-Generated.xcconfig | 11 + .../ephemeral/flutter_export_environment.sh | 12 + macos/Podfile | 42 +++ pubspec.lock | 16 +- pubspec.yaml | 2 +- 33 files changed, 438 insertions(+), 271 deletions(-) create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/app_links_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/device_info_plus create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/file_picker create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/flutter_local_notifications_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/gtk create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/package_info_plus create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/record_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/sentry_flutter create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Flutter/ephemeral/Flutter-Generated.xcconfig create mode 100755 macos/Flutter/ephemeral/flutter_export_environment.sh create mode 100644 macos/Podfile diff --git a/ios/Podfile.lock b/ios/Podfile.lock index db378ff..ce4b8ed 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,9 +1,10 @@ PODS: + - app_links (0.0.2): + - Flutter - audio_session (0.0.1): - Flutter - - awesome_notifications (0.8.1): + - device_info_plus (0.0.1): - Flutter - - IosAwnCore (~> 0.8.0) - DKImagePickerController/Core (4.3.9): - DKImagePickerController/ImageDataManager - DKImagePickerController/Resource @@ -38,97 +39,101 @@ PODS: - file_picker (0.0.1): - DKImagePickerController/PhotoGallery - Flutter - - Firebase/CoreOnly (10.29.0): - - FirebaseCore (= 10.29.0) - - Firebase/Messaging (10.29.0): + - Firebase/CoreOnly (11.10.0): + - FirebaseCore (~> 11.10.0) + - Firebase/Messaging (11.10.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 10.29.0) - - firebase_core (3.3.0): - - Firebase/CoreOnly (= 10.29.0) + - FirebaseMessaging (~> 11.10.0) + - firebase_core (3.13.0): + - Firebase/CoreOnly (= 11.10.0) - Flutter - - firebase_messaging (15.0.4): - - Firebase/Messaging (= 10.29.0) + - firebase_messaging (15.2.5): + - Firebase/Messaging (= 11.10.0) - firebase_core - Flutter - - FirebaseCore (10.29.0): - - FirebaseCoreInternal (~> 10.0) - - GoogleUtilities/Environment (~> 7.12) - - GoogleUtilities/Logger (~> 7.12) - - FirebaseCoreInternal (10.29.0): - - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseInstallations (10.29.0): - - FirebaseCore (~> 10.0) - - GoogleUtilities/Environment (~> 7.8) - - GoogleUtilities/UserDefaults (~> 7.8) - - PromisesObjC (~> 2.1) - - FirebaseMessaging (10.29.0): - - FirebaseCore (~> 10.0) - - FirebaseInstallations (~> 10.0) - - GoogleDataTransport (~> 9.3) - - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - - GoogleUtilities/Environment (~> 7.8) - - GoogleUtilities/Reachability (~> 7.8) - - GoogleUtilities/UserDefaults (~> 7.8) - - nanopb (< 2.30911.0, >= 2.30908.0) + - FirebaseCore (11.10.0): + - FirebaseCoreInternal (~> 11.10.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/Logger (~> 8.0) + - FirebaseCoreInternal (11.10.0): + - "GoogleUtilities/NSData+zlib (~> 8.0)" + - FirebaseInstallations (11.10.0): + - FirebaseCore (~> 11.10.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - PromisesObjC (~> 2.4) + - FirebaseMessaging (11.10.0): + - FirebaseCore (~> 11.10.0) + - FirebaseInstallations (~> 11.0) + - GoogleDataTransport (~> 10.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/Reachability (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - nanopb (~> 3.30910.0) - Flutter (1.0.0) - flutter_background_service_ios (0.0.3): - Flutter - flutter_downloader (0.0.1): - Flutter + - flutter_inappwebview_ios (0.0.1): + - Flutter + - flutter_inappwebview_ios/Core (= 0.0.1) + - OrderedSet (~> 6.0.3) + - flutter_inappwebview_ios/Core (0.0.1): + - Flutter + - OrderedSet (~> 6.0.3) - flutter_local_notifications (0.0.1): - Flutter - flutter_secure_storage (6.0.0): - Flutter - - flutter_sound (9.6.0): + - flutter_sound (9.28.0): - Flutter - - flutter_sound_core (= 9.6.0) - - flutter_sound_core (9.6.0) - - flutter_vibrate (0.0.1): - - Flutter - - GoogleDataTransport (9.4.1): - - GoogleUtilities/Environment (~> 7.7) - - nanopb (< 2.30911.0, >= 2.30908.0) - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/AppDelegateSwizzler (7.13.3): + - flutter_sound_core (= 9.28.0) + - flutter_sound_core (9.28.0) + - GoogleDataTransport (10.1.0): + - nanopb (~> 3.30910.0) + - PromisesObjC (~> 2.4) + - GoogleUtilities/AppDelegateSwizzler (8.1.0): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Privacy - - GoogleUtilities/Environment (7.13.3): + - GoogleUtilities/Environment (8.1.0): - GoogleUtilities/Privacy - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.13.3): + - GoogleUtilities/Logger (8.1.0): - GoogleUtilities/Environment - GoogleUtilities/Privacy - - GoogleUtilities/Network (7.13.3): + - GoogleUtilities/Network (8.1.0): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Privacy - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.13.3)": + - "GoogleUtilities/NSData+zlib (8.1.0)": - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (7.13.3) - - GoogleUtilities/Reachability (7.13.3): + - GoogleUtilities/Privacy (8.1.0) + - GoogleUtilities/Reachability (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (7.13.3): + - GoogleUtilities/UserDefaults (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - home_widget (0.0.1): - Flutter - image_cropper (0.0.4): - Flutter - - TOCropViewController (~> 2.6.1) + - TOCropViewController (~> 2.7.4) - image_picker_ios (0.0.1): - Flutter - - IosAwnCore (0.8.0) - just_audio (0.0.1): - Flutter - - nanopb (2.30910.0): - - nanopb/decode (= 2.30910.0) - - nanopb/encode (= 2.30910.0) - - nanopb/decode (2.30910.0) - - nanopb/encode (2.30910.0) + - FlutterMacOS + - nanopb (3.30910.0): + - nanopb/decode (= 3.30910.0) + - nanopb/encode (= 3.30910.0) + - nanopb/decode (3.30910.0) + - nanopb/encode (3.30910.0) + - OrderedSet (6.0.3) - package_info_plus (0.4.5): - Flutter - path_provider_foundation (0.0.1): @@ -139,17 +144,23 @@ PODS: - PromisesObjC (2.4.0) - record_darwin (1.0.0): - Flutter - - FlutterMacOS - rive_common (0.0.1): - Flutter - - SDWebImage (5.19.7): - - SDWebImage/Core (= 5.19.7) - - SDWebImage/Core (5.19.7) - - sqflite (0.0.3): + - SDWebImage (5.21.2): + - SDWebImage/Core (= 5.21.2) + - SDWebImage/Core (5.21.2) + - Sentry/HybridSDK (8.46.0) + - sentry_flutter (8.14.2): + - Flutter + - FlutterMacOS + - Sentry/HybridSDK (= 8.46.0) + - sms_autofill (0.0.1): + - Flutter + - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - SwiftyGif (5.4.5) - - TOCropViewController (2.6.1) + - TOCropViewController (2.7.4) - url_launcher_ios (0.0.1): - Flutter - video_player_avfoundation (0.0.1): @@ -159,34 +170,38 @@ PODS: - Flutter - webview_flutter_wkwebview (0.0.1): - Flutter + - FlutterMacOS DEPENDENCIES: + - app_links (from `.symlinks/plugins/app_links/ios`) - audio_session (from `.symlinks/plugins/audio_session/ios`) - - awesome_notifications (from `.symlinks/plugins/awesome_notifications/ios`) + - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - Flutter (from `Flutter`) - flutter_background_service_ios (from `.symlinks/plugins/flutter_background_service_ios/ios`) - flutter_downloader (from `.symlinks/plugins/flutter_downloader/ios`) + - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - flutter_sound (from `.symlinks/plugins/flutter_sound/ios`) - - flutter_vibrate (from `.symlinks/plugins/flutter_vibrate/ios`) - home_widget (from `.symlinks/plugins/home_widget/ios`) - image_cropper (from `.symlinks/plugins/image_cropper/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - - just_audio (from `.symlinks/plugins/just_audio/ios`) + - just_audio (from `.symlinks/plugins/just_audio/darwin`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - record_darwin (from `.symlinks/plugins/record_darwin/ios`) - rive_common (from `.symlinks/plugins/rive_common/ios`) - - sqflite (from `.symlinks/plugins/sqflite/darwin`) + - sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`) + - sms_autofill (from `.symlinks/plugins/sms_autofill/ios`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) - - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) + - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`) SPEC REPOS: trunk: @@ -200,18 +215,21 @@ SPEC REPOS: - flutter_sound_core - GoogleDataTransport - GoogleUtilities - - IosAwnCore - nanopb + - OrderedSet - PromisesObjC - SDWebImage + - Sentry - SwiftyGif - TOCropViewController EXTERNAL SOURCES: + app_links: + :path: ".symlinks/plugins/app_links/ios" audio_session: :path: ".symlinks/plugins/audio_session/ios" - awesome_notifications: - :path: ".symlinks/plugins/awesome_notifications/ios" + device_info_plus: + :path: ".symlinks/plugins/device_info_plus/ios" file_picker: :path: ".symlinks/plugins/file_picker/ios" firebase_core: @@ -224,14 +242,14 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_background_service_ios/ios" flutter_downloader: :path: ".symlinks/plugins/flutter_downloader/ios" + flutter_inappwebview_ios: + :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" flutter_local_notifications: :path: ".symlinks/plugins/flutter_local_notifications/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" flutter_sound: :path: ".symlinks/plugins/flutter_sound/ios" - flutter_vibrate: - :path: ".symlinks/plugins/flutter_vibrate/ios" home_widget: :path: ".symlinks/plugins/home_widget/ios" image_cropper: @@ -239,7 +257,7 @@ EXTERNAL SOURCES: image_picker_ios: :path: ".symlinks/plugins/image_picker_ios/ios" just_audio: - :path: ".symlinks/plugins/just_audio/ios" + :path: ".symlinks/plugins/just_audio/darwin" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: @@ -250,8 +268,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/record_darwin/ios" rive_common: :path: ".symlinks/plugins/rive_common/ios" - sqflite: - :path: ".symlinks/plugins/sqflite/darwin" + sentry_flutter: + :path: ".symlinks/plugins/sentry_flutter/ios" + sms_autofill: + :path: ".symlinks/plugins/sms_autofill/ios" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" video_player_avfoundation: @@ -259,52 +281,56 @@ EXTERNAL SOURCES: wakelock_plus: :path: ".symlinks/plugins/wakelock_plus/ios" webview_flutter_wkwebview: - :path: ".symlinks/plugins/webview_flutter_wkwebview/ios" + :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" SPEC CHECKSUMS: - audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207 - awesome_notifications: db394d2e061e4583ba0f738ddea611e3986cc3fb + app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7 + audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0 + device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 - file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 - Firebase: cec914dab6fd7b1bd8ab56ea07ce4e03dd251c2d - firebase_core: 57aeb91680e5d5e6df6b888064be7c785f146efb - firebase_messaging: c862b3d2b973ecc769194dc8de09bd22c77ae757 - FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16 - FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 - FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd - FirebaseMessaging: 7b5d8033e183ab59eb5b852a53201559e976d366 + file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be + Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2 + firebase_core: 2d4534e7b489907dcede540c835b48981d890943 + firebase_messaging: 75bc93a4df25faccad67f6662ae872ac9ae69b64 + FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7 + FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679 + FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3 + FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_background_service_ios: e30e0d3ee69e4cee66272d0c78eacd48c2e94aac - flutter_downloader: b7301ae057deadd4b1650dc7c05375f10ff12c39 - flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - flutter_sound: dde9a913063b65a27ba8fdc2039036b99b136c79 - flutter_sound_core: 0c6eb9d5268adc70ff159b3d65fd3d98a82d3a27 - flutter_vibrate: 9f4c2ab57008965f78969472367c329dd77eb801 - GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a - GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 - home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 - image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98 - image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 - IosAwnCore: ed1b2b6d84962a758354dbacd9ce525c72ce28a9 - just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa - nanopb: 438bc412db1928dac798aa6fd75726007be04262 - package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + flutter_background_service_ios: 00d31bdff7b4bfe06d32375df358abe0329cf87e + flutter_downloader: 78da0da1084e709cbfd3b723c7ea349c71681f09 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb + flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13 + flutter_sound: b9236a5875299aaa4cef1690afd2f01d52a3f890 + flutter_sound_core: 427465f72d07ab8c3edbe8ffdde709ddacd3763c + GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 + home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f + image_cropper: c4326ea50132b1e1564499e5d32a84f01fb03537 + image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a + just_audio: 4e391f57b79cad2b0674030a00453ca5ce817eed + nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 + OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - record_darwin: df0a677188e5fed18472550298e675f19ddaffbe - rive_common: c537b4eed761e903a9403d93c347b69bd7a4762f - SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3 - sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + record_darwin: fb1f375f1d9603714f55b8708a903bbb91ffdb0a + rive_common: 436bbc8ffad130e54693666382cbdaade8dac9e0 + SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a + Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854 + sentry_flutter: 27892878729f42701297c628eb90e7c6529f3684 + sms_autofill: b36b2147535657fea83d7f3898d7831de70bd8e4 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863 - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 - wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 - webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1 + TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556 + webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2 PODFILE CHECKSUM: 76346ded4b0438dd89826a25813fc91ef681eb1f -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 749f9b4..dc59b4b 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -59,6 +59,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 4232cc3..dec01c1 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -3,7 +3,7 @@ import Flutter import Firebase import FirebaseCore -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate, MessagingDelegate { override func application( _ application: UIApplication, diff --git a/lib/services/app_initalizer.dart b/lib/services/app_initalizer.dart index 0cd9bd8..9ca790d 100644 --- a/lib/services/app_initalizer.dart +++ b/lib/services/app_initalizer.dart @@ -32,12 +32,14 @@ class AppInitializer { final studioState = context.read(); MediaService.audioPlayer.playingStream.listen((event) { if (event && - (MediaService.audioPlayerTag?.contains('podcast') ?? false)) { + (MediaService.audioPlayerTag?.contains('podcast') ?? false) && + MediaService.currentPodcast != null) { studioState.handleTracking( id: MediaService.currentPodcast!.id, sendRequest: false, ); - } else if (MediaService.audioPlayerTag?.contains('podcast') ?? false) { + } else if ((MediaService.audioPlayerTag?.contains('podcast') ?? false) && + MediaService.currentPodcast != null) { studioState.handleTracking(id: MediaService.currentPodcast!.id); } }); diff --git a/lib/views/home/home.dart b/lib/views/home/home.dart index 7f8cd4f..8c4b9cc 100644 --- a/lib/views/home/home.dart +++ b/lib/views/home/home.dart @@ -10,6 +10,7 @@ import 'package:didvan/routes/routes.dart'; import 'package:didvan/services/app_initalizer.dart'; import 'package:didvan/utils/action_sheet.dart'; import 'package:didvan/views/ai/ai_state.dart'; +import 'package:didvan/views/ai/ai.dart'; import 'package:didvan/views/ai/history_ai_chat_state.dart'; import 'package:didvan/views/ai/widgets/hoshan_drawer.dart'; import 'package:didvan/views/home/categories/categories_page.dart'; @@ -43,103 +44,6 @@ class _HomeState extends State with SingleTickerProviderStateMixin, WidgetsBindingObserver { late final TabController _tabController; - Future _showDialog(BuildContext context) async { - WidgetsBinding.instance.addPostFrameCallback((_) { - ActionSheetUtils(context) - .openDialog( - data: ActionSheetData( - hasDismissButton: false, - hasConfirmButton: false, - withoutButtonMode: true, - content: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - InkWrapper( - onPressed: () => Navigator.of(context).pop(), - child: const Icon(DidvanIcons.close_solid, size: 24), - ), - ], - ), - const SizedBox(height: 15), - SvgPicture.asset(Assets.horizontalLogoWithText, height: 80), - const SizedBox(height: 24), - DidvanText( - 'به سوپر اپلیکیشن دیدوان خوش آمدید', - textAlign: TextAlign.center, - style: Theme.of(context).textTheme.titleMedium, - ), - const SizedBox(height: 24), - ], - ), - ), - ) - .then((value) => ActionSheetUtils(context).openDialog( - data: ActionSheetData( - // ignore: deprecated_member_use - backgroundColor: Theme.of(context).colorScheme.background, - isBackgroundDropBlur: true, - content: Stack( - children: [ - Padding( - padding: const EdgeInsets.only(top: 24.0), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - DidvanText( - 'شخصی سازی محتوا', - style: - Theme.of(context).textTheme.displaySmall, - color: Theme.of(context).colorScheme.text, - ), - ], - ), - const SizedBox( - height: 12, - ), - const DidvanText( - "کاربر گرامی\nلطفا جهت شخصی‌سازی و استفاده بهتر از برنامه، دسته‌بندی‌های مورد علاقه خود و زمان دریافت اعلانات را انتخاب نمایید.") - ], - ), - ), - Positioned( - top: 0, - left: 0, - child: InkWrapper( - onPressed: () { - Future.delayed( - Duration.zero, - () => Navigator.of(context).pop(), - ); - }, - child: const Icon( - DidvanIcons.close_solid, - size: 24, - ), - ), - ), - ], - ), - onConfirmed: () { - Future.delayed( - Duration.zero, - () => - Navigator.of(navigatorKey.currentContext!).pushNamed( - Routes.favouritesStep, - arguments: {"toTimer": true}, - ), - ); - }, - confrimTitle: 'تایید', - ), - )); - }); - } - @override void initState() { // Remove dialog showing logic to prevent welcome popups @@ -151,10 +55,11 @@ class _HomeState extends State DesignConfig.updateSystemUiOverlayStyle(); _tabController = TabController(length: 4, vsync: this, initialIndex: 0); state.tabController = _tabController; - + _tabController.addListener(() { state.currentPageIndex = _tabController.index; - if (_tabController.index == 3) { // Changed from 2 to 3 for Houshan tab + if (_tabController.index == 3) { + // Changed from 2 to 3 for Houshan tab // با هر بار ورود به تب هوشان، لیست چت‌ها ریست می‌شود final historyState = context.read(); historyState.chats.clear(); @@ -183,20 +88,20 @@ class _HomeState extends State } PreferredSizeWidget getAppBar() { - // Show HoshanAppBar only for AI section (index 3) - if (context.watch().tabController.index == 3) { - return HoshanAppBar( - onBack: () { - final state = context.read(); - if (state.page == 1) { - state.goToAi(); - } - }, - ); - } - // For all other tabs (home, categories, statistics), show LogoAppBar - return const LogoAppBar(); + // Show HoshanAppBar only for AI section (index 3) + if (context.watch().tabController.index == 3) { + return HoshanAppBar( + onBack: () { + final state = context.read(); + if (state.page == 1) { + state.goToAi(); + } + }, + ); } + // For all other tabs (home, categories, statistics), show LogoAppBar + return const LogoAppBar(); + } @override Widget build(BuildContext context) { @@ -228,7 +133,8 @@ class _HomeState extends State confrimTitle: 'بله', dismissTitle: 'خیر', )); - } else if (context.read().tabController.index == 3) { // Changed from 2 to 3 + } else if (context.read().tabController.index == 3) { + // Changed from 2 to 3 switch (context.read().page) { case 1: context.read().goToAi(); @@ -258,7 +164,7 @@ class _HomeState extends State MainPage(), CategoriesPage(), NewStatistic(), - // AiSection(), + Ai(), ], ), ), diff --git a/lib/views/home/main/widgets/podcast_item.dart b/lib/views/home/main/widgets/podcast_item.dart index a659cc0..29612b8 100644 --- a/lib/views/home/main/widgets/podcast_item.dart +++ b/lib/views/home/main/widgets/podcast_item.dart @@ -39,6 +39,7 @@ class _MainPagePodcastItemState extends State { Widget build(BuildContext context) { return GestureDetector( onTap: () async { + debugPrint("Playing podcast from URL: ${widget.content.link}"); final state = context.read(); await state.getStudioDetails( widget.content.id, diff --git a/lib/views/podcasts/studio_details/studio_details.mobile.dart b/lib/views/podcasts/studio_details/studio_details.mobile.dart index 3512dbc..ceaa3d2 100644 --- a/lib/views/podcasts/studio_details/studio_details.mobile.dart +++ b/lib/views/podcasts/studio_details/studio_details.mobile.dart @@ -9,6 +9,7 @@ import 'package:didvan/services/media/media.dart'; import 'package:didvan/views/podcasts/studio_details/studio_details_state.dart'; import 'package:didvan/views/podcasts/studio_details/widgets/studio_details_widget.dart'; import 'package:didvan/views/widgets/bookmark_button.dart'; +import 'package:didvan/views/widgets/audio/audio_player_widget.dart'; import 'package:didvan/views/widgets/didvan/app_bar.dart'; import 'package:didvan/views/widgets/state_handlers/state_handler.dart'; import 'package:didvan/views/widgets/video/primary_controls.dart'; @@ -66,13 +67,14 @@ class _StudioDetailsState extends State { } Future _initializePlayer(StudioDetailsData studio) async { - if (widget.pageData['args']['type'] == 'video') { + if (studio.type == 'video') { // Disposing old controllers before creating new ones. _videoPlayerController?.dispose(); _chewieController?.dispose(); + debugPrint("Playing video from URL: ${studio.link}"); _videoPlayerController = VideoPlayerController.network(studio.link); - + try { await _videoPlayerController!.initialize(); if (mounted) { @@ -92,7 +94,7 @@ class _StudioDetailsState extends State { }); } } catch (e) { - debugPrint("Error initializing video player: $e"); + debugPrint("Error initializing video player: $e"); } } else { // Handle audio playback using MediaService @@ -149,7 +151,9 @@ class _StudioDetailsState extends State { appBarData: AppBarData( trailing: BookmarkButton( itemId: state.studio.id, - type: state.args?.type == 'video' ? 'video' : 'podcast', + type: state.studio.type == 'video' + ? 'video' + : 'podcast', value: state.studio.marked, onMarkChanged: (value) { widget.pageData['onMarkChanged']( @@ -167,12 +171,12 @@ class _StudioDetailsState extends State { height: d.size.height - d.padding.top - 56, child: Column( children: [ - if (state.args?.type == 'video') + if (state.studio.type == 'video') AspectRatio( aspectRatio: 16 / 9, child: (_chewieController != null && - _chewieController! - .videoPlayerController.value.isInitialized) + _chewieController!.videoPlayerController + .value.isInitialized) ? Chewie(controller: _chewieController!) : Center( child: Image.asset( @@ -182,6 +186,8 @@ class _StudioDetailsState extends State { ), ), ), + if (state.studio.type == 'podcast') + AudioPlayerWidget(podcast: state.studio), Expanded( child: StudioDetailsWidget( onMarkChanged: (id, value) => widget @@ -207,4 +213,4 @@ class _StudioDetailsState extends State { _chewieController?.dispose(); super.dispose(); } -} \ No newline at end of file +} diff --git a/lib/views/podcasts/studio_details/studio_details.web.dart b/lib/views/podcasts/studio_details/studio_details.web.dart index a5e4e10..266ba21 100644 --- a/lib/views/podcasts/studio_details/studio_details.web.dart +++ b/lib/views/podcasts/studio_details/studio_details.web.dart @@ -7,6 +7,7 @@ import 'package:didvan/services/media/media.dart'; import 'package:didvan/views/podcasts/studio_details/studio_details_state.dart'; import 'package:didvan/views/podcasts/studio_details/widgets/studio_details_widget.dart'; import 'package:didvan/views/widgets/bookmark_button.dart'; +import 'package:didvan/views/widgets/audio/audio_player_widget.dart'; import 'package:didvan/views/widgets/didvan/app_bar.dart'; import 'package:didvan/views/widgets/state_handlers/state_handler.dart'; import 'package:flutter/material.dart'; @@ -42,17 +43,20 @@ class _StudioDetailsState extends State { state: state, onRetry: () => state.getStudioDetails(state.studio.id), builder: (context, state) { - // ignore: undefined_prefixed_name - ui.platformViewRegistry.registerViewFactory( - "video", - (int viewId) => html.IFrameElement() - ..allowFullscreen = true - ..src = Uri.dataFromString( - '${state.studio.iframe!}', - mimeType: 'text/html', - ).toString() - ..style.border = 'none', - ); + if (state.studio.type == 'video') { + debugPrint("Playing video from URL: ${state.studio.link}"); + // ignore: undefined_prefixed_name + ui.platformViewRegistry.registerViewFactory( + "video", + (int viewId) => html.IFrameElement() + ..allowFullscreen = true + ..src = Uri.dataFromString( + '${state.studio.iframe!}', + mimeType: 'text/html', + ).toString() + ..style.border = 'none', + ); + } return WillPopScope( onWillPop: () async { if (MediaService.currentPodcast != null) { @@ -70,7 +74,8 @@ class _StudioDetailsState extends State { appBarData: AppBarData( trailing: BookmarkButton( itemId: state.studio.id, - type: 'video', + type: + state.studio.type == 'video' ? 'video' : 'podcast', value: state.studio.marked, onMarkChanged: (value) { widget.pageData['onMarkChanged']( @@ -89,13 +94,16 @@ class _StudioDetailsState extends State { height: d.size.height - d.padding.top - 56, child: Column( children: [ - AspectRatio( - aspectRatio: 16 / 9, - child: HtmlElementView( - viewType: 'video', - key: ValueKey(state.studio.id), + if (state.studio.type == 'video') + AspectRatio( + aspectRatio: 16 / 9, + child: HtmlElementView( + viewType: 'video', + key: ValueKey(state.studio.id), + ), ), - ), + if (state.studio.type == 'podcast') + AudioPlayerWidget(podcast: state.studio), Expanded( child: StudioDetailsWidget( onMarkChanged: (id, value) => widget diff --git a/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart b/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart index 1a5f177..70bc75c 100644 --- a/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart +++ b/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart @@ -35,12 +35,12 @@ class StudioDetailsWidget extends StatelessWidget { child: Consumer( builder: (context, state, child) { bool isVideo = state.studio.iframe != null; + double topOffset = isVideo + ? ds.width * 9 / 16 + : 400; // برای ویدیو aspect ratio، برای پادکست ارتفاع AudioPlayerWidget return Container( height: max( - ds.height - - ds.width * 9 / 16 - - 72 - - MediaQuery.of(context).padding.top, + ds.height - topOffset - 72 - MediaQuery.of(context).padding.top, 0), color: Theme.of(context).colorScheme.surface, child: Stack( diff --git a/lib/views/story_viewer/story_viewer_page.dart b/lib/views/story_viewer/story_viewer_page.dart index 7fe14e5..28af012 100644 --- a/lib/views/story_viewer/story_viewer_page.dart +++ b/lib/views/story_viewer/story_viewer_page.dart @@ -103,7 +103,7 @@ class _UserStoryViewerState extends State _currentStoryIndex = widget.userStories.stories.indexWhere((story) => !story.isViewed.value); - + if (_currentStoryIndex == -1) { _currentStoryIndex = 0; } @@ -142,6 +142,7 @@ class _UserStoryViewerState extends State _animationController.forward(); break; case MediaType.video: + debugPrint("Playing story video from URL: ${story.url}"); _videoController = VideoPlayerController.networkUrl(Uri.parse(story.url)); _videoController!.initialize().then((_) { @@ -167,6 +168,12 @@ class _UserStoryViewerState extends State if (mounted) { _nextStory(); } + }).timeout(const Duration(seconds: 10), onTimeout: () { + // ignore: avoid_print + print("Video initialization timed out. Skipping."); + if (mounted) { + _nextStory(); + } }); break; } @@ -409,4 +416,4 @@ class _UserInfo extends StatelessWidget { ], ); } -} \ No newline at end of file +} diff --git a/linux/flutter/ephemeral/.plugin_symlinks/app_links_linux b/linux/flutter/ephemeral/.plugin_symlinks/app_links_linux new file mode 120000 index 0000000..21ab215 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/app_links_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/app_links_linux-1.0.3/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus b/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus new file mode 120000 index 0000000..564ee54 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/file_picker b/linux/flutter/ephemeral/.plugin_symlinks/file_picker new file mode 120000 index 0000000..6efb0ee --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/file_picker @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/file_picker-8.3.7/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux b/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux new file mode 120000 index 0000000..920c561 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3+2/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/flutter_local_notifications_linux b/linux/flutter/ephemeral/.plugin_symlinks/flutter_local_notifications_linux new file mode 120000 index 0000000..f946100 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/flutter_local_notifications_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/flutter_local_notifications_linux-6.0.0/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux b/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux new file mode 120000 index 0000000..a454155 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/gtk b/linux/flutter/ephemeral/.plugin_symlinks/gtk new file mode 120000 index 0000000..4b033ae --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/gtk @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/gtk-2.1.0/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux b/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux new file mode 120000 index 0000000..f94dea0 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+2/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus b/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus new file mode 120000 index 0000000..7ea6215 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux b/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux new file mode 120000 index 0000000..3c449f8 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/record_linux b/linux/flutter/ephemeral/.plugin_symlinks/record_linux new file mode 120000 index 0000000..e868bfc --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/record_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/record_linux-0.7.2/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/sentry_flutter b/linux/flutter/ephemeral/.plugin_symlinks/sentry_flutter new file mode 120000 index 0000000..045f192 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/sentry_flutter @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/sentry_flutter-8.14.2/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux b/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux new file mode 120000 index 0000000..a7f90fd --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus b/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus new file mode 120000 index 0000000..4013f52 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus @@ -0,0 +1 @@ +/Users/arytan/.pub-cache/hosted/pub.dev/wakelock_plus-1.3.1/ \ No newline at end of file diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..e991ac0 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,35 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include +#include +#include +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); + g_autoptr(FlPluginRegistrar) gtk_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "GtkPlugin"); + gtk_plugin_register_with_registrar(gtk_registrar); + g_autoptr(FlPluginRegistrar) record_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "RecordLinuxPlugin"); + record_linux_plugin_register_with_registrar(record_linux_registrar); + g_autoptr(FlPluginRegistrar) sentry_flutter_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin"); + sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..577be94 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,29 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + file_selector_linux + flutter_secure_storage_linux + gtk + record_linux + sentry_flutter + url_launcher_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..e69fe17 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,52 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import app_links +import audio_session +import device_info_plus +import file_picker +import file_selector_macos +import firebase_core +import firebase_messaging +import flutter_inappwebview_macos +import flutter_local_notifications +import flutter_secure_storage_macos +import just_audio +import package_info_plus +import path_provider_foundation +import record_darwin +import rive_common +import sentry_flutter +import sqflite_darwin +import url_launcher_macos +import video_player_avfoundation +import wakelock_plus +import webview_flutter_wkwebview + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + AppLinksMacosPlugin.register(with: registry.registrar(forPlugin: "AppLinksMacosPlugin")) + AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin")) + DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) + FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) + InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) + FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) + FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) + JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin")) + FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + RecordPlugin.register(with: registry.registrar(forPlugin: "RecordPlugin")) + RivePlugin.register(with: registry.registrar(forPlugin: "RivePlugin")) + SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) + SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) + WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) + WebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "WebViewFlutterPlugin")) +} diff --git a/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig new file mode 100644 index 0000000..727f32a --- /dev/null +++ b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -0,0 +1,11 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/arytan/Desktop/Dev/Sdks/flutter +FLUTTER_APPLICATION_PATH=/Users/arytan/Desktop/Flutter Projects/didvan-app +COCOAPODS_PARALLEL_CODE_SIGN=true +FLUTTER_BUILD_DIR=build +FLUTTER_BUILD_NAME=4.0.1 +FLUTTER_BUILD_NUMBER=6000 +DART_OBFUSCATION=false +TRACK_WIDGET_CREATION=true +TREE_SHAKE_ICONS=false +PACKAGE_CONFIG=.dart_tool/package_config.json diff --git a/macos/Flutter/ephemeral/flutter_export_environment.sh b/macos/Flutter/ephemeral/flutter_export_environment.sh new file mode 100755 index 0000000..73d3d77 --- /dev/null +++ b/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/arytan/Desktop/Dev/Sdks/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/arytan/Desktop/Flutter Projects/didvan-app" +export "COCOAPODS_PARALLEL_CODE_SIGN=true" +export "FLUTTER_BUILD_DIR=build" +export "FLUTTER_BUILD_NAME=4.0.1" +export "FLUTTER_BUILD_NUMBER=6000" +export "DART_OBFUSCATION=false" +export "TRACK_WIDGET_CREATION=true" +export "TREE_SHAKE_ICONS=false" +export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..29c8eb3 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.14' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/pubspec.lock b/pubspec.lock index 7d7cc0f..a93ccaa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1670,34 +1670,34 @@ packages: dependency: "direct main" description: name: webview_flutter - sha256: caf0f5a1012aa3c2d33c4215adc72dc1194bb59a2d3ed901f457965626805e66 + sha256: c3e4fe614b1c814950ad07186007eff2f2e5dd2935eba7b9a9a1af8e5885f1ba url: "https://pub.dev" source: hosted - version: "4.11.0" + version: "4.13.0" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: "5c3b6f992d123084903ec091b84f021c413a92a9af49038e4564a1b26c8452cf" + sha256: "9a25f6b4313978ba1c2cda03a242eea17848174912cfb4d2d8ee84a556f248e3" url: "https://pub.dev" source: hosted - version: "4.4.1" + version: "4.10.1" webview_flutter_platform_interface: dependency: transitive description: name: webview_flutter_platform_interface - sha256: "18b1640839cf6546784a524c72aded5b6e86b23e7167dc2311cc96f7658b64bd" + sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0" url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.14.0" webview_flutter_wkwebview: dependency: transitive description: name: webview_flutter_wkwebview - sha256: c9f9be526fa0d3347374ceaa05c4b3acb85f4f112abd62f7d74b7d301fa515ff + sha256: fb46db8216131a3e55bcf44040ca808423539bc6732e7ed34fb6d8044e3d512f url: "https://pub.dev" source: hosted - version: "3.20.0" + version: "3.23.0" win32: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 625b499..6975f6a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,7 +61,7 @@ dependencies: # image_cropper: ^1.5.0 firebase_core: ^3.1.0 firebase_messaging: ^15.0.1 - webview_flutter: ^4.8.0 + webview_flutter: ^4.13.0 expandable_bottom_sheet: ^1.1.1+1 permission_handler: ^11.0.0 # better_player: