mirror of
https://github.com/madari-media/madari-oss.git
synced 2026-01-11 22:40:23 +00:00
Project import generated by Copybara.
GitOrigin-RevId: 8003932dd0f6ca45434fc3fbf9aa641057bc5acb
This commit is contained in:
parent
af06c03549
commit
79b9ac256a
12 changed files with 420 additions and 165 deletions
104
.github/workflows/build-deploy.yaml
vendored
104
.github/workflows/build-deploy.yaml
vendored
|
|
@ -9,7 +9,6 @@ on:
|
|||
jobs:
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
|
||||
environment: prod
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
|
@ -17,22 +16,20 @@ jobs:
|
|||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.27.1'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Touch .env
|
||||
run: touch .env
|
||||
|
||||
- run: make build
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
touch .env
|
||||
|
||||
- name: Build Windows
|
||||
run: make build_windows
|
||||
|
||||
- name: Upload Windows artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-build
|
||||
path: build/windows/x64/runner/Release/
|
||||
|
|
@ -46,7 +43,6 @@ jobs:
|
|||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.27.1'
|
||||
channel: 'stable'
|
||||
|
||||
- uses: actions/setup-java@v4
|
||||
|
|
@ -57,10 +53,9 @@ jobs:
|
|||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Touch .env
|
||||
run: touch .env
|
||||
|
||||
- run: make build
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
touch .env
|
||||
|
||||
- name: Create key.properties file
|
||||
run: |
|
||||
|
|
@ -77,7 +72,90 @@ jobs:
|
|||
run: make build_android
|
||||
|
||||
- name: Upload Android artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: android-build
|
||||
path: build/app/outputs/flutter-apk/app-release.apk
|
||||
|
||||
build_ipa:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
touch .env
|
||||
|
||||
- name: Build iOS
|
||||
run: flutter build ios --release
|
||||
|
||||
- name: Upload iOS artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ios-build
|
||||
path: build/ios/iphoneos/Runner.app
|
||||
|
||||
build_linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y ninja-build libgtk-3-dev
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
touch .env
|
||||
|
||||
- name: Build Linux
|
||||
run: flutter build linux
|
||||
|
||||
- name: Upload Linux artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux-build
|
||||
path: build/linux/x64/release/bundle
|
||||
|
||||
build_macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
touch .env
|
||||
|
||||
- name: Build MacOS
|
||||
run: flutter build macos
|
||||
|
||||
- name: Upload MacOS artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-build
|
||||
path: build/macos/Build/Products/Release/Madari.app
|
||||
|
|
|
|||
255
.github/workflows/release.yaml
vendored
Normal file
255
.github/workflows/release.yaml
vendored
Normal file
|
|
@ -0,0 +1,255 @@
|
|||
name: Create Release on Tag
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
environment: prod
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: 'stable'
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
echo "API_KEY=${{ secrets.API_KEY }}" > .env
|
||||
|
||||
- name: Build Windows
|
||||
run: make build_windows
|
||||
|
||||
- name: Upload Windows artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-build
|
||||
path: build/windows/x64/runner/Release/
|
||||
|
||||
build-android:
|
||||
runs-on: ubuntu-latest
|
||||
environment: prod
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: 'stable'
|
||||
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
java-version: '11'
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
echo "API_KEY=${{ secrets.API_KEY }}" > .env
|
||||
|
||||
- name: Create key.properties file
|
||||
run: |
|
||||
echo "storePassword=${{ secrets.STORE_PASSWORD }}" >> android/key.properties
|
||||
echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/key.properties
|
||||
echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/key.properties
|
||||
echo "storeFile=key.jks" >> android/key.properties
|
||||
|
||||
- name: Decode and save keystore file
|
||||
run: |
|
||||
echo "${{ secrets.STORE_FILE_BASE64 }}" | base64 --decode > android/app/key.jks
|
||||
|
||||
- name: Build Android
|
||||
run: make build_android
|
||||
|
||||
- name: Upload Android artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: android-build
|
||||
path: build/app/outputs/flutter-apk/app-release.apk
|
||||
|
||||
build_ipa:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
echo "API_KEY=${{ secrets.API_KEY }}" > .env
|
||||
|
||||
- name: Build iOS
|
||||
run: flutter build ios --release
|
||||
|
||||
- name: Upload iOS artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ios-build
|
||||
path: build/ios/iphoneos/Runner.app
|
||||
|
||||
build_linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y ninja-build libgtk-3-dev
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
echo "API_KEY=${{ secrets.API_KEY }}" > .env
|
||||
|
||||
- name: Build Linux
|
||||
run: flutter build linux
|
||||
|
||||
- name: Upload Linux artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux-build
|
||||
path: build/linux/x64/release/bundle
|
||||
|
||||
build_macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Set up environment variables
|
||||
run: |
|
||||
echo "API_KEY=${{ secrets.API_KEY }}" > .env
|
||||
|
||||
- name: Build MacOS
|
||||
run: flutter build macos
|
||||
|
||||
- name: Upload MacOS artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-build
|
||||
path: build/macos/Build/Products/Release/Madari.app
|
||||
|
||||
create-release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-windows, build-android, build_ipa, build_linux, build_macos]
|
||||
steps:
|
||||
- name: Download Windows artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: windows-build
|
||||
path: artifacts/windows
|
||||
|
||||
- name: Download Android artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: android-build
|
||||
path: artifacts/android
|
||||
|
||||
- name: Download iOS artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ios-build
|
||||
path: artifacts/ios
|
||||
|
||||
- name: Download Linux artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: linux-build
|
||||
path: artifacts/linux
|
||||
|
||||
- name: Download MacOS artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: macos-build
|
||||
path: artifacts/macos
|
||||
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: Release ${{ github.ref }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
|
||||
- name: Upload Windows artifact to Release
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: artifacts/windows/your-windows-build-file.exe
|
||||
asset_name: your-windows-build-file.exe
|
||||
asset_content_type: application/octet-stream
|
||||
|
||||
- name: Upload Android artifact to Release
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: artifacts/android/app-release.apk
|
||||
asset_name: app-release.apk
|
||||
asset_content_type: application/vnd.android.package-archive
|
||||
|
||||
- name: Upload iOS artifact to Release
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: artifacts/ios/Runner.app
|
||||
asset_name: Runner.app
|
||||
asset_content_type: application/octet-stream
|
||||
|
||||
- name: Upload Linux artifact to Release
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: artifacts/linux/your-linux-build-file
|
||||
asset_name: your-linux-build-file
|
||||
asset_content_type: application/octet-stream
|
||||
|
||||
- name: Upload MacOS artifact to Release
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: artifacts/macos/Madari.app
|
||||
asset_name: Madari.app
|
||||
asset_content_type: application/octet-stream
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -5,9 +5,11 @@
|
|||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.build/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
.swiftpm/
|
||||
migrate_working_dir/
|
||||
|
||||
# IntelliJ related
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
PODS:
|
||||
- audio_session (0.0.1):
|
||||
- Flutter
|
||||
- background_downloader (0.0.1):
|
||||
- Flutter
|
||||
- bonsoir_darwin (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- connectivity_plus (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- DKImagePickerController/Core (4.3.9):
|
||||
- DKImagePickerController/ImageDataManager
|
||||
- DKImagePickerController/Resource
|
||||
|
|
@ -45,21 +49,11 @@ PODS:
|
|||
- flutter_inappwebview_ios/Core (0.0.1):
|
||||
- Flutter
|
||||
- OrderedSet (~> 6.0.3)
|
||||
- google_mlkit_commons (0.9.0):
|
||||
- Flutter
|
||||
- MLKitVision
|
||||
- google_mlkit_text_recognition (0.14.0):
|
||||
- Flutter
|
||||
- google_mlkit_commons
|
||||
- GoogleMLKit/TextRecognition (~> 7.0.0)
|
||||
- GoogleDataTransport (10.1.0):
|
||||
- nanopb (~> 3.30910.0)
|
||||
- PromisesObjC (~> 2.4)
|
||||
- GoogleMLKit/MLKitCore (7.0.0):
|
||||
- MLKitCommon (~> 12.0.0)
|
||||
- GoogleMLKit/TextRecognition (7.0.0):
|
||||
- GoogleMLKit/MLKitCore
|
||||
- MLKitTextRecognition (~> 5.0.0)
|
||||
- GoogleMLKit/TextRecognitionChinese (7.0.0):
|
||||
- GoogleMLKit/MLKitCore
|
||||
- MLKitTextRecognitionChinese (~> 4.0.0)
|
||||
|
|
@ -89,8 +83,6 @@ PODS:
|
|||
- GTMSessionFetcher/Core (3.5.0)
|
||||
- image_picker_ios (0.0.1):
|
||||
- Flutter
|
||||
- just_audio (0.0.1):
|
||||
- Flutter
|
||||
- media_kit_libs_ios_video (1.0.4):
|
||||
- Flutter
|
||||
- media_kit_native_event_loop (1.0.0):
|
||||
|
|
@ -105,10 +97,6 @@ PODS:
|
|||
- GoogleUtilities/Logger (~> 8.0)
|
||||
- GoogleUtilities/UserDefaults (~> 8.0)
|
||||
- GTMSessionFetcher/Core (< 4.0, >= 3.3.2)
|
||||
- MLKitTextRecognition (5.0.0):
|
||||
- MLKitCommon (~> 12.0)
|
||||
- MLKitTextRecognitionCommon (= 4.0.0)
|
||||
- MLKitVision (~> 8.0)
|
||||
- MLKitTextRecognitionChinese (4.0.0):
|
||||
- MLKitCommon (~> 12.0)
|
||||
- MLKitTextRecognitionCommon (= 4.0.0)
|
||||
|
|
@ -148,9 +136,9 @@ PODS:
|
|||
- pdfrx (0.0.3):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- PromisesObjC (2.4.0)
|
||||
- screen_brightness_ios (0.1.0):
|
||||
- permission_handler_apple (9.3.0):
|
||||
- Flutter
|
||||
- PromisesObjC (2.4.0)
|
||||
- SDWebImage (5.20.0):
|
||||
- SDWebImage/Core (= 5.20.0)
|
||||
- SDWebImage/Core (5.20.0)
|
||||
|
|
@ -182,9 +170,6 @@ PODS:
|
|||
- SwiftyGif (5.4.5)
|
||||
- url_launcher_ios (0.0.1):
|
||||
- Flutter
|
||||
- video_player_avfoundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- volume_controller (0.0.1):
|
||||
- Flutter
|
||||
- wakelock_plus (0.0.1):
|
||||
|
|
@ -194,31 +179,28 @@ PODS:
|
|||
- FlutterMacOS
|
||||
|
||||
DEPENDENCIES:
|
||||
- audio_session (from `.symlinks/plugins/audio_session/ios`)
|
||||
- background_downloader (from `.symlinks/plugins/background_downloader/ios`)
|
||||
- bonsoir_darwin (from `.symlinks/plugins/bonsoir_darwin/darwin`)
|
||||
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
|
||||
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
|
||||
- google_mlkit_commons (from `.symlinks/plugins/google_mlkit_commons/ios`)
|
||||
- google_mlkit_text_recognition (from `.symlinks/plugins/google_mlkit_text_recognition/ios`)
|
||||
- GoogleMLKit/TextRecognitionChinese (~> 7.0.0)
|
||||
- GoogleMLKit/TextRecognitionDevanagari (~> 7.0.0)
|
||||
- GoogleMLKit/TextRecognitionJapanese (~> 7.0.0)
|
||||
- GoogleMLKit/TextRecognitionKorean (~> 7.0.0)
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
- just_audio (from `.symlinks/plugins/just_audio/ios`)
|
||||
- media_kit_libs_ios_video (from `.symlinks/plugins/media_kit_libs_ios_video/ios`)
|
||||
- media_kit_native_event_loop (from `.symlinks/plugins/media_kit_native_event_loop/ios`)
|
||||
- media_kit_video (from `.symlinks/plugins/media_kit_video/ios`)
|
||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
||||
- pdfrx (from `.symlinks/plugins/pdfrx/darwin`)
|
||||
- screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`)
|
||||
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
||||
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
|
||||
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
|
||||
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`)
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
||||
- volume_controller (from `.symlinks/plugins/volume_controller/ios`)
|
||||
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
|
||||
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`)
|
||||
|
|
@ -234,7 +216,6 @@ SPEC REPOS:
|
|||
- GTMSessionFetcher
|
||||
- MLImage
|
||||
- MLKitCommon
|
||||
- MLKitTextRecognition
|
||||
- MLKitTextRecognitionChinese
|
||||
- MLKitTextRecognitionCommon
|
||||
- MLKitTextRecognitionDevanagari
|
||||
|
|
@ -249,24 +230,20 @@ SPEC REPOS:
|
|||
- SwiftyGif
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
audio_session:
|
||||
:path: ".symlinks/plugins/audio_session/ios"
|
||||
background_downloader:
|
||||
:path: ".symlinks/plugins/background_downloader/ios"
|
||||
bonsoir_darwin:
|
||||
:path: ".symlinks/plugins/bonsoir_darwin/darwin"
|
||||
connectivity_plus:
|
||||
:path: ".symlinks/plugins/connectivity_plus/darwin"
|
||||
file_picker:
|
||||
:path: ".symlinks/plugins/file_picker/ios"
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
flutter_inappwebview_ios:
|
||||
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
|
||||
google_mlkit_commons:
|
||||
:path: ".symlinks/plugins/google_mlkit_commons/ios"
|
||||
google_mlkit_text_recognition:
|
||||
:path: ".symlinks/plugins/google_mlkit_text_recognition/ios"
|
||||
image_picker_ios:
|
||||
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||
just_audio:
|
||||
:path: ".symlinks/plugins/just_audio/ios"
|
||||
media_kit_libs_ios_video:
|
||||
:path: ".symlinks/plugins/media_kit_libs_ios_video/ios"
|
||||
media_kit_native_event_loop:
|
||||
|
|
@ -279,8 +256,8 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/path_provider_foundation/darwin"
|
||||
pdfrx:
|
||||
:path: ".symlinks/plugins/pdfrx/darwin"
|
||||
screen_brightness_ios:
|
||||
:path: ".symlinks/plugins/screen_brightness_ios/ios"
|
||||
permission_handler_apple:
|
||||
:path: ".symlinks/plugins/permission_handler_apple/ios"
|
||||
shared_preferences_foundation:
|
||||
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
|
||||
sqflite_darwin:
|
||||
|
|
@ -289,8 +266,6 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/sqlite3_flutter_libs/darwin"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
video_player_avfoundation:
|
||||
:path: ".symlinks/plugins/video_player_avfoundation/darwin"
|
||||
volume_controller:
|
||||
:path: ".symlinks/plugins/volume_controller/ios"
|
||||
wakelock_plus:
|
||||
|
|
@ -299,28 +274,25 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/webview_flutter_wkwebview/darwin"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207
|
||||
background_downloader: 9f788ffc5de45acf87d6380e91ca0841066c18cf
|
||||
bonsoir_darwin: e3b8526c42ca46a885142df84229131dfabea842
|
||||
connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695
|
||||
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
|
||||
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
|
||||
file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
|
||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||
flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
|
||||
google_mlkit_commons: 384e4e206e122b6dad430d3158205e0b2fac6789
|
||||
google_mlkit_text_recognition: e540f2aff997f2b0daaa1b4fd5ead3b0b7030adc
|
||||
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
||||
GoogleMLKit: eff9e23ec1d90ea4157a1ee2e32a4f610c5b3318
|
||||
GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8
|
||||
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
|
||||
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
||||
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
|
||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
||||
media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1
|
||||
media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a
|
||||
media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e
|
||||
MLImage: 0ad1c5f50edd027672d8b26b0fee78a8b4a0fc56
|
||||
MLKitCommon: 07c2c33ae5640e5380beaaa6e4b9c249a205542d
|
||||
MLKitTextRecognition: 3b41f3ff084a79afb214408d25d2068d77ab322c
|
||||
MLKitTextRecognitionChinese: a7e2d3e54d8be80091f7064741c54e2298a9d498
|
||||
MLKitTextRecognitionCommon: cd44577a8c506fc6bba065096de03bec0d01a213
|
||||
MLKitTextRecognitionDevanagari: b7a59a5e337ccb669eae82a503aa8e9287ba0c58
|
||||
|
|
@ -332,8 +304,8 @@ SPEC CHECKSUMS:
|
|||
package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
|
||||
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
||||
pdfrx: 07fc287c47ea8d027c4ed56457f8a1aa74d73594
|
||||
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
|
||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||
screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625
|
||||
SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8
|
||||
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
|
||||
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
|
||||
|
|
@ -341,7 +313,6 @@ SPEC CHECKSUMS:
|
|||
sqlite3_flutter_libs: 1b4e98da20ebd4e9b1240269b78cdcf492dbe9f3
|
||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
|
||||
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
|
||||
volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9
|
||||
wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1
|
||||
webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4
|
||||
|
|
|
|||
|
|
@ -161,11 +161,6 @@ class _ConnectionManagerState extends State<ConnectionManager> {
|
|||
appBar: AppBar(
|
||||
title: Text("Connection ${widget.item.title}"),
|
||||
actions: [
|
||||
TextButton.icon(
|
||||
onPressed: () {},
|
||||
label: const Text("Settings"),
|
||||
icon: const Icon(Icons.settings),
|
||||
),
|
||||
const SizedBox(width: 6),
|
||||
ElevatedButton.icon(
|
||||
onPressed: _isDragging || _isLoading
|
||||
|
|
|
|||
|
|
@ -295,6 +295,10 @@ class _CreateConnectionStepState extends State<CreateConnectionStep> {
|
|||
itemCount: _addons.length,
|
||||
itemBuilder: (context, index) {
|
||||
final addon = _addons[index];
|
||||
final name = utf8.decode(
|
||||
(addon['name'] ?? 'Unknown Addon').runes.toList(),
|
||||
);
|
||||
|
||||
return Card(
|
||||
margin: EdgeInsets.only(
|
||||
bottom: index + 1 != _addons.length ? 10 : 0,
|
||||
|
|
@ -309,7 +313,10 @@ class _CreateConnectionStepState extends State<CreateConnectionStep> {
|
|||
const Icon(Icons.extension),
|
||||
)
|
||||
: const Icon(Icons.extension, size: 40),
|
||||
title: Text(addon['name'] ?? 'Unknown Addon'),
|
||||
title: Text(
|
||||
name,
|
||||
maxLines: 1,
|
||||
),
|
||||
subtitle: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
|
|
|
|||
|
|
@ -7,10 +7,12 @@ import 'create_connection.dart';
|
|||
|
||||
class GettingStartedScreen extends StatefulWidget {
|
||||
final VoidCallback onCallback;
|
||||
final bool hasBackground;
|
||||
|
||||
const GettingStartedScreen({
|
||||
super.key,
|
||||
required this.onCallback,
|
||||
this.hasBackground = true,
|
||||
});
|
||||
|
||||
@override
|
||||
|
|
@ -27,8 +29,8 @@ class _GettingStartedScreenState extends State<GettingStartedScreen>
|
|||
late final List<OnboardingStep> steps = [
|
||||
OnboardingStep(
|
||||
key: 'create_connection',
|
||||
title: 'Create Connection',
|
||||
description: 'Connect your database securely with just a few clicks',
|
||||
title: 'Setup Connection',
|
||||
description: 'Configure your Stremio addons',
|
||||
icon: Icons.link_rounded,
|
||||
gradientColors: [Colors.purple.shade800, Colors.blue.shade900],
|
||||
),
|
||||
|
|
@ -81,16 +83,17 @@ class _GettingStartedScreenState extends State<GettingStartedScreen>
|
|||
|
||||
return Stack(
|
||||
children: [
|
||||
AnimatedContainer(
|
||||
duration: const Duration(milliseconds: 500),
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: steps[_currentPage].gradientColors,
|
||||
if (widget.hasBackground)
|
||||
AnimatedContainer(
|
||||
duration: const Duration(milliseconds: 500),
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: steps[_currentPage].gradientColors,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
// Content
|
||||
Center(
|
||||
child: ConstrainedBox(
|
||||
|
|
|
|||
|
|
@ -65,20 +65,20 @@ class AccountScreen extends StatelessWidget {
|
|||
subtitle: const Text('Manage notification preferences'),
|
||||
onTap: () => AccountNavigation.navigateToNotifications(context),
|
||||
),
|
||||
_buildSectionHeader('PAYMENT'),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.payment),
|
||||
title: const Text('Payment Methods'),
|
||||
subtitle: const Text('Manage your payment options'),
|
||||
onTap: () => AccountNavigation.navigateToPayments(context),
|
||||
),
|
||||
_buildSectionHeader('SUPPORT'),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.help),
|
||||
title: const Text('Help Center'),
|
||||
subtitle: const Text('Get help and contact support'),
|
||||
onTap: () => AccountNavigation.navigateToHelp(context),
|
||||
),
|
||||
// _buildSectionHeader('PAYMENT'),
|
||||
// ListTile(
|
||||
// leading: const Icon(Icons.payment),
|
||||
// title: const Text('Payment Methods'),
|
||||
// subtitle: const Text('Manage your payment options'),
|
||||
// onTap: () => AccountNavigation.navigateToPayments(context),
|
||||
// ),
|
||||
// _buildSectionHeader('SUPPORT'),
|
||||
// ListTile(
|
||||
// leading: const Icon(Icons.help),
|
||||
// title: const Text('Help Center'),
|
||||
// subtitle: const Text('Get help and contact support'),
|
||||
// onTap: () => AccountNavigation.navigateToHelp(context),
|
||||
// ),
|
||||
const SizedBox(height: 32),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:madari_client/features/connection/containers/connection_manager.dart';
|
||||
import 'package:madari_client/features/connection/containers/create_new_connection.dart';
|
||||
import 'package:madari_client/features/connection/containers/show_handle_connection_type.dart';
|
||||
import 'package:madari_client/features/getting_started/container/getting_started.dart';
|
||||
import 'package:madari_client/features/library/containers/connection_list.dart';
|
||||
import 'package:madari_client/features/library/screen/create_new_library.dart';
|
||||
|
||||
import '../../../engine/connection.dart';
|
||||
|
||||
|
|
@ -35,46 +32,16 @@ class _ConnectionsScreenState extends State<ConnectionsScreen> {
|
|||
isScrollControlled: true,
|
||||
isDismissible: true,
|
||||
builder: (context) {
|
||||
return CreateNewConnection(
|
||||
onCallback: (item) {
|
||||
Navigator.of(context).pop();
|
||||
|
||||
showModalBottomSheet(
|
||||
context: context,
|
||||
isScrollControlled: true,
|
||||
isDismissible: true,
|
||||
builder: (context) {
|
||||
return Scaffold(
|
||||
body: ShowHandleConnectionType(
|
||||
item: item,
|
||||
onFinish: (item) async {
|
||||
Navigator.of(context).pop();
|
||||
ref.refresh(getConnectionsProvider);
|
||||
|
||||
if (context.mounted) {
|
||||
showCupertinoModalPopup(
|
||||
context: context,
|
||||
builder: (ctx) {
|
||||
onCreated() {
|
||||
Navigator.of(ctx).pop();
|
||||
}
|
||||
|
||||
return CreateNewLibrary(
|
||||
onCreatedAnother: () {},
|
||||
item: item,
|
||||
onCreated: () {
|
||||
onCreated();
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 18.0,
|
||||
),
|
||||
child: GettingStartedScreen(
|
||||
onCallback: () {
|
||||
ref.refresh(getConnectionsProvider);
|
||||
},
|
||||
hasBackground: false,
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
|
|||
import 'package:go_router/go_router.dart';
|
||||
import 'package:madari_client/engine/engine.dart';
|
||||
import 'package:madari_client/features/watch_history/service/zeee_watch_history.dart';
|
||||
import 'package:madari_client/pages/getting_started.page.dart';
|
||||
import 'package:madari_client/pages/sign_in.page.dart';
|
||||
|
||||
import '../features/settings/screen/account_screen.dart';
|
||||
import '../features/settings/screen/connection_screen.dart';
|
||||
import '../features/settings/screen/playback_settings_screen.dart';
|
||||
import '../features/settings/screen/profile_button.dart';
|
||||
|
||||
|
|
@ -46,15 +46,7 @@ class MoreContainer extends StatelessWidget {
|
|||
subtitle: 'Manage your connected accounts',
|
||||
onTap: () => Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => Scaffold(
|
||||
appBar: AppBar(),
|
||||
body: const Padding(
|
||||
padding: EdgeInsets.only(
|
||||
bottom: 24.0,
|
||||
),
|
||||
child: GettingStartedPage(),
|
||||
),
|
||||
),
|
||||
builder: (context) => const ConnectionsScreen(),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
PODS:
|
||||
- audio_session (0.0.1):
|
||||
- FlutterMacOS
|
||||
- bonsoir_darwin (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
|
|
@ -13,8 +11,6 @@ PODS:
|
|||
- FlutterMacOS
|
||||
- OrderedSet (~> 6.0.3)
|
||||
- FlutterMacOS (1.0.0)
|
||||
- just_audio (0.0.1):
|
||||
- FlutterMacOS
|
||||
- media_kit_libs_macos_video (1.0.4):
|
||||
- FlutterMacOS
|
||||
- media_kit_native_event_loop (1.0.0):
|
||||
|
|
@ -59,9 +55,6 @@ PODS:
|
|||
- sqlite3/rtree
|
||||
- url_launcher_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- video_player_avfoundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- wakelock_plus (0.0.1):
|
||||
- FlutterMacOS
|
||||
- webview_flutter_wkwebview (0.0.1):
|
||||
|
|
@ -71,13 +64,11 @@ PODS:
|
|||
- FlutterMacOS
|
||||
|
||||
DEPENDENCIES:
|
||||
- audio_session (from `Flutter/ephemeral/.symlinks/plugins/audio_session/macos`)
|
||||
- bonsoir_darwin (from `Flutter/ephemeral/.symlinks/plugins/bonsoir_darwin/darwin`)
|
||||
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/darwin`)
|
||||
- file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`)
|
||||
- flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`)
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- just_audio (from `Flutter/ephemeral/.symlinks/plugins/just_audio/macos`)
|
||||
- media_kit_libs_macos_video (from `Flutter/ephemeral/.symlinks/plugins/media_kit_libs_macos_video/macos`)
|
||||
- media_kit_native_event_loop (from `Flutter/ephemeral/.symlinks/plugins/media_kit_native_event_loop/macos`)
|
||||
- media_kit_video (from `Flutter/ephemeral/.symlinks/plugins/media_kit_video/macos`)
|
||||
|
|
@ -89,7 +80,6 @@ DEPENDENCIES:
|
|||
- sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`)
|
||||
- sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin`)
|
||||
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||
- video_player_avfoundation (from `Flutter/ephemeral/.symlinks/plugins/video_player_avfoundation/darwin`)
|
||||
- wakelock_plus (from `Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos`)
|
||||
- webview_flutter_wkwebview (from `Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin`)
|
||||
- window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`)
|
||||
|
|
@ -100,8 +90,6 @@ SPEC REPOS:
|
|||
- sqlite3
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
audio_session:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/audio_session/macos
|
||||
bonsoir_darwin:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/bonsoir_darwin/darwin
|
||||
connectivity_plus:
|
||||
|
|
@ -112,8 +100,6 @@ EXTERNAL SOURCES:
|
|||
:path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos
|
||||
FlutterMacOS:
|
||||
:path: Flutter/ephemeral
|
||||
just_audio:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/just_audio/macos
|
||||
media_kit_libs_macos_video:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/media_kit_libs_macos_video/macos
|
||||
media_kit_native_event_loop:
|
||||
|
|
@ -136,8 +122,6 @@ EXTERNAL SOURCES:
|
|||
:path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin
|
||||
url_launcher_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||
video_player_avfoundation:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/video_player_avfoundation/darwin
|
||||
wakelock_plus:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos
|
||||
webview_flutter_wkwebview:
|
||||
|
|
@ -146,13 +130,11 @@ EXTERNAL SOURCES:
|
|||
:path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
audio_session: dea1f41890dbf1718f04a56f1d6150fd50039b72
|
||||
bonsoir_darwin: e3b8526c42ca46a885142df84229131dfabea842
|
||||
connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695
|
||||
file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d
|
||||
flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b
|
||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||
just_audio: 9b67ca7b97c61cfc9784ea23cd8cc55eb226d489
|
||||
media_kit_libs_macos_video: b3e2bbec2eef97c285f2b1baa7963c67c753fb82
|
||||
media_kit_native_event_loop: 81fd5b45192b72f8b5b69eaf5b540f45777eb8d5
|
||||
media_kit_video: c75b07f14d59706c775778e4dd47dd027de8d1e5
|
||||
|
|
@ -166,7 +148,6 @@ SPEC CHECKSUMS:
|
|||
sqlite3: 1e522f0938463e44b7faf50393b40bdc1e1e456d
|
||||
sqlite3_flutter_libs: 1b4e98da20ebd4e9b1240269b78cdcf492dbe9f3
|
||||
url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
|
||||
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
|
||||
wakelock_plus: 4783562c9a43d209c458cb9b30692134af456269
|
||||
webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4
|
||||
window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8
|
||||
|
|
|
|||
|
|
@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate {
|
|||
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue