mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-12-06 07:29:42 +00:00
Compare commits
4 Commits
d843ce9ede
...
5ea4df932f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ea4df932f | ||
|
|
3462e32a6c | ||
|
|
a452122302 | ||
|
|
11866d532b |
25
.github/Dockerfile
vendored
25
.github/Dockerfile
vendored
@ -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" ]
|
||||
4
.github/workflows/spotube-release-binary.yml
vendored
4
.github/workflows/spotube-release-binary.yml
vendored
@ -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'}}
|
||||
|
||||
@ -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
|
||||
""",
|
||||
);
|
||||
}
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
""",
|
||||
);
|
||||
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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.
|
||||
///
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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 দিয়ে লগইন করুন';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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ä';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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 से लॉगिन करें';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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でログイン';
|
||||
|
||||
@ -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-ით შესვლა';
|
||||
|
||||
@ -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에 로그인';
|
||||
|
||||
@ -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 => 'लास्ट.एफ.एम सँग लगइन गर्नुहोस्';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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 உடன் உள்நுழைக';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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 登入';
|
||||
|
||||
|
||||
@ -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,126 +23,133 @@ 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));
|
||||
|
||||
final siblings = useMemoized<List<SpotubeAudioSourceMatchObject>>(
|
||||
() => !isFetchingActiveTrack
|
||||
? [
|
||||
if (activeTrackSource != null) activeTrackSource.info,
|
||||
...?activeTrackSource?.siblings,
|
||||
]
|
||||
: <SpotubeAudioSourceMatchObject>[],
|
||||
[activeTrackSource, isFetchingActiveTrack],
|
||||
);
|
||||
if (activeTrack == null || activeTrack is! SpotubeFullTrackObject) {
|
||||
return const SafeArea(child: NotFound());
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
return null;
|
||||
}, [activeTrack, previousActiveTrack]);
|
||||
return HookBuilder(builder: (context) {
|
||||
final sourcedTrack = ref.watch(sourcedTrackProvider(activeTrack));
|
||||
final sourcedTrackNotifier =
|
||||
ref.watch(sourcedTrackProvider(activeTrack).notifier);
|
||||
|
||||
return SafeArea(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16),
|
||||
child: Row(
|
||||
spacing: 5,
|
||||
children: [
|
||||
AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 300),
|
||||
child: Text(
|
||||
context.l10n.alternative_track_sources,
|
||||
).bold()),
|
||||
],
|
||||
final siblings = useMemoized<List<SpotubeAudioSourceMatchObject>>(
|
||||
() => !sourcedTrack.isLoading
|
||||
? <SpotubeAudioSourceMatchObject>[
|
||||
if (sourcedTrack.asData?.value != null)
|
||||
sourcedTrack.asData!.value.info,
|
||||
...?sourcedTrack.asData?.value.siblings,
|
||||
]
|
||||
: <SpotubeAudioSourceMatchObject>[],
|
||||
[sourcedTrack],
|
||||
);
|
||||
|
||||
useEffect(() {
|
||||
/// Populate sibling when active track changes
|
||||
if (sourcedTrack.asData?.value != null &&
|
||||
sourcedTrack.asData?.value.siblings.isEmpty == true) {
|
||||
sourcedTrackNotifier.copyWithSibling();
|
||||
}
|
||||
return null;
|
||||
}, [sourcedTrack]);
|
||||
|
||||
return SafeArea(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16),
|
||||
child: Row(
|
||||
spacing: 5,
|
||||
children: [
|
||||
AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 300),
|
||||
child: Text(
|
||||
context.l10n.alternative_track_sources,
|
||||
).bold()),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 300),
|
||||
child: activeTrackSources.isLoading
|
||||
? const SizedBox(
|
||||
width: double.infinity,
|
||||
child: LinearProgressIndicator(),
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
),
|
||||
Expanded(
|
||||
child: AnimatedSwitcher(
|
||||
AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 300),
|
||||
transitionBuilder: (child, animation) =>
|
||||
FadeTransition(opacity: animation, child: child),
|
||||
child: InterScrollbar(
|
||||
controller: controller,
|
||||
child: ListView.separated(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: sourcedTrack.isLoading
|
||||
? const SizedBox(
|
||||
width: double.infinity,
|
||||
child: LinearProgressIndicator(),
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
),
|
||||
Expanded(
|
||||
child: AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 300),
|
||||
transitionBuilder: (child, animation) =>
|
||||
FadeTransition(opacity: animation, child: child),
|
||||
child: InterScrollbar(
|
||||
controller: controller,
|
||||
itemCount: siblings.length,
|
||||
separatorBuilder: (context, index) => const Gap(8),
|
||||
itemBuilder: (context, index) {
|
||||
final sourceInfo = siblings[index];
|
||||
child: ListView.separated(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
controller: controller,
|
||||
itemCount: siblings.length,
|
||||
separatorBuilder: (context, index) => const Gap(8),
|
||||
itemBuilder: (context, index) {
|
||||
final sourceInfo = siblings[index];
|
||||
|
||||
return ButtonTile(
|
||||
style: ButtonVariance.ghost,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||
title: Text(
|
||||
sourceInfo.title,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
leading: sourceInfo.thumbnail != null
|
||||
? UniversalImage(
|
||||
path: sourceInfo.thumbnail!,
|
||||
height: 60,
|
||||
width: 60,
|
||||
)
|
||||
: null,
|
||||
trailing:
|
||||
Text(sourceInfo.duration.toHumanReadableString()),
|
||||
subtitle: Flexible(
|
||||
child: Text(
|
||||
return ButtonTile(
|
||||
style: ButtonVariance.ghost,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||
title: Text(
|
||||
sourceInfo.title,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
leading: sourceInfo.thumbnail != null
|
||||
? UniversalImage(
|
||||
path: sourceInfo.thumbnail!,
|
||||
height: 60,
|
||||
width: 60,
|
||||
)
|
||||
: null,
|
||||
trailing:
|
||||
Text(sourceInfo.duration.toHumanReadableString()),
|
||||
subtitle: Text(
|
||||
sourceInfo.artists.join(", "),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
enabled: !isFetchingActiveTrack,
|
||||
selected: !isFetchingActiveTrack &&
|
||||
sourceInfo.id == activeTrackSource?.info.id,
|
||||
onPressed: () async {
|
||||
if (!isFetchingActiveTrack &&
|
||||
sourceInfo.id != activeTrackSource?.info.id) {
|
||||
await activeTrackNotifier
|
||||
?.swapWithSibling(sourceInfo);
|
||||
await ref
|
||||
.read(audioPlayerProvider.notifier)
|
||||
.swapActiveSource();
|
||||
enabled: !sourcedTrack.isLoading,
|
||||
selected: !sourcedTrack.isLoading &&
|
||||
sourceInfo.id == sourcedTrack.asData?.value.info.id,
|
||||
onPressed: () async {
|
||||
if (!sourcedTrack.isLoading &&
|
||||
sourceInfo.id !=
|
||||
sourcedTrack.asData?.value.info.id) {
|
||||
await sourcedTrackNotifier
|
||||
.swapWithSibling(sourceInfo);
|
||||
await ref
|
||||
.read(audioPlayerProvider.notifier)
|
||||
.swapActiveSource();
|
||||
|
||||
if (context.mounted) {
|
||||
if (MediaQuery.sizeOf(context).mdAndUp) {
|
||||
closeOverlay(context);
|
||||
} else {
|
||||
closeDrawer(context);
|
||||
if (context.mounted) {
|
||||
if (MediaQuery.sizeOf(context).mdAndUp) {
|
||||
closeOverlay(context);
|
||||
} else {
|
||||
closeDrawer(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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");
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"))
|
||||
|
||||
145
pubspec.lock
145
pubspec.lock
@ -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"
|
||||
|
||||
42
pubspec.yaml
42
pubspec.yaml
@ -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
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user