Compare commits
2 Commits
fc8ac99ea3
...
18f67d6a17
| Author | SHA1 | Date |
|---|---|---|
|
|
18f67d6a17 | |
|
|
1708218a8f |
252
ios/Podfile.lock
252
ios/Podfile.lock
|
|
@ -1,9 +1,10 @@
|
||||||
PODS:
|
PODS:
|
||||||
|
- app_links (0.0.2):
|
||||||
|
- Flutter
|
||||||
- audio_session (0.0.1):
|
- audio_session (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- awesome_notifications (0.8.1):
|
- device_info_plus (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- IosAwnCore (~> 0.8.0)
|
|
||||||
- DKImagePickerController/Core (4.3.9):
|
- DKImagePickerController/Core (4.3.9):
|
||||||
- DKImagePickerController/ImageDataManager
|
- DKImagePickerController/ImageDataManager
|
||||||
- DKImagePickerController/Resource
|
- DKImagePickerController/Resource
|
||||||
|
|
@ -38,97 +39,101 @@ PODS:
|
||||||
- file_picker (0.0.1):
|
- file_picker (0.0.1):
|
||||||
- DKImagePickerController/PhotoGallery
|
- DKImagePickerController/PhotoGallery
|
||||||
- Flutter
|
- Flutter
|
||||||
- Firebase/CoreOnly (10.29.0):
|
- Firebase/CoreOnly (11.10.0):
|
||||||
- FirebaseCore (= 10.29.0)
|
- FirebaseCore (~> 11.10.0)
|
||||||
- Firebase/Messaging (10.29.0):
|
- Firebase/Messaging (11.10.0):
|
||||||
- Firebase/CoreOnly
|
- Firebase/CoreOnly
|
||||||
- FirebaseMessaging (~> 10.29.0)
|
- FirebaseMessaging (~> 11.10.0)
|
||||||
- firebase_core (3.3.0):
|
- firebase_core (3.13.0):
|
||||||
- Firebase/CoreOnly (= 10.29.0)
|
- Firebase/CoreOnly (= 11.10.0)
|
||||||
- Flutter
|
- Flutter
|
||||||
- firebase_messaging (15.0.4):
|
- firebase_messaging (15.2.5):
|
||||||
- Firebase/Messaging (= 10.29.0)
|
- Firebase/Messaging (= 11.10.0)
|
||||||
- firebase_core
|
- firebase_core
|
||||||
- Flutter
|
- Flutter
|
||||||
- FirebaseCore (10.29.0):
|
- FirebaseCore (11.10.0):
|
||||||
- FirebaseCoreInternal (~> 10.0)
|
- FirebaseCoreInternal (~> 11.10.0)
|
||||||
- GoogleUtilities/Environment (~> 7.12)
|
- GoogleUtilities/Environment (~> 8.0)
|
||||||
- GoogleUtilities/Logger (~> 7.12)
|
- GoogleUtilities/Logger (~> 8.0)
|
||||||
- FirebaseCoreInternal (10.29.0):
|
- FirebaseCoreInternal (11.10.0):
|
||||||
- "GoogleUtilities/NSData+zlib (~> 7.8)"
|
- "GoogleUtilities/NSData+zlib (~> 8.0)"
|
||||||
- FirebaseInstallations (10.29.0):
|
- FirebaseInstallations (11.10.0):
|
||||||
- FirebaseCore (~> 10.0)
|
- FirebaseCore (~> 11.10.0)
|
||||||
- GoogleUtilities/Environment (~> 7.8)
|
- GoogleUtilities/Environment (~> 8.0)
|
||||||
- GoogleUtilities/UserDefaults (~> 7.8)
|
- GoogleUtilities/UserDefaults (~> 8.0)
|
||||||
- PromisesObjC (~> 2.1)
|
- PromisesObjC (~> 2.4)
|
||||||
- FirebaseMessaging (10.29.0):
|
- FirebaseMessaging (11.10.0):
|
||||||
- FirebaseCore (~> 10.0)
|
- FirebaseCore (~> 11.10.0)
|
||||||
- FirebaseInstallations (~> 10.0)
|
- FirebaseInstallations (~> 11.0)
|
||||||
- GoogleDataTransport (~> 9.3)
|
- GoogleDataTransport (~> 10.0)
|
||||||
- GoogleUtilities/AppDelegateSwizzler (~> 7.8)
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.0)
|
||||||
- GoogleUtilities/Environment (~> 7.8)
|
- GoogleUtilities/Environment (~> 8.0)
|
||||||
- GoogleUtilities/Reachability (~> 7.8)
|
- GoogleUtilities/Reachability (~> 8.0)
|
||||||
- GoogleUtilities/UserDefaults (~> 7.8)
|
- GoogleUtilities/UserDefaults (~> 8.0)
|
||||||
- nanopb (< 2.30911.0, >= 2.30908.0)
|
- nanopb (~> 3.30910.0)
|
||||||
- Flutter (1.0.0)
|
- Flutter (1.0.0)
|
||||||
- flutter_background_service_ios (0.0.3):
|
- flutter_background_service_ios (0.0.3):
|
||||||
- Flutter
|
- Flutter
|
||||||
- flutter_downloader (0.0.1):
|
- flutter_downloader (0.0.1):
|
||||||
- Flutter
|
- 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_local_notifications (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- flutter_secure_storage (6.0.0):
|
- flutter_secure_storage (6.0.0):
|
||||||
- Flutter
|
- Flutter
|
||||||
- flutter_sound (9.6.0):
|
- flutter_sound (9.28.0):
|
||||||
- Flutter
|
- Flutter
|
||||||
- flutter_sound_core (= 9.6.0)
|
- flutter_sound_core (= 9.28.0)
|
||||||
- flutter_sound_core (9.6.0)
|
- flutter_sound_core (9.28.0)
|
||||||
- flutter_vibrate (0.0.1):
|
- GoogleDataTransport (10.1.0):
|
||||||
- Flutter
|
- nanopb (~> 3.30910.0)
|
||||||
- GoogleDataTransport (9.4.1):
|
- PromisesObjC (~> 2.4)
|
||||||
- GoogleUtilities/Environment (~> 7.7)
|
- GoogleUtilities/AppDelegateSwizzler (8.1.0):
|
||||||
- nanopb (< 2.30911.0, >= 2.30908.0)
|
|
||||||
- PromisesObjC (< 3.0, >= 1.2)
|
|
||||||
- GoogleUtilities/AppDelegateSwizzler (7.13.3):
|
|
||||||
- GoogleUtilities/Environment
|
- GoogleUtilities/Environment
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/Network
|
- GoogleUtilities/Network
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
- GoogleUtilities/Environment (7.13.3):
|
- GoogleUtilities/Environment (8.1.0):
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
- PromisesObjC (< 3.0, >= 1.2)
|
- GoogleUtilities/Logger (8.1.0):
|
||||||
- GoogleUtilities/Logger (7.13.3):
|
|
||||||
- GoogleUtilities/Environment
|
- GoogleUtilities/Environment
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
- GoogleUtilities/Network (7.13.3):
|
- GoogleUtilities/Network (8.1.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- "GoogleUtilities/NSData+zlib"
|
- "GoogleUtilities/NSData+zlib"
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
- GoogleUtilities/Reachability
|
- GoogleUtilities/Reachability
|
||||||
- "GoogleUtilities/NSData+zlib (7.13.3)":
|
- "GoogleUtilities/NSData+zlib (8.1.0)":
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
- GoogleUtilities/Privacy (7.13.3)
|
- GoogleUtilities/Privacy (8.1.0)
|
||||||
- GoogleUtilities/Reachability (7.13.3):
|
- GoogleUtilities/Reachability (8.1.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
- GoogleUtilities/UserDefaults (7.13.3):
|
- GoogleUtilities/UserDefaults (8.1.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
- home_widget (0.0.1):
|
- home_widget (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- image_cropper (0.0.4):
|
- image_cropper (0.0.4):
|
||||||
- Flutter
|
- Flutter
|
||||||
- TOCropViewController (~> 2.6.1)
|
- TOCropViewController (~> 2.7.4)
|
||||||
- image_picker_ios (0.0.1):
|
- image_picker_ios (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- IosAwnCore (0.8.0)
|
|
||||||
- just_audio (0.0.1):
|
- just_audio (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- nanopb (2.30910.0):
|
- FlutterMacOS
|
||||||
- nanopb/decode (= 2.30910.0)
|
- nanopb (3.30910.0):
|
||||||
- nanopb/encode (= 2.30910.0)
|
- nanopb/decode (= 3.30910.0)
|
||||||
- nanopb/decode (2.30910.0)
|
- nanopb/encode (= 3.30910.0)
|
||||||
- nanopb/encode (2.30910.0)
|
- nanopb/decode (3.30910.0)
|
||||||
|
- nanopb/encode (3.30910.0)
|
||||||
|
- OrderedSet (6.0.3)
|
||||||
- package_info_plus (0.4.5):
|
- package_info_plus (0.4.5):
|
||||||
- Flutter
|
- Flutter
|
||||||
- path_provider_foundation (0.0.1):
|
- path_provider_foundation (0.0.1):
|
||||||
|
|
@ -139,17 +144,23 @@ PODS:
|
||||||
- PromisesObjC (2.4.0)
|
- PromisesObjC (2.4.0)
|
||||||
- record_darwin (1.0.0):
|
- record_darwin (1.0.0):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
|
||||||
- rive_common (0.0.1):
|
- rive_common (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- SDWebImage (5.19.7):
|
- SDWebImage (5.21.2):
|
||||||
- SDWebImage/Core (= 5.19.7)
|
- SDWebImage/Core (= 5.21.2)
|
||||||
- SDWebImage/Core (5.19.7)
|
- SDWebImage/Core (5.21.2)
|
||||||
- sqflite (0.0.3):
|
- 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
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- SwiftyGif (5.4.5)
|
- SwiftyGif (5.4.5)
|
||||||
- TOCropViewController (2.6.1)
|
- TOCropViewController (2.7.4)
|
||||||
- url_launcher_ios (0.0.1):
|
- url_launcher_ios (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- video_player_avfoundation (0.0.1):
|
- video_player_avfoundation (0.0.1):
|
||||||
|
|
@ -159,34 +170,38 @@ PODS:
|
||||||
- Flutter
|
- Flutter
|
||||||
- webview_flutter_wkwebview (0.0.1):
|
- webview_flutter_wkwebview (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
|
- app_links (from `.symlinks/plugins/app_links/ios`)
|
||||||
- audio_session (from `.symlinks/plugins/audio_session/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`)
|
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
||||||
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||||
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
||||||
- Flutter (from `Flutter`)
|
- Flutter (from `Flutter`)
|
||||||
- flutter_background_service_ios (from `.symlinks/plugins/flutter_background_service_ios/ios`)
|
- flutter_background_service_ios (from `.symlinks/plugins/flutter_background_service_ios/ios`)
|
||||||
- flutter_downloader (from `.symlinks/plugins/flutter_downloader/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_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
||||||
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
||||||
- flutter_sound (from `.symlinks/plugins/flutter_sound/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`)
|
- home_widget (from `.symlinks/plugins/home_widget/ios`)
|
||||||
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
|
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
|
||||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/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`)
|
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
||||||
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
||||||
- record_darwin (from `.symlinks/plugins/record_darwin/ios`)
|
- record_darwin (from `.symlinks/plugins/record_darwin/ios`)
|
||||||
- rive_common (from `.symlinks/plugins/rive_common/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`)
|
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||||
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
||||||
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
|
- 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:
|
SPEC REPOS:
|
||||||
trunk:
|
trunk:
|
||||||
|
|
@ -200,18 +215,21 @@ SPEC REPOS:
|
||||||
- flutter_sound_core
|
- flutter_sound_core
|
||||||
- GoogleDataTransport
|
- GoogleDataTransport
|
||||||
- GoogleUtilities
|
- GoogleUtilities
|
||||||
- IosAwnCore
|
|
||||||
- nanopb
|
- nanopb
|
||||||
|
- OrderedSet
|
||||||
- PromisesObjC
|
- PromisesObjC
|
||||||
- SDWebImage
|
- SDWebImage
|
||||||
|
- Sentry
|
||||||
- SwiftyGif
|
- SwiftyGif
|
||||||
- TOCropViewController
|
- TOCropViewController
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
|
app_links:
|
||||||
|
:path: ".symlinks/plugins/app_links/ios"
|
||||||
audio_session:
|
audio_session:
|
||||||
:path: ".symlinks/plugins/audio_session/ios"
|
:path: ".symlinks/plugins/audio_session/ios"
|
||||||
awesome_notifications:
|
device_info_plus:
|
||||||
:path: ".symlinks/plugins/awesome_notifications/ios"
|
:path: ".symlinks/plugins/device_info_plus/ios"
|
||||||
file_picker:
|
file_picker:
|
||||||
:path: ".symlinks/plugins/file_picker/ios"
|
:path: ".symlinks/plugins/file_picker/ios"
|
||||||
firebase_core:
|
firebase_core:
|
||||||
|
|
@ -224,14 +242,14 @@ EXTERNAL SOURCES:
|
||||||
:path: ".symlinks/plugins/flutter_background_service_ios/ios"
|
:path: ".symlinks/plugins/flutter_background_service_ios/ios"
|
||||||
flutter_downloader:
|
flutter_downloader:
|
||||||
:path: ".symlinks/plugins/flutter_downloader/ios"
|
:path: ".symlinks/plugins/flutter_downloader/ios"
|
||||||
|
flutter_inappwebview_ios:
|
||||||
|
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
|
||||||
flutter_local_notifications:
|
flutter_local_notifications:
|
||||||
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
||||||
flutter_secure_storage:
|
flutter_secure_storage:
|
||||||
:path: ".symlinks/plugins/flutter_secure_storage/ios"
|
:path: ".symlinks/plugins/flutter_secure_storage/ios"
|
||||||
flutter_sound:
|
flutter_sound:
|
||||||
:path: ".symlinks/plugins/flutter_sound/ios"
|
:path: ".symlinks/plugins/flutter_sound/ios"
|
||||||
flutter_vibrate:
|
|
||||||
:path: ".symlinks/plugins/flutter_vibrate/ios"
|
|
||||||
home_widget:
|
home_widget:
|
||||||
:path: ".symlinks/plugins/home_widget/ios"
|
:path: ".symlinks/plugins/home_widget/ios"
|
||||||
image_cropper:
|
image_cropper:
|
||||||
|
|
@ -239,7 +257,7 @@ EXTERNAL SOURCES:
|
||||||
image_picker_ios:
|
image_picker_ios:
|
||||||
:path: ".symlinks/plugins/image_picker_ios/ios"
|
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||||
just_audio:
|
just_audio:
|
||||||
:path: ".symlinks/plugins/just_audio/ios"
|
:path: ".symlinks/plugins/just_audio/darwin"
|
||||||
package_info_plus:
|
package_info_plus:
|
||||||
:path: ".symlinks/plugins/package_info_plus/ios"
|
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
|
|
@ -250,8 +268,12 @@ EXTERNAL SOURCES:
|
||||||
:path: ".symlinks/plugins/record_darwin/ios"
|
:path: ".symlinks/plugins/record_darwin/ios"
|
||||||
rive_common:
|
rive_common:
|
||||||
:path: ".symlinks/plugins/rive_common/ios"
|
:path: ".symlinks/plugins/rive_common/ios"
|
||||||
sqflite:
|
sentry_flutter:
|
||||||
:path: ".symlinks/plugins/sqflite/darwin"
|
: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:
|
url_launcher_ios:
|
||||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||||
video_player_avfoundation:
|
video_player_avfoundation:
|
||||||
|
|
@ -259,52 +281,56 @@ EXTERNAL SOURCES:
|
||||||
wakelock_plus:
|
wakelock_plus:
|
||||||
:path: ".symlinks/plugins/wakelock_plus/ios"
|
:path: ".symlinks/plugins/wakelock_plus/ios"
|
||||||
webview_flutter_wkwebview:
|
webview_flutter_wkwebview:
|
||||||
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
|
:path: ".symlinks/plugins/webview_flutter_wkwebview/darwin"
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207
|
app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7
|
||||||
awesome_notifications: db394d2e061e4583ba0f738ddea611e3986cc3fb
|
audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0
|
||||||
|
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
|
||||||
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
|
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
|
||||||
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
|
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
|
||||||
file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
|
file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be
|
||||||
Firebase: cec914dab6fd7b1bd8ab56ea07ce4e03dd251c2d
|
Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2
|
||||||
firebase_core: 57aeb91680e5d5e6df6b888064be7c785f146efb
|
firebase_core: 2d4534e7b489907dcede540c835b48981d890943
|
||||||
firebase_messaging: c862b3d2b973ecc769194dc8de09bd22c77ae757
|
firebase_messaging: 75bc93a4df25faccad67f6662ae872ac9ae69b64
|
||||||
FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16
|
FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7
|
||||||
FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934
|
FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679
|
||||||
FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd
|
FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3
|
||||||
FirebaseMessaging: 7b5d8033e183ab59eb5b852a53201559e976d366
|
FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9
|
||||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||||
flutter_background_service_ios: e30e0d3ee69e4cee66272d0c78eacd48c2e94aac
|
flutter_background_service_ios: 00d31bdff7b4bfe06d32375df358abe0329cf87e
|
||||||
flutter_downloader: b7301ae057deadd4b1650dc7c05375f10ff12c39
|
flutter_downloader: 78da0da1084e709cbfd3b723c7ea349c71681f09
|
||||||
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
|
flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
|
||||||
flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
|
flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb
|
||||||
flutter_sound: dde9a913063b65a27ba8fdc2039036b99b136c79
|
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
|
||||||
flutter_sound_core: 0c6eb9d5268adc70ff159b3d65fd3d98a82d3a27
|
flutter_sound: b9236a5875299aaa4cef1690afd2f01d52a3f890
|
||||||
flutter_vibrate: 9f4c2ab57008965f78969472367c329dd77eb801
|
flutter_sound_core: 427465f72d07ab8c3edbe8ffdde709ddacd3763c
|
||||||
GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a
|
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
||||||
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15
|
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
|
||||||
home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57
|
home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f
|
||||||
image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
|
image_cropper: c4326ea50132b1e1564499e5d32a84f01fb03537
|
||||||
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
|
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
|
||||||
IosAwnCore: ed1b2b6d84962a758354dbacd9ce525c72ce28a9
|
just_audio: 4e391f57b79cad2b0674030a00453ca5ce817eed
|
||||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
|
||||||
nanopb: 438bc412db1928dac798aa6fd75726007be04262
|
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
|
||||||
package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c
|
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
|
||||||
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||||
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
|
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
|
||||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||||
record_darwin: df0a677188e5fed18472550298e675f19ddaffbe
|
record_darwin: fb1f375f1d9603714f55b8708a903bbb91ffdb0a
|
||||||
rive_common: c537b4eed761e903a9403d93c347b69bd7a4762f
|
rive_common: 436bbc8ffad130e54693666382cbdaade8dac9e0
|
||||||
SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3
|
SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a
|
||||||
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
|
Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854
|
||||||
|
sentry_flutter: 27892878729f42701297c628eb90e7c6529f3684
|
||||||
|
sms_autofill: b36b2147535657fea83d7f3898d7831de70bd8e4
|
||||||
|
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
|
||||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
|
||||||
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
|
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
||||||
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
|
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
|
||||||
wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1
|
wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556
|
||||||
webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1
|
webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2
|
||||||
|
|
||||||
PODFILE CHECKSUM: 76346ded4b0438dd89826a25813fc91ef681eb1f
|
PODFILE CHECKSUM: 76346ded4b0438dd89826a25813fc91ef681eb1f
|
||||||
|
|
||||||
COCOAPODS: 1.15.2
|
COCOAPODS: 1.16.2
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
debugDocumentVersioning = "YES"
|
debugDocumentVersioning = "YES"
|
||||||
debugServiceExtension = "internal"
|
debugServiceExtension = "internal"
|
||||||
|
enableGPUValidationMode = "1"
|
||||||
allowLocationSimulation = "YES">
|
allowLocationSimulation = "YES">
|
||||||
<BuildableProductRunnable
|
<BuildableProductRunnable
|
||||||
runnableDebuggingMode = "0">
|
runnableDebuggingMode = "0">
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import Flutter
|
||||||
import Firebase
|
import Firebase
|
||||||
import FirebaseCore
|
import FirebaseCore
|
||||||
|
|
||||||
@UIApplicationMain
|
@main
|
||||||
@objc class AppDelegate: FlutterAppDelegate, MessagingDelegate {
|
@objc class AppDelegate: FlutterAppDelegate, MessagingDelegate {
|
||||||
override func application(
|
override func application(
|
||||||
_ application: UIApplication,
|
_ application: UIApplication,
|
||||||
|
|
|
||||||
|
|
@ -32,12 +32,14 @@ class AppInitializer {
|
||||||
final studioState = context.read<StudioDetailsState>();
|
final studioState = context.read<StudioDetailsState>();
|
||||||
MediaService.audioPlayer.playingStream.listen((event) {
|
MediaService.audioPlayer.playingStream.listen((event) {
|
||||||
if (event &&
|
if (event &&
|
||||||
(MediaService.audioPlayerTag?.contains('podcast') ?? false)) {
|
(MediaService.audioPlayerTag?.contains('podcast') ?? false) &&
|
||||||
|
MediaService.currentPodcast != null) {
|
||||||
studioState.handleTracking(
|
studioState.handleTracking(
|
||||||
id: MediaService.currentPodcast!.id,
|
id: MediaService.currentPodcast!.id,
|
||||||
sendRequest: false,
|
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);
|
studioState.handleTracking(id: MediaService.currentPodcast!.id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import 'package:didvan/routes/routes.dart';
|
||||||
import 'package:didvan/services/app_initalizer.dart';
|
import 'package:didvan/services/app_initalizer.dart';
|
||||||
import 'package:didvan/utils/action_sheet.dart';
|
import 'package:didvan/utils/action_sheet.dart';
|
||||||
import 'package:didvan/views/ai/ai_state.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/history_ai_chat_state.dart';
|
||||||
import 'package:didvan/views/ai/widgets/hoshan_drawer.dart';
|
import 'package:didvan/views/ai/widgets/hoshan_drawer.dart';
|
||||||
import 'package:didvan/views/home/categories/categories_page.dart';
|
import 'package:didvan/views/home/categories/categories_page.dart';
|
||||||
|
|
@ -43,103 +44,6 @@ class _HomeState extends State<Home>
|
||||||
with SingleTickerProviderStateMixin, WidgetsBindingObserver {
|
with SingleTickerProviderStateMixin, WidgetsBindingObserver {
|
||||||
late final TabController _tabController;
|
late final TabController _tabController;
|
||||||
|
|
||||||
Future<void> _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
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
// Remove dialog showing logic to prevent welcome popups
|
// Remove dialog showing logic to prevent welcome popups
|
||||||
|
|
@ -151,10 +55,11 @@ class _HomeState extends State<Home>
|
||||||
DesignConfig.updateSystemUiOverlayStyle();
|
DesignConfig.updateSystemUiOverlayStyle();
|
||||||
_tabController = TabController(length: 4, vsync: this, initialIndex: 0);
|
_tabController = TabController(length: 4, vsync: this, initialIndex: 0);
|
||||||
state.tabController = _tabController;
|
state.tabController = _tabController;
|
||||||
|
|
||||||
_tabController.addListener(() {
|
_tabController.addListener(() {
|
||||||
state.currentPageIndex = _tabController.index;
|
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<HistoryAiChatState>();
|
final historyState = context.read<HistoryAiChatState>();
|
||||||
historyState.chats.clear();
|
historyState.chats.clear();
|
||||||
|
|
@ -183,20 +88,20 @@ class _HomeState extends State<Home>
|
||||||
}
|
}
|
||||||
|
|
||||||
PreferredSizeWidget getAppBar() {
|
PreferredSizeWidget getAppBar() {
|
||||||
// Show HoshanAppBar only for AI section (index 3)
|
// Show HoshanAppBar only for AI section (index 3)
|
||||||
if (context.watch<HomeState>().tabController.index == 3) {
|
if (context.watch<HomeState>().tabController.index == 3) {
|
||||||
return HoshanAppBar(
|
return HoshanAppBar(
|
||||||
onBack: () {
|
onBack: () {
|
||||||
final state = context.read<AiState>();
|
final state = context.read<AiState>();
|
||||||
if (state.page == 1) {
|
if (state.page == 1) {
|
||||||
state.goToAi();
|
state.goToAi();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
|
||||||
// For all other tabs (home, categories, statistics), show LogoAppBar
|
|
||||||
return const LogoAppBar();
|
|
||||||
}
|
}
|
||||||
|
// For all other tabs (home, categories, statistics), show LogoAppBar
|
||||||
|
return const LogoAppBar();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
@ -228,7 +133,8 @@ class _HomeState extends State<Home>
|
||||||
confrimTitle: 'بله',
|
confrimTitle: 'بله',
|
||||||
dismissTitle: 'خیر',
|
dismissTitle: 'خیر',
|
||||||
));
|
));
|
||||||
} else if (context.read<HomeState>().tabController.index == 3) { // Changed from 2 to 3
|
} else if (context.read<HomeState>().tabController.index == 3) {
|
||||||
|
// Changed from 2 to 3
|
||||||
switch (context.read<AiState>().page) {
|
switch (context.read<AiState>().page) {
|
||||||
case 1:
|
case 1:
|
||||||
context.read<AiState>().goToAi();
|
context.read<AiState>().goToAi();
|
||||||
|
|
@ -258,7 +164,7 @@ class _HomeState extends State<Home>
|
||||||
MainPage(),
|
MainPage(),
|
||||||
CategoriesPage(),
|
CategoriesPage(),
|
||||||
NewStatistic(),
|
NewStatistic(),
|
||||||
// AiSection(),
|
Ai(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ class _MainPagePodcastItemState extends State<MainPagePodcastItem> {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
debugPrint("Playing podcast from URL: ${widget.content.link}");
|
||||||
final state = context.read<StudioDetailsState>();
|
final state = context.read<StudioDetailsState>();
|
||||||
await state.getStudioDetails(
|
await state.getStudioDetails(
|
||||||
widget.content.id,
|
widget.content.id,
|
||||||
|
|
|
||||||
|
|
@ -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/studio_details_state.dart';
|
||||||
import 'package:didvan/views/podcasts/studio_details/widgets/studio_details_widget.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/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/didvan/app_bar.dart';
|
||||||
import 'package:didvan/views/widgets/state_handlers/state_handler.dart';
|
import 'package:didvan/views/widgets/state_handlers/state_handler.dart';
|
||||||
import 'package:didvan/views/widgets/video/primary_controls.dart';
|
import 'package:didvan/views/widgets/video/primary_controls.dart';
|
||||||
|
|
@ -66,13 +67,14 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _initializePlayer(StudioDetailsData studio) async {
|
Future<void> _initializePlayer(StudioDetailsData studio) async {
|
||||||
if (widget.pageData['args']['type'] == 'video') {
|
if (studio.type == 'video') {
|
||||||
// Disposing old controllers before creating new ones.
|
// Disposing old controllers before creating new ones.
|
||||||
_videoPlayerController?.dispose();
|
_videoPlayerController?.dispose();
|
||||||
_chewieController?.dispose();
|
_chewieController?.dispose();
|
||||||
|
|
||||||
|
debugPrint("Playing video from URL: ${studio.link}");
|
||||||
_videoPlayerController = VideoPlayerController.network(studio.link);
|
_videoPlayerController = VideoPlayerController.network(studio.link);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await _videoPlayerController!.initialize();
|
await _videoPlayerController!.initialize();
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
|
|
@ -92,7 +94,7 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Error initializing video player: $e");
|
debugPrint("Error initializing video player: $e");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Handle audio playback using MediaService
|
// Handle audio playback using MediaService
|
||||||
|
|
@ -149,7 +151,9 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
appBarData: AppBarData(
|
appBarData: AppBarData(
|
||||||
trailing: BookmarkButton(
|
trailing: BookmarkButton(
|
||||||
itemId: state.studio.id,
|
itemId: state.studio.id,
|
||||||
type: state.args?.type == 'video' ? 'video' : 'podcast',
|
type: state.studio.type == 'video'
|
||||||
|
? 'video'
|
||||||
|
: 'podcast',
|
||||||
value: state.studio.marked,
|
value: state.studio.marked,
|
||||||
onMarkChanged: (value) {
|
onMarkChanged: (value) {
|
||||||
widget.pageData['onMarkChanged'](
|
widget.pageData['onMarkChanged'](
|
||||||
|
|
@ -167,12 +171,12 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
height: d.size.height - d.padding.top - 56,
|
height: d.size.height - d.padding.top - 56,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
if (state.args?.type == 'video')
|
if (state.studio.type == 'video')
|
||||||
AspectRatio(
|
AspectRatio(
|
||||||
aspectRatio: 16 / 9,
|
aspectRatio: 16 / 9,
|
||||||
child: (_chewieController != null &&
|
child: (_chewieController != null &&
|
||||||
_chewieController!
|
_chewieController!.videoPlayerController
|
||||||
.videoPlayerController.value.isInitialized)
|
.value.isInitialized)
|
||||||
? Chewie(controller: _chewieController!)
|
? Chewie(controller: _chewieController!)
|
||||||
: Center(
|
: Center(
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
|
|
@ -182,6 +186,8 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
if (state.studio.type == 'podcast')
|
||||||
|
AudioPlayerWidget(podcast: state.studio),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: StudioDetailsWidget(
|
child: StudioDetailsWidget(
|
||||||
onMarkChanged: (id, value) => widget
|
onMarkChanged: (id, value) => widget
|
||||||
|
|
@ -207,4 +213,4 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
_chewieController?.dispose();
|
_chewieController?.dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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/studio_details_state.dart';
|
||||||
import 'package:didvan/views/podcasts/studio_details/widgets/studio_details_widget.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/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/didvan/app_bar.dart';
|
||||||
import 'package:didvan/views/widgets/state_handlers/state_handler.dart';
|
import 'package:didvan/views/widgets/state_handlers/state_handler.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
@ -42,17 +43,20 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
state: state,
|
state: state,
|
||||||
onRetry: () => state.getStudioDetails(state.studio.id),
|
onRetry: () => state.getStudioDetails(state.studio.id),
|
||||||
builder: (context, state) {
|
builder: (context, state) {
|
||||||
// ignore: undefined_prefixed_name
|
if (state.studio.type == 'video') {
|
||||||
ui.platformViewRegistry.registerViewFactory(
|
debugPrint("Playing video from URL: ${state.studio.link}");
|
||||||
"video",
|
// ignore: undefined_prefixed_name
|
||||||
(int viewId) => html.IFrameElement()
|
ui.platformViewRegistry.registerViewFactory(
|
||||||
..allowFullscreen = true
|
"video",
|
||||||
..src = Uri.dataFromString(
|
(int viewId) => html.IFrameElement()
|
||||||
'<style>*{padding: 0 ; margin: 0; background: black;}</style>${state.studio.iframe!}',
|
..allowFullscreen = true
|
||||||
mimeType: 'text/html',
|
..src = Uri.dataFromString(
|
||||||
).toString()
|
'<style>*{padding: 0 ; margin: 0; background: black;}</style>${state.studio.iframe!}',
|
||||||
..style.border = 'none',
|
mimeType: 'text/html',
|
||||||
);
|
).toString()
|
||||||
|
..style.border = 'none',
|
||||||
|
);
|
||||||
|
}
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: () async {
|
onWillPop: () async {
|
||||||
if (MediaService.currentPodcast != null) {
|
if (MediaService.currentPodcast != null) {
|
||||||
|
|
@ -70,7 +74,8 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
appBarData: AppBarData(
|
appBarData: AppBarData(
|
||||||
trailing: BookmarkButton(
|
trailing: BookmarkButton(
|
||||||
itemId: state.studio.id,
|
itemId: state.studio.id,
|
||||||
type: 'video',
|
type:
|
||||||
|
state.studio.type == 'video' ? 'video' : 'podcast',
|
||||||
value: state.studio.marked,
|
value: state.studio.marked,
|
||||||
onMarkChanged: (value) {
|
onMarkChanged: (value) {
|
||||||
widget.pageData['onMarkChanged'](
|
widget.pageData['onMarkChanged'](
|
||||||
|
|
@ -89,13 +94,16 @@ class _StudioDetailsState extends State<StudioDetails> {
|
||||||
height: d.size.height - d.padding.top - 56,
|
height: d.size.height - d.padding.top - 56,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
AspectRatio(
|
if (state.studio.type == 'video')
|
||||||
aspectRatio: 16 / 9,
|
AspectRatio(
|
||||||
child: HtmlElementView(
|
aspectRatio: 16 / 9,
|
||||||
viewType: 'video',
|
child: HtmlElementView(
|
||||||
key: ValueKey(state.studio.id),
|
viewType: 'video',
|
||||||
|
key: ValueKey(state.studio.id),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
if (state.studio.type == 'podcast')
|
||||||
|
AudioPlayerWidget(podcast: state.studio),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: StudioDetailsWidget(
|
child: StudioDetailsWidget(
|
||||||
onMarkChanged: (id, value) => widget
|
onMarkChanged: (id, value) => widget
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,12 @@ class StudioDetailsWidget extends StatelessWidget {
|
||||||
child: Consumer<StudioDetailsState>(
|
child: Consumer<StudioDetailsState>(
|
||||||
builder: (context, state, child) {
|
builder: (context, state, child) {
|
||||||
bool isVideo = state.studio.iframe != null;
|
bool isVideo = state.studio.iframe != null;
|
||||||
|
double topOffset = isVideo
|
||||||
|
? ds.width * 9 / 16
|
||||||
|
: 400; // برای ویدیو aspect ratio، برای پادکست ارتفاع AudioPlayerWidget
|
||||||
return Container(
|
return Container(
|
||||||
height: max(
|
height: max(
|
||||||
ds.height -
|
ds.height - topOffset - 72 - MediaQuery.of(context).padding.top,
|
||||||
ds.width * 9 / 16 -
|
|
||||||
72 -
|
|
||||||
MediaQuery.of(context).padding.top,
|
|
||||||
0),
|
0),
|
||||||
color: Theme.of(context).colorScheme.surface,
|
color: Theme.of(context).colorScheme.surface,
|
||||||
child: Stack(
|
child: Stack(
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ class _UserStoryViewerState extends State<UserStoryViewer>
|
||||||
|
|
||||||
_currentStoryIndex =
|
_currentStoryIndex =
|
||||||
widget.userStories.stories.indexWhere((story) => !story.isViewed.value);
|
widget.userStories.stories.indexWhere((story) => !story.isViewed.value);
|
||||||
|
|
||||||
if (_currentStoryIndex == -1) {
|
if (_currentStoryIndex == -1) {
|
||||||
_currentStoryIndex = 0;
|
_currentStoryIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -142,6 +142,7 @@ class _UserStoryViewerState extends State<UserStoryViewer>
|
||||||
_animationController.forward();
|
_animationController.forward();
|
||||||
break;
|
break;
|
||||||
case MediaType.video:
|
case MediaType.video:
|
||||||
|
debugPrint("Playing story video from URL: ${story.url}");
|
||||||
_videoController =
|
_videoController =
|
||||||
VideoPlayerController.networkUrl(Uri.parse(story.url));
|
VideoPlayerController.networkUrl(Uri.parse(story.url));
|
||||||
_videoController!.initialize().then((_) {
|
_videoController!.initialize().then((_) {
|
||||||
|
|
@ -167,6 +168,12 @@ class _UserStoryViewerState extends State<UserStoryViewer>
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
_nextStory();
|
_nextStory();
|
||||||
}
|
}
|
||||||
|
}).timeout(const Duration(seconds: 10), onTimeout: () {
|
||||||
|
// ignore: avoid_print
|
||||||
|
print("Video initialization timed out. Skipping.");
|
||||||
|
if (mounted) {
|
||||||
|
_nextStory();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -409,4 +416,4 @@ class _UserInfo extends StatelessWidget {
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/app_links_linux-1.0.3/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/device_info_plus-11.5.0/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/file_picker-8.3.7/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/file_selector_linux-0.9.3+2/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_local_notifications_linux-6.0.0/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/gtk-2.1.0/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/image_picker_linux-0.2.1+2/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/package_info_plus-8.3.0/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_linux-2.2.1/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/record_linux-0.7.2/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/sentry_flutter-8.14.2/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/url_launcher_linux-3.2.1/
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
C:/Users/UI-UX/AppData/Local/Pub/Cache/hosted/pub.dev/wakelock_plus-1.3.1/
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
//
|
||||||
|
// Generated file. Do not edit.
|
||||||
|
//
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
|
#include <file_selector_linux/file_selector_plugin.h>
|
||||||
|
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
|
||||||
|
#include <gtk/gtk_plugin.h>
|
||||||
|
#include <record_linux/record_linux_plugin.h>
|
||||||
|
#include <sentry_flutter/sentry_flutter_plugin.h>
|
||||||
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
//
|
||||||
|
// Generated file. Do not edit.
|
||||||
|
//
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
#ifndef GENERATED_PLUGIN_REGISTRANT_
|
||||||
|
#define GENERATED_PLUGIN_REGISTRANT_
|
||||||
|
|
||||||
|
#include <flutter_linux/flutter_linux.h>
|
||||||
|
|
||||||
|
// Registers Flutter plugins.
|
||||||
|
void fl_register_plugins(FlPluginRegistry* registry);
|
||||||
|
|
||||||
|
#endif // GENERATED_PLUGIN_REGISTRANT_
|
||||||
|
|
@ -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 $<TARGET_FILE:${plugin}_plugin>)
|
||||||
|
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)
|
||||||
|
|
@ -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"))
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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"
|
||||||
|
|
@ -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
|
||||||
16
pubspec.lock
16
pubspec.lock
|
|
@ -1670,34 +1670,34 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: webview_flutter
|
name: webview_flutter
|
||||||
sha256: caf0f5a1012aa3c2d33c4215adc72dc1194bb59a2d3ed901f457965626805e66
|
sha256: c3e4fe614b1c814950ad07186007eff2f2e5dd2935eba7b9a9a1af8e5885f1ba
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.11.0"
|
version: "4.13.0"
|
||||||
webview_flutter_android:
|
webview_flutter_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
sha256: "5c3b6f992d123084903ec091b84f021c413a92a9af49038e4564a1b26c8452cf"
|
sha256: "9a25f6b4313978ba1c2cda03a242eea17848174912cfb4d2d8ee84a556f248e3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.4.1"
|
version: "4.10.1"
|
||||||
webview_flutter_platform_interface:
|
webview_flutter_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_platform_interface
|
name: webview_flutter_platform_interface
|
||||||
sha256: "18b1640839cf6546784a524c72aded5b6e86b23e7167dc2311cc96f7658b64bd"
|
sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.11.0"
|
version: "2.14.0"
|
||||||
webview_flutter_wkwebview:
|
webview_flutter_wkwebview:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_wkwebview
|
name: webview_flutter_wkwebview
|
||||||
sha256: c9f9be526fa0d3347374ceaa05c4b3acb85f4f112abd62f7d74b7d301fa515ff
|
sha256: fb46db8216131a3e55bcf44040ca808423539bc6732e7ed34fb6d8044e3d512f
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.20.0"
|
version: "3.23.0"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ dependencies:
|
||||||
# image_cropper: ^1.5.0
|
# image_cropper: ^1.5.0
|
||||||
firebase_core: ^3.1.0
|
firebase_core: ^3.1.0
|
||||||
firebase_messaging: ^15.0.1
|
firebase_messaging: ^15.0.1
|
||||||
webview_flutter: ^4.8.0
|
webview_flutter: ^4.13.0
|
||||||
expandable_bottom_sheet: ^1.1.1+1
|
expandable_bottom_sheet: ^1.1.1+1
|
||||||
permission_handler: ^11.0.0
|
permission_handler: ^11.0.0
|
||||||
# better_player:
|
# better_player:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue