Compare commits

...

4 Commits

Author SHA1 Message Date
Kingkor Roy Tirtho
5ea4df932f cd: add back rpm for x86_64 2025-11-13 16:03:08 +06:00
Kingkor Roy Tirtho
3462e32a6c chore: add arch for install deps 2025-11-13 15:39:58 +06:00
Kingkor Roy Tirtho
a452122302 cd: add appimage support and use fastforge 2025-11-13 15:15:13 +06:00
Kingkor Roy Tirtho
11866d532b chore: remove useless dependencies 2025-11-13 14:57:08 +06:00
49 changed files with 597 additions and 344 deletions

25
.github/Dockerfile vendored
View File

@ -1,25 +0,0 @@
ARG FLUTTER_VERSION
FROM --platform=linux/arm64 krtirtho/flutter_distributor:${FLUTTER_VERSION}
ARG BUILD_VERSION
WORKDIR /app
COPY . .
RUN chown -R $(whoami) /app
RUN rustup target add aarch64-unknown-linux-gnu
RUN flutter pub get
RUN alias dpkg-deb="dpkg-deb --Zxz" &&\
flutter_distributor package --platform=linux --targets=deb --skip-clean
RUN make tar VERSION=${BUILD_VERSION} ARCH=arm64 PKG_ARCH=aarch64
RUN mv build/spotube-linux-*-aarch64.tar.xz dist/ &&\
mv dist/**/spotube-*-linux.deb dist/Spotube-linux-aarch64.deb
CMD [ "sleep", "5000000" ]

View File

@ -37,12 +37,14 @@ jobs:
files: |
dist/Spotube-linux-x86_64.deb
dist/Spotube-linux-x86_64.rpm
dist/Spotube-linux-x86_64.AppImage
dist/spotube-linux-*-x86_64.tar.xz
- os: ubuntu-22.04-arm
platform: linux
arch: arm64
files: |
dist/Spotube-linux-aarch64.deb
dist/Spotube-linux-aarch64.AppImage
dist/spotube-linux-*-aarch64.tar.xz
- os: ubuntu-22.04
platform: android
@ -107,7 +109,7 @@ jobs:
- name: Install ${{matrix.platform}} dependencies
run: |
flutter pub get
dart cli/cli.dart install-dependencies --platform=${{matrix.platform}}
dart cli/cli.dart install-dependencies --platform=${{matrix.platform}} --arch=${{matrix.arch}}
- name: Sign Apk
if: ${{matrix.platform == 'android'}}

View File

@ -59,7 +59,7 @@ mixin BuildCommandCommonSteps on Command {
"""
flutter pub get
dart run build_runner build --delete-conflicting-outputs
dart pub global activate flutter_distributor
dart pub global activate fastforge
""",
);
}

View File

@ -37,12 +37,11 @@ class LinuxBuildCommand extends Command with BuildCommandCommonSteps {
await bootstrap();
await shell.run(
"flutter_distributor package --platform=linux --targets=deb",
"fastforge package --platform=linux --targets=deb,appimage",
);
if (architecture == "x86") {
await shell.run(
"flutter_distributor package --platform=linux --targets=rpm",
"fastforge package --platform=linux --targets=rpm",
);
}
@ -116,6 +115,23 @@ class LinuxBuildCommand extends Command with BuildCommandCommonSteps {
await ogRpm.delete();
}
final ogAppImage = File(
join(
cwd.path,
"dist",
pubspec.version.toString(),
"spotube-${pubspec.version}-linux.AppImage",
),
);
await ogAppImage.copy(
join(
cwd.path,
"dist",
"Spotube-linux-$bundleArchName.AppImage",
),
);
await ogAppImage.delete();
stdout.writeln("✅ Linux building done");
}
}

View File

@ -21,7 +21,7 @@ class MacosBuildCommand extends Command with BuildCommandCommonSteps {
"""
flutter build macos
appdmg appdmg.json ${join(cwd.path, "build", "Spotube-macos-universal.dmg")}
flutter_distributor package --platform=macos --targets pkg --skip-clean
fastforge package --platform=macos --targets pkg --skip-clean
""",
);

View File

@ -61,7 +61,7 @@ class WindowsBuildCommand extends Command with BuildCommandCommonSteps {
);
await shell.run(
"flutter_distributor package --platform=windows --targets=exe --skip-clean",
"fastforge package --platform=windows --targets=exe --skip-clean",
);
final ogExe = File(

View File

@ -37,6 +37,8 @@ class InstallDependenciesCommand extends Command {
FutureOr? run() async {
final shell = Shell();
final arch = argResults?.option("arch") == "x86" ? "x86_64" : "aarch64";
switch (argResults!.option("platform")) {
case "windows":
await shell.run(
@ -49,7 +51,10 @@ class InstallDependenciesCommand extends Command {
await shell.run(
"""
sudo apt-get update -y
sudo apt-get install -y tar clang cmake ninja-build pkg-config libgtk-3-dev make python3-pip python3-setuptools desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace fuse libunwind-dev locate patchelf gir1.2-appindicator3-0.1 libappindicator3-1 libappindicator3-dev libsecret-1-0 libjsoncpp25 libsecret-1-dev libjsoncpp-dev libnotify-bin libnotify-dev mpv libmpv-dev libwebkit2gtk-4.1-0 libwebkit2gtk-4.1-dev libsoup-3.0-0 libsoup-3.0-dev
sudo apt-get install -y wget tar clang cmake ninja-build pkg-config libgtk-3-dev make python3-pip python3-setuptools desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace fuse libunwind-dev locate patchelf gir1.2-appindicator3-0.1 libappindicator3-1 libappindicator3-dev libsecret-1-0 libjsoncpp25 libsecret-1-dev libjsoncpp-dev libnotify-bin libnotify-dev mpv libmpv-dev libwebkit2gtk-4.1-0 libwebkit2gtk-4.1-dev libsoup-3.0-0 libsoup-3.0-dev
wget -O appimagetool "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$arch.AppImage"
chmod +x appimagetool
sudo mv appimagetool /usr/local/bin/
""",
);
break;

View File

@ -264,8 +264,10 @@
"change_cover": "Change cover",
"add_cover": "Add cover",
"restore_defaults": "Restore defaults",
"download_music_codec": "Download music codec",
"streaming_music_codec": "Streaming music codec",
"download_music_format": "Download music format",
"streaming_music_format": "Streaming music format",
"download_music_quality": "Download music quality",
"streaming_music_quality": "Streaming music quality",
"login_with_lastfm": "Login with Last.fm",
"connect": "Connect",
"disconnect_lastfm": "Disconnect Last.fm",

View File

@ -1743,17 +1743,29 @@ abstract class AppLocalizations {
/// **'Restore defaults'**
String get restore_defaults;
/// No description provided for @download_music_codec.
/// No description provided for @download_music_format.
///
/// In en, this message translates to:
/// **'Download music codec'**
String get download_music_codec;
/// **'Download music format'**
String get download_music_format;
/// No description provided for @streaming_music_codec.
/// No description provided for @streaming_music_format.
///
/// In en, this message translates to:
/// **'Streaming music codec'**
String get streaming_music_codec;
/// **'Streaming music format'**
String get streaming_music_format;
/// No description provided for @download_music_quality.
///
/// In en, this message translates to:
/// **'Download music quality'**
String get download_music_quality;
/// No description provided for @streaming_music_quality.
///
/// In en, this message translates to:
/// **'Streaming music quality'**
String get streaming_music_quality;
/// No description provided for @login_with_lastfm.
///

View File

@ -874,10 +874,16 @@ class AppLocalizationsAr extends AppLocalizations {
String get restore_defaults => 'استعادة الإعدادات الافتراضية';
@override
String get download_music_codec => 'تنزيل ترميز الموسيقى';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'ترميز الموسيقى بالتدفق';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'تسجيل الدخول باستخدام Last.fm';

View File

@ -873,10 +873,16 @@ class AppLocalizationsBn extends AppLocalizations {
String get restore_defaults => 'ডিফল্ট সেটিংস পুনরুদ্ধার করুন';
@override
String get download_music_codec => 'সঙ্গীত কোডেক ডাউনলোড করুন';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'স্ট্রিমিং সঙ্গীত কোডেক';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Last.fm দিয়ে লগইন করুন';

View File

@ -876,10 +876,16 @@ class AppLocalizationsCa extends AppLocalizations {
String get restore_defaults => 'Restaura els valors per defecte';
@override
String get download_music_codec => 'Descarrega el codec de música';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Codec de música en streaming';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Inicia la sessió amb Last.fm';

View File

@ -869,10 +869,16 @@ class AppLocalizationsCs extends AppLocalizations {
String get restore_defaults => 'Obnovit výchozí';
@override
String get download_music_codec => 'Kodek pro stahování';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Kodek pro streamování';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Přihlásit se pomocí Last.fm';

View File

@ -879,10 +879,16 @@ class AppLocalizationsDe extends AppLocalizations {
String get restore_defaults => 'Standardeinstellungen wiederherstellen';
@override
String get download_music_codec => 'Musik-Codec herunterladen';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Streaming-Musik-Codec';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Mit Last.fm anmelden';

View File

@ -871,10 +871,16 @@ class AppLocalizationsEn extends AppLocalizations {
String get restore_defaults => 'Restore defaults';
@override
String get download_music_codec => 'Download music codec';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Streaming music codec';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Login with Last.fm';

View File

@ -876,10 +876,16 @@ class AppLocalizationsEs extends AppLocalizations {
String get restore_defaults => 'Restaurar valores predeterminados';
@override
String get download_music_codec => 'Descargar códec de música';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Códec de música en streaming';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Iniciar sesión con Last.fm';

View File

@ -876,10 +876,16 @@ class AppLocalizationsEu extends AppLocalizations {
String get restore_defaults => 'Berrezarri berezko balioak';
@override
String get download_music_codec => 'Deskargatutako musikaren codec-a';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Streaming musikaren codec-a';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Hasi saioa Last.fm-n';

View File

@ -870,10 +870,16 @@ class AppLocalizationsFa extends AppLocalizations {
String get restore_defaults => 'بازیابی پیش فرض ها';
@override
String get download_music_codec => 'دانلود کدک موسیقی';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'کدک موسیقی استریمینگ';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'ورود با Last.fm';

View File

@ -872,10 +872,16 @@ class AppLocalizationsFi extends AppLocalizations {
String get restore_defaults => 'Palauta oletukset';
@override
String get download_music_codec => 'Ladatun musiikin codefc';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Suoratoistetun musiikin codec';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Kirjaudu sisään Last.fm:llä';

View File

@ -880,10 +880,16 @@ class AppLocalizationsFr extends AppLocalizations {
String get restore_defaults => 'Restaurer les valeurs par défaut';
@override
String get download_music_codec => 'Télécharger le codec musical';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Codec de musique en streaming';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Se connecter avec Last.fm';

View File

@ -872,10 +872,16 @@ class AppLocalizationsHi extends AppLocalizations {
String get restore_defaults => 'डिफ़ॉल्ट सेटिंग्स को बहाल करें';
@override
String get download_music_codec => 'संगीत कोडेक डाउनलोड करें';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'स्ट्रीमिंग संगीत कोडेक';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Last.fm से लॉगिन करें';

View File

@ -874,10 +874,16 @@ class AppLocalizationsId extends AppLocalizations {
String get restore_defaults => 'Kembalikan semula';
@override
String get download_music_codec => 'Unduh codec musik';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Streaming codec musik';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Masuk dengan Last.fm';

View File

@ -874,10 +874,16 @@ class AppLocalizationsIt extends AppLocalizations {
String get restore_defaults => 'Ripristina default';
@override
String get download_music_codec => 'Codec musicale scaricamento';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Codec musicale streaming';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Accesso a Last.fm';

View File

@ -861,10 +861,16 @@ class AppLocalizationsJa extends AppLocalizations {
String get restore_defaults => '設定を初期化';
@override
String get download_music_codec => 'ダウンロード用の音声コーデック';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'ストリーミング用の音声コーデック';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Last.fmでログイン';

View File

@ -872,10 +872,16 @@ class AppLocalizationsKa extends AppLocalizations {
String get restore_defaults => 'ნაგულისხმევი პარამეტრების აღდგენა';
@override
String get download_music_codec => 'მუსიკის კოდეკის გადმოწერა';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'სტრიმინგ მუსიკის კოდეკი';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Last.fm-ით შესვლა';

View File

@ -862,10 +862,16 @@ class AppLocalizationsKo extends AppLocalizations {
String get restore_defaults => '기본값으로 복원';
@override
String get download_music_codec => '다운로드 음악 코덱';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => '스트리밍 음악 코덱';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Last.fm에 로그인';

View File

@ -880,10 +880,16 @@ class AppLocalizationsNe extends AppLocalizations {
String get restore_defaults => 'पूर्वनिर्धारितहरू पुनः स्थापित गर्नुहोस्';
@override
String get download_music_codec => 'साङ्गीत कोडेक डाउनलोड गर्नुहोस्';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'स्ट्रिमिङ साङ्गीत कोडेक';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'लास्ट.एफ.एम सँग लगइन गर्नुहोस्';

View File

@ -872,10 +872,16 @@ class AppLocalizationsNl extends AppLocalizations {
String get restore_defaults => 'Standaardwaarden herstellen';
@override
String get download_music_codec => 'Download-codec';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Streaming-codec';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Inloggen met Last.fm';

View File

@ -873,10 +873,16 @@ class AppLocalizationsPl extends AppLocalizations {
String get restore_defaults => 'Przywróć domyślne';
@override
String get download_music_codec => 'Pobierz kodek muzyczny';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Kodek strumieniowy muzyki';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Zaloguj się z Last.fm';

View File

@ -873,10 +873,16 @@ class AppLocalizationsPt extends AppLocalizations {
String get restore_defaults => 'Restaurar padrões';
@override
String get download_music_codec => 'Descarregar codec de música';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Codec de streaming de música';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Iniciar sessão com o Last.fm';

View File

@ -874,10 +874,16 @@ class AppLocalizationsRu extends AppLocalizations {
String get restore_defaults => 'Восстановить настройки по умолчанию';
@override
String get download_music_codec => 'Загрузить кодек для музыки';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Кодек потоковой передачи музыки';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Войти с помощью Last.fm';

View File

@ -879,10 +879,16 @@ class AppLocalizationsTa extends AppLocalizations {
String get restore_defaults => 'இயல்புநிலைகளை மீட்டமை';
@override
String get download_music_codec => 'இசை கோடெக்கை பதிவிறக்கு';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'இசை கோடெக்கை ஸ்ட்ரீம் செய்';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Last.fm உடன் உள்நுழைக';

View File

@ -872,10 +872,16 @@ class AppLocalizationsTh extends AppLocalizations {
String get restore_defaults => 'คืนค่าเริ่มต้น';
@override
String get download_music_codec => 'ดาวน์โหลดโคเดคเพลง';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'สตรีมมิ่งโคเดคเพลง';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'เข้าสู่ระบบด้วย Last.fm';

View File

@ -878,10 +878,16 @@ class AppLocalizationsTl extends AppLocalizations {
String get restore_defaults => 'Ibalik ang mga default';
@override
String get download_music_codec => 'Codec para sa pag-download ng musika';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Codec para sa pag-stream ng musika';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Mag-login gamit ang Last.fm';

View File

@ -875,10 +875,16 @@ class AppLocalizationsTr extends AppLocalizations {
String get restore_defaults => 'Varsayılanları geri yükle';
@override
String get download_music_codec => 'Müzik codec bileşenini indir';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Müzik codec\'i akışı';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Last.fm ile giriş yap';

View File

@ -875,10 +875,16 @@ class AppLocalizationsUk extends AppLocalizations {
String get restore_defaults => 'Відновити налаштування за замовчуванням';
@override
String get download_music_codec => 'Завантажити кодек для музики';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Кодек потокової передачі музики';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Увійти з Last.fm';

View File

@ -875,10 +875,16 @@ class AppLocalizationsVi extends AppLocalizations {
String get restore_defaults => 'Khôi phục mặc định';
@override
String get download_music_codec => 'Định dạng tải xuống';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => 'Định dạng nghe';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => 'Đăng nhập bằng tài khoản Last.fm';

View File

@ -859,10 +859,16 @@ class AppLocalizationsZh extends AppLocalizations {
String get restore_defaults => '恢复默认值';
@override
String get download_music_codec => '下载音乐编解码器';
String get download_music_format => 'Download music format';
@override
String get streaming_music_codec => '流媒体音乐编解码器';
String get streaming_music_format => 'Streaming music format';
@override
String get download_music_quality => 'Download music quality';
@override
String get streaming_music_quality => 'Streaming music quality';
@override
String get login_with_lastfm => '使用 Last.fm 登录';
@ -2376,12 +2382,6 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get restore_defaults => '恢復預設值';
@override
String get download_music_codec => '下載音樂編解碼器';
@override
String get streaming_music_codec => '串流音樂編解碼器';
@override
String get login_with_lastfm => '使用 Last.fm 登入';

View File

@ -1,6 +1,7 @@
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:spotube/components/fallbacks/not_found.dart';
import 'package:spotube/components/image/universal_image.dart';
import 'package:spotube/components/inter_scrollbar/inter_scrollbar.dart';
import 'package:spotube/components/ui/button_tile.dart';
@ -9,8 +10,7 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/extensions/duration.dart';
import 'package:spotube/models/metadata/metadata.dart';
import 'package:spotube/provider/audio_player/audio_player.dart';
import 'package:spotube/provider/audio_player/querying_track_info.dart';
import 'package:spotube/provider/server/active_track_sources.dart';
import 'package:spotube/provider/server/sourced_track_provider.dart';
class SiblingTracksSheet extends HookConsumerWidget {
final bool floating;
@ -23,38 +23,45 @@ class SiblingTracksSheet extends HookConsumerWidget {
Widget build(BuildContext context, ref) {
final controller = useScrollController();
final isFetchingActiveTrack = ref.watch(queryingTrackInfoProvider);
final activeTrackSources = ref.watch(activeTrackSourcesProvider);
final activeTrackNotifier = activeTrackSources.asData?.value?.notifier;
final activeTrack = activeTrackSources.asData?.value?.track;
final activeTrackSource = activeTrackSources.asData?.value?.source;
final activeTrack =
ref.watch(audioPlayerProvider.select((e) => e.activeTrack));
if (activeTrack == null || activeTrack is! SpotubeFullTrackObject) {
return const SafeArea(child: NotFound());
}
return HookBuilder(builder: (context) {
final sourcedTrack = ref.watch(sourcedTrackProvider(activeTrack));
final sourcedTrackNotifier =
ref.watch(sourcedTrackProvider(activeTrack).notifier);
final siblings = useMemoized<List<SpotubeAudioSourceMatchObject>>(
() => !isFetchingActiveTrack
? [
if (activeTrackSource != null) activeTrackSource.info,
...?activeTrackSource?.siblings,
() => !sourcedTrack.isLoading
? <SpotubeAudioSourceMatchObject>[
if (sourcedTrack.asData?.value != null)
sourcedTrack.asData!.value.info,
...?sourcedTrack.asData?.value.siblings,
]
: <SpotubeAudioSourceMatchObject>[],
[activeTrackSource, isFetchingActiveTrack],
[sourcedTrack],
);
final previousActiveTrack = usePrevious(activeTrack);
useEffect(() {
/// Populate sibling when active track changes
if (previousActiveTrack?.id == activeTrack?.id) return;
if (activeTrackSource != null && activeTrackSource.siblings.isEmpty) {
activeTrackNotifier?.copyWithSibling();
if (sourcedTrack.asData?.value != null &&
sourcedTrack.asData?.value.siblings.isEmpty == true) {
sourcedTrackNotifier.copyWithSibling();
}
return null;
}, [activeTrack, previousActiveTrack]);
}, [sourcedTrack]);
return SafeArea(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16),
padding:
const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16),
child: Row(
spacing: 5,
children: [
@ -68,7 +75,7 @@ class SiblingTracksSheet extends HookConsumerWidget {
),
AnimatedSwitcher(
duration: const Duration(milliseconds: 300),
child: activeTrackSources.isLoading
child: sourcedTrack.isLoading
? const SizedBox(
width: double.infinity,
child: LinearProgressIndicator(),
@ -107,21 +114,20 @@ class SiblingTracksSheet extends HookConsumerWidget {
: null,
trailing:
Text(sourceInfo.duration.toHumanReadableString()),
subtitle: Flexible(
child: Text(
subtitle: Text(
sourceInfo.artists.join(", "),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
),
enabled: !isFetchingActiveTrack,
selected: !isFetchingActiveTrack &&
sourceInfo.id == activeTrackSource?.info.id,
enabled: !sourcedTrack.isLoading,
selected: !sourcedTrack.isLoading &&
sourceInfo.id == sourcedTrack.asData?.value.info.id,
onPressed: () async {
if (!isFetchingActiveTrack &&
sourceInfo.id != activeTrackSource?.info.id) {
await activeTrackNotifier
?.swapWithSibling(sourceInfo);
if (!sourcedTrack.isLoading &&
sourceInfo.id !=
sourcedTrack.asData?.value.info.id) {
await sourcedTrackNotifier
.swapWithSibling(sourceInfo);
await ref
.read(audioPlayerProvider.notifier)
.swapActiveSource();
@ -144,5 +150,6 @@ class SiblingTracksSheet extends HookConsumerWidget {
],
),
);
});
}
}

View File

@ -67,8 +67,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
),
if (sourcePresets.presets.isNotEmpty) ...[
AdaptiveSelectTile(
secondary: const Icon(SpotubeIcons.api),
title: Text(context.l10n.streaming_music_codec),
secondary: const Icon(SpotubeIcons.plugin),
title: Text(context.l10n.streaming_music_format),
value: sourcePresets.selectedStreamingContainerIndex,
options: [
for (final MapEntry(:key, value: preset)
@ -81,8 +81,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
},
),
AdaptiveSelectTile(
secondary: const Icon(SpotubeIcons.api),
title: const Text("Streaming music quality"),
secondary: const Icon(SpotubeIcons.audioQuality),
title: Text(context.l10n.streaming_music_quality),
value: sourcePresets.selectedStreamingQualityIndex,
options: [
for (final MapEntry(:key, value: quality) in sourcePresets
@ -98,8 +98,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
},
),
AdaptiveSelectTile(
secondary: const Icon(SpotubeIcons.api),
title: Text(context.l10n.download_music_codec),
secondary: const Icon(SpotubeIcons.plugin),
title: Text(context.l10n.download_music_format),
value: sourcePresets.selectedDownloadingContainerIndex,
options: [
for (final MapEntry(:key, value: preset)
@ -112,8 +112,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
},
),
AdaptiveSelectTile(
secondary: const Icon(SpotubeIcons.api),
title: const Text("Downloading music quality"),
secondary: const Icon(SpotubeIcons.audioQuality),
title: Text(context.l10n.download_music_quality),
value: sourcePresets.selectedStreamingQualityIndex,
options: [
for (final MapEntry(:key, value: quality) in sourcePresets

View File

@ -53,7 +53,7 @@ class PlaybackHistorySummaryNotifier
database.historyTable.itemId.count(distinct: true);
final itemIdCountingCol = database.historyTable.itemId.count();
final durationSumJsonColumn =
database.historyTable.data.jsonExtract<int>(r"$.duration_ms").sum();
database.historyTable.data.jsonExtract<int>(r"$.durationMs").sum();
final artistCountingCol =
database.historyTable.data.jsonExtract<String>(r"$.artists");

View File

@ -17,7 +17,6 @@
#include <open_file_linux/open_file_linux_plugin.h>
#include <screen_retriever_linux/screen_retriever_linux_plugin.h>
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
#include <system_theme/system_theme_plugin.h>
#include <tray_manager/tray_manager_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
#include <window_manager/window_manager_plugin.h>
@ -56,9 +55,6 @@ void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin");
sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar);
g_autoptr(FlPluginRegistrar) system_theme_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "SystemThemePlugin");
system_theme_plugin_register_with_registrar(system_theme_registrar);
g_autoptr(FlPluginRegistrar) tray_manager_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "TrayManagerPlugin");
tray_manager_plugin_register_with_registrar(tray_manager_registrar);

View File

@ -14,7 +14,6 @@ list(APPEND FLUTTER_PLUGIN_LIST
open_file_linux
screen_retriever_linux
sqlite3_flutter_libs
system_theme
tray_manager
url_launcher_linux
window_manager

View File

@ -27,7 +27,6 @@ import screen_retriever_macos
import shared_preferences_foundation
import sqflite_darwin
import sqlite3_flutter_libs
import system_theme
import tray_manager
import url_launcher_macos
import window_manager
@ -55,7 +54,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin"))
SystemThemePlugin.register(with: registry.registrar(forPlugin: "SystemThemePlugin"))
TrayManagerPlugin.register(with: registry.registrar(forPlugin: "TrayManagerPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin"))

View File

@ -82,7 +82,7 @@ packages:
source: hosted
version: "1.6.5"
async:
dependency: "direct main"
dependency: transitive
description:
name: async
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
@ -531,14 +531,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.9.0"
dio_http2_adapter:
dependency: "direct main"
description:
name: dio_http2_adapter
sha256: b8bd5d587fd228a461711f8b82f378ccd4bf1fbf7802e7663ca60d7b5ce0e3aa
url: "https://pub.dev"
source: hosted
version: "2.6.0"
dio_web_adapter:
dependency: transitive
description:
@ -1082,14 +1074,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "11.2.0"
form_validator:
dependency: "direct main"
description:
name: form_validator
sha256: "8cbe91b7d5260870d6fb9e23acd55d5d1d1fdf2397f0279a4931ac3c0c7bf8fb"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
freezed:
dependency: "direct dev"
description:
@ -1128,7 +1112,7 @@ packages:
source: hosted
version: "1.2.0"
gap:
dependency: "direct main"
dependency: transitive
description:
name: gap
sha256: f19387d4e32f849394758b91377f9153a1b41d79513ef7668c088c77dbc6955d
@ -1151,14 +1135,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.3"
google_fonts:
dependency: "direct main"
description:
name: google_fonts
sha256: ebc94ed30fd13cefd397cb1658b593f21571f014b7d1197eeb41fb95f05d899a
url: "https://pub.dev"
source: hosted
version: "6.3.1"
graphs:
dependency: transitive
description:
@ -1266,14 +1242,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.5.0"
http2:
dependency: transitive
description:
name: http2
sha256: "382d3aefc5bd6dc68c6b892d7664f29b5beb3251611ae946a98d35158a82bbfa"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
http_methods:
dependency: transitive
description:
@ -1424,7 +1392,7 @@ packages:
source: hosted
version: "0.6.7"
json_annotation:
dependency: "direct main"
dependency: transitive
description:
name: json_annotation
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
@ -1530,58 +1498,65 @@ packages:
media_kit:
dependency: "direct main"
description:
name: media_kit
sha256: "52a8e989babc431db0aa242f32a4a08e55f60662477ea09759a105d7cd6410da"
url: "https://pub.dev"
source: hosted
path: media_kit
ref: HEAD
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
url: "https://github.com/media-kit/media-kit"
source: git
version: "1.2.1"
media_kit_libs_android_audio:
dependency: transitive
dependency: "direct overridden"
description:
name: media_kit_libs_android_audio
sha256: "8f8f9759e537e12d66f08bc4d5279eb1bb21a0ccc519ff3442c68a9f3b6dd68b"
url: "https://pub.dev"
source: hosted
path: "libs/android/media_kit_libs_android_audio"
ref: HEAD
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
url: "https://github.com/media-kit/media-kit"
source: git
version: "1.3.8"
media_kit_libs_audio:
dependency: "direct main"
description:
name: media_kit_libs_audio
sha256: "81bf506c234e81e3ec536ba72f8f700a928543c14c345220210cae0411636316"
url: "https://pub.dev"
source: hosted
path: "libs/universal/media_kit_libs_audio"
ref: HEAD
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
url: "https://github.com/media-kit/media-kit"
source: git
version: "1.0.7"
media_kit_libs_ios_audio:
dependency: transitive
dependency: "direct overridden"
description:
name: media_kit_libs_ios_audio
sha256: "78ccf04e27d6b4ba00a355578ccb39b772f00d48269a6ac3db076edf2d51934f"
url: "https://pub.dev"
source: hosted
path: "libs/ios/media_kit_libs_ios_audio"
ref: HEAD
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
url: "https://github.com/media-kit/media-kit"
source: git
version: "1.1.4"
media_kit_libs_linux:
dependency: transitive
dependency: "direct overridden"
description:
name: media_kit_libs_linux
sha256: "2b473399a49ec94452c4d4ae51cfc0f6585074398d74216092bf3d54aac37ecf"
url: "https://pub.dev"
source: hosted
path: "libs/linux/media_kit_libs_linux"
ref: HEAD
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
url: "https://github.com/media-kit/media-kit"
source: git
version: "1.2.1"
media_kit_libs_macos_audio:
dependency: transitive
dependency: "direct overridden"
description:
name: media_kit_libs_macos_audio
sha256: "3be21844df98f286de32808592835073cdef2c1a10078bac135da790badca950"
url: "https://pub.dev"
source: hosted
path: "libs/macos/media_kit_libs_macos_audio"
ref: HEAD
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
url: "https://github.com/media-kit/media-kit"
source: git
version: "1.1.4"
media_kit_libs_windows_audio:
dependency: transitive
dependency: "direct overridden"
description:
name: media_kit_libs_windows_audio
sha256: c2fd558cc87b9d89a801141fcdffe02e338a3b21a41a18fbd63d5b221a1b8e53
url: "https://pub.dev"
source: hosted
path: "libs/windows/media_kit_libs_windows_audio"
ref: HEAD
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
url: "https://github.com/media-kit/media-kit"
source: git
version: "1.0.9"
menu_base:
dependency: transitive
@ -1711,14 +1686,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.0.3"
otp_util:
dependency: "direct main"
description:
name: otp_util
sha256: dd8956c6472bacc3ffabe62c03f8a9782d1e5a5a3f2674420970f549d642b1cf
url: "https://pub.dev"
source: hosted
version: "1.0.2"
package_config:
dependency: transitive
description:
@ -2381,14 +2348,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.4.1"
stroke_text:
dependency: "direct main"
description:
name: stroke_text
sha256: "783fee071e3a3c5d3fe24011d7d776ce3cd64792e01b650c6b727ac3f38cb37b"
url: "https://pub.dev"
source: hosted
version: "0.0.3"
sync_http:
dependency: transitive
description:
@ -2405,22 +2364,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.4.0"
system_theme:
dependency: "direct main"
description:
name: system_theme
sha256: "5f93485401689601d4636a695f99f7c70a30873ee68c1d95025d908a3386be7e"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
system_theme_web:
dependency: transitive
description:
name: system_theme_web
sha256: "900c92c5c050ce58048f241ef9a17e5cd8629808325a05b473dc62a6e99bae77"
url: "https://pub.dev"
source: hosted
version: "0.0.3"
term_glyph:
dependency: transitive
description:
@ -2430,7 +2373,7 @@ packages:
source: hosted
version: "1.2.2"
test:
dependency: "direct main"
dependency: "direct dev"
description:
name: test
sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb"

View File

@ -15,7 +15,6 @@ environment:
dependencies:
app_links: ^6.4.0
args: ^2.5.0
async: ^2.11.0
audio_service: ^0.18.13
audio_service_mpris: ^0.2.0
audio_session: ^0.1.19
@ -64,11 +63,8 @@ dependencies:
flutter_sharing_intent: ^1.1.0
flutter_undraw: ^0.2.1
form_builder_validators: ^11.1.1
form_validator: ^2.1.1
freezed_annotation: ^2.4.1
fuzzywuzzy: ^1.1.6
gap: ^3.0.1
google_fonts: ^6.2.1
home_widget: ^0.7.0
hooks_riverpod: ^2.5.1
html: ^0.15.1
@ -76,13 +72,10 @@ dependencies:
http: ^1.2.1
image_picker: ^1.1.0
intl: any
json_annotation: ^4.8.1
local_notifier: ^0.1.6
logger: ^2.0.2
logging: ^1.3.0
lrc: ^1.0.2
media_kit: ^1.2.1
media_kit_libs_audio: ^1.0.7
metadata_god: ^1.1.0
mime: ^2.0.0
open_file: ^3.5.10
@ -109,9 +102,6 @@ dependencies:
smtc_windows: ^1.1.0
sqlite3: ^2.4.3
sqlite3_flutter_libs: ^0.5.23
stroke_text: ^0.0.2
system_theme: ^3.1.2
test: ^1.25.7
timezone: ^0.10.0
titlebar_buttons: ^1.0.0
tray_manager: ^0.5.0
@ -134,8 +124,6 @@ dependencies:
url: https://github.com/KRTirtho/flutter_new_pipe_extractor.git
http_parser: ^4.1.2
collection: any
otp_util: ^1.0.2
dio_http2_adapter: ^2.6.0
archive: ^4.0.7
hetu_script: ^0.4.2+1
hetu_std:
@ -155,6 +143,15 @@ dependencies:
pub_semver: ^2.2.0
change_case: ^1.1.0
flutter_secure_storage: ^9.2.4
# Have to use the git version due to unresponsive .move() after .add()
media_kit:
git:
url: https://github.com/media-kit/media-kit
path: media_kit
media_kit_libs_audio:
git:
url: https://github.com/media-kit/media-kit
path: libs/universal/media_kit_libs_audio
dev_dependencies:
build_runner: ^2.4.13
@ -173,6 +170,7 @@ dev_dependencies:
pub_api_client: ^3.0.0
io: ^1.0.4
drift_dev: ^2.21.0
test: ^1.25.7
auto_route_generator: ^9.0.0
dependency_overrides:
@ -191,6 +189,26 @@ dependency_overrides:
url: https://github.com/m-berto/flutter_secure_storage.git
ref: patch-2
path: flutter_secure_storage_linux
media_kit_libs_android_audio:
git:
url: https://github.com/media-kit/media-kit
path: libs/android/media_kit_libs_android_audio
media_kit_libs_ios_audio:
git:
url: https://github.com/media-kit/media-kit
path: libs/ios/media_kit_libs_ios_audio
media_kit_libs_macos_audio:
git:
url: https://github.com/media-kit/media-kit
path: libs/macos/media_kit_libs_macos_audio
media_kit_libs_windows_audio:
git:
url: https://github.com/media-kit/media-kit
path: libs/windows/media_kit_libs_windows_audio
media_kit_libs_linux:
git:
url: https://github.com/media-kit/media-kit
path: libs/linux/media_kit_libs_linux
flutter:
generate: true

View File

@ -1,5 +1,9 @@
{
"ar": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -12,6 +16,10 @@
],
"bn": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -24,6 +32,10 @@
],
"ca": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -36,6 +48,10 @@
],
"cs": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -48,6 +64,10 @@
],
"de": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -60,6 +80,10 @@
],
"es": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -72,6 +96,10 @@
],
"eu": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -84,6 +112,10 @@
],
"fa": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -96,6 +128,10 @@
],
"fi": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -108,6 +144,10 @@
],
"fr": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -120,6 +160,10 @@
],
"hi": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -132,6 +176,10 @@
],
"id": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -144,6 +192,10 @@
],
"it": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -156,6 +208,10 @@
],
"ja": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -168,6 +224,10 @@
],
"ka": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -180,6 +240,10 @@
],
"ko": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -192,6 +256,10 @@
],
"ne": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -205,6 +273,10 @@
"nl": [
"audio_source",
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -217,6 +289,10 @@
],
"pl": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -229,6 +305,10 @@
],
"pt": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -241,6 +321,10 @@
],
"ru": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -253,6 +337,10 @@
],
"ta": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -265,6 +353,10 @@
],
"th": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -277,6 +369,10 @@
],
"tl": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -289,6 +385,10 @@
],
"tr": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -301,6 +401,10 @@
],
"uk": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -313,6 +417,10 @@
],
"vi": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -325,6 +433,10 @@
],
"zh": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",
@ -337,6 +449,10 @@
],
"zh_TW": [
"download_music_format",
"streaming_music_format",
"download_music_quality",
"streaming_music_quality",
"default_metadata_source",
"set_default_metadata_source",
"default_audio_source",

View File

@ -20,7 +20,6 @@
#include <permission_handler_windows/permission_handler_windows_plugin.h>
#include <screen_retriever_windows/screen_retriever_windows_plugin_c_api.h>
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
#include <system_theme/system_theme_plugin.h>
#include <tray_manager/tray_manager_plugin.h>
#include <url_launcher_windows/url_launcher_windows.h>
#include <window_manager/window_manager_plugin.h>
@ -54,8 +53,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi"));
Sqlite3FlutterLibsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin"));
SystemThemePluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SystemThemePlugin"));
TrayManagerPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("TrayManagerPlugin"));
UrlLauncherWindowsRegisterWithRegistrar(

View File

@ -17,7 +17,6 @@ list(APPEND FLUTTER_PLUGIN_LIST
permission_handler_windows
screen_retriever_windows
sqlite3_flutter_libs
system_theme
tray_manager
url_launcher_windows
window_manager