Project import generated by Copybara.

GitOrigin-RevId: 8003932dd0f6ca45434fc3fbf9aa641057bc5acb
This commit is contained in:
Madari Developers 2025-01-03 07:05:10 +00:00
parent af06c03549
commit 79b9ac256a
12 changed files with 420 additions and 165 deletions

View file

@ -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
View 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
View file

@ -5,9 +5,11 @@
*.swp
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/
# IntelliJ related

View file

@ -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

View file

@ -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

View file

@ -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: [

View file

@ -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(

View file

@ -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),
],
),

View file

@ -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,
),
);
},
);

View file

@ -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(),
),
),
),

View file

@ -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

View file

@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate {
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true
}
override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
return true
}
}