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: |
|
files: |
|
||||||
dist/Spotube-linux-x86_64.deb
|
dist/Spotube-linux-x86_64.deb
|
||||||
dist/Spotube-linux-x86_64.rpm
|
dist/Spotube-linux-x86_64.rpm
|
||||||
|
dist/Spotube-linux-x86_64.AppImage
|
||||||
dist/spotube-linux-*-x86_64.tar.xz
|
dist/spotube-linux-*-x86_64.tar.xz
|
||||||
- os: ubuntu-22.04-arm
|
- os: ubuntu-22.04-arm
|
||||||
platform: linux
|
platform: linux
|
||||||
arch: arm64
|
arch: arm64
|
||||||
files: |
|
files: |
|
||||||
dist/Spotube-linux-aarch64.deb
|
dist/Spotube-linux-aarch64.deb
|
||||||
|
dist/Spotube-linux-aarch64.AppImage
|
||||||
dist/spotube-linux-*-aarch64.tar.xz
|
dist/spotube-linux-*-aarch64.tar.xz
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
platform: android
|
platform: android
|
||||||
@ -107,7 +109,7 @@ jobs:
|
|||||||
- name: Install ${{matrix.platform}} dependencies
|
- name: Install ${{matrix.platform}} dependencies
|
||||||
run: |
|
run: |
|
||||||
flutter pub get
|
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
|
- name: Sign Apk
|
||||||
if: ${{matrix.platform == 'android'}}
|
if: ${{matrix.platform == 'android'}}
|
||||||
|
|||||||
@ -59,7 +59,7 @@ mixin BuildCommandCommonSteps on Command {
|
|||||||
"""
|
"""
|
||||||
flutter pub get
|
flutter pub get
|
||||||
dart run build_runner build --delete-conflicting-outputs
|
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 bootstrap();
|
||||||
|
|
||||||
await shell.run(
|
await shell.run(
|
||||||
"flutter_distributor package --platform=linux --targets=deb",
|
"fastforge package --platform=linux --targets=deb,appimage",
|
||||||
);
|
);
|
||||||
|
|
||||||
if (architecture == "x86") {
|
if (architecture == "x86") {
|
||||||
await shell.run(
|
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();
|
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");
|
stdout.writeln("✅ Linux building done");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ class MacosBuildCommand extends Command with BuildCommandCommonSteps {
|
|||||||
"""
|
"""
|
||||||
flutter build macos
|
flutter build macos
|
||||||
appdmg appdmg.json ${join(cwd.path, "build", "Spotube-macos-universal.dmg")}
|
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(
|
await shell.run(
|
||||||
"flutter_distributor package --platform=windows --targets=exe --skip-clean",
|
"fastforge package --platform=windows --targets=exe --skip-clean",
|
||||||
);
|
);
|
||||||
|
|
||||||
final ogExe = File(
|
final ogExe = File(
|
||||||
|
|||||||
@ -37,6 +37,8 @@ class InstallDependenciesCommand extends Command {
|
|||||||
FutureOr? run() async {
|
FutureOr? run() async {
|
||||||
final shell = Shell();
|
final shell = Shell();
|
||||||
|
|
||||||
|
final arch = argResults?.option("arch") == "x86" ? "x86_64" : "aarch64";
|
||||||
|
|
||||||
switch (argResults!.option("platform")) {
|
switch (argResults!.option("platform")) {
|
||||||
case "windows":
|
case "windows":
|
||||||
await shell.run(
|
await shell.run(
|
||||||
@ -49,7 +51,10 @@ class InstallDependenciesCommand extends Command {
|
|||||||
await shell.run(
|
await shell.run(
|
||||||
"""
|
"""
|
||||||
sudo apt-get update -y
|
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;
|
break;
|
||||||
|
|||||||
@ -264,8 +264,10 @@
|
|||||||
"change_cover": "Change cover",
|
"change_cover": "Change cover",
|
||||||
"add_cover": "Add cover",
|
"add_cover": "Add cover",
|
||||||
"restore_defaults": "Restore defaults",
|
"restore_defaults": "Restore defaults",
|
||||||
"download_music_codec": "Download music codec",
|
"download_music_format": "Download music format",
|
||||||
"streaming_music_codec": "Streaming music codec",
|
"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",
|
"login_with_lastfm": "Login with Last.fm",
|
||||||
"connect": "Connect",
|
"connect": "Connect",
|
||||||
"disconnect_lastfm": "Disconnect Last.fm",
|
"disconnect_lastfm": "Disconnect Last.fm",
|
||||||
|
|||||||
@ -1743,17 +1743,29 @@ abstract class AppLocalizations {
|
|||||||
/// **'Restore defaults'**
|
/// **'Restore defaults'**
|
||||||
String get 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:
|
/// In en, this message translates to:
|
||||||
/// **'Download music codec'**
|
/// **'Download music format'**
|
||||||
String get download_music_codec;
|
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:
|
/// In en, this message translates to:
|
||||||
/// **'Streaming music codec'**
|
/// **'Streaming music format'**
|
||||||
String get streaming_music_codec;
|
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.
|
/// No description provided for @login_with_lastfm.
|
||||||
///
|
///
|
||||||
|
|||||||
@ -874,10 +874,16 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get restore_defaults => 'استعادة الإعدادات الافتراضية';
|
String get restore_defaults => 'استعادة الإعدادات الافتراضية';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'تنزيل ترميز الموسيقى';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'تسجيل الدخول باستخدام Last.fm';
|
String get login_with_lastfm => 'تسجيل الدخول باستخدام Last.fm';
|
||||||
|
|||||||
@ -873,10 +873,16 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get restore_defaults => 'ডিফল্ট সেটিংস পুনরুদ্ধার করুন';
|
String get restore_defaults => 'ডিফল্ট সেটিংস পুনরুদ্ধার করুন';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'সঙ্গীত কোডেক ডাউনলোড করুন';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Last.fm দিয়ে লগইন করুন';
|
String get login_with_lastfm => 'Last.fm দিয়ে লগইন করুন';
|
||||||
|
|||||||
@ -876,10 +876,16 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Restaura els valors per defecte';
|
String get restore_defaults => 'Restaura els valors per defecte';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Descarrega el codec de música';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Inicia la sessió amb Last.fm';
|
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í';
|
String get restore_defaults => 'Obnovit výchozí';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Kodek pro stahování';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Přihlásit se pomocí Last.fm';
|
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';
|
String get restore_defaults => 'Standardeinstellungen wiederherstellen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Musik-Codec herunterladen';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Mit Last.fm anmelden';
|
String get login_with_lastfm => 'Mit Last.fm anmelden';
|
||||||
|
|||||||
@ -871,10 +871,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Restore defaults';
|
String get restore_defaults => 'Restore defaults';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Download music codec';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Login with Last.fm';
|
String get login_with_lastfm => 'Login with Last.fm';
|
||||||
|
|||||||
@ -876,10 +876,16 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Restaurar valores predeterminados';
|
String get restore_defaults => 'Restaurar valores predeterminados';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Descargar códec de música';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Iniciar sesión con Last.fm';
|
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';
|
String get restore_defaults => 'Berrezarri berezko balioak';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Deskargatutako musikaren codec-a';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Hasi saioa Last.fm-n';
|
String get login_with_lastfm => 'Hasi saioa Last.fm-n';
|
||||||
|
|||||||
@ -870,10 +870,16 @@ class AppLocalizationsFa extends AppLocalizations {
|
|||||||
String get restore_defaults => 'بازیابی پیش فرض ها';
|
String get restore_defaults => 'بازیابی پیش فرض ها';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'دانلود کدک موسیقی';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'ورود با Last.fm';
|
String get login_with_lastfm => 'ورود با Last.fm';
|
||||||
|
|||||||
@ -872,10 +872,16 @@ class AppLocalizationsFi extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Palauta oletukset';
|
String get restore_defaults => 'Palauta oletukset';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Ladatun musiikin codefc';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Kirjaudu sisään Last.fm:llä';
|
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';
|
String get restore_defaults => 'Restaurer les valeurs par défaut';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Télécharger le codec musical';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Se connecter avec Last.fm';
|
String get login_with_lastfm => 'Se connecter avec Last.fm';
|
||||||
|
|||||||
@ -872,10 +872,16 @@ class AppLocalizationsHi extends AppLocalizations {
|
|||||||
String get restore_defaults => 'डिफ़ॉल्ट सेटिंग्स को बहाल करें';
|
String get restore_defaults => 'डिफ़ॉल्ट सेटिंग्स को बहाल करें';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'संगीत कोडेक डाउनलोड करें';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Last.fm से लॉगिन करें';
|
String get login_with_lastfm => 'Last.fm से लॉगिन करें';
|
||||||
|
|||||||
@ -874,10 +874,16 @@ class AppLocalizationsId extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Kembalikan semula';
|
String get restore_defaults => 'Kembalikan semula';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Unduh codec musik';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Masuk dengan Last.fm';
|
String get login_with_lastfm => 'Masuk dengan Last.fm';
|
||||||
|
|||||||
@ -874,10 +874,16 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Ripristina default';
|
String get restore_defaults => 'Ripristina default';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Codec musicale scaricamento';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Accesso a Last.fm';
|
String get login_with_lastfm => 'Accesso a Last.fm';
|
||||||
|
|||||||
@ -861,10 +861,16 @@ class AppLocalizationsJa extends AppLocalizations {
|
|||||||
String get restore_defaults => '設定を初期化';
|
String get restore_defaults => '設定を初期化';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'ダウンロード用の音声コーデック';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Last.fmでログイン';
|
String get login_with_lastfm => 'Last.fmでログイン';
|
||||||
|
|||||||
@ -872,10 +872,16 @@ class AppLocalizationsKa extends AppLocalizations {
|
|||||||
String get restore_defaults => 'ნაგულისხმევი პარამეტრების აღდგენა';
|
String get restore_defaults => 'ნაგულისხმევი პარამეტრების აღდგენა';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'მუსიკის კოდეკის გადმოწერა';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Last.fm-ით შესვლა';
|
String get login_with_lastfm => 'Last.fm-ით შესვლა';
|
||||||
|
|||||||
@ -862,10 +862,16 @@ class AppLocalizationsKo extends AppLocalizations {
|
|||||||
String get restore_defaults => '기본값으로 복원';
|
String get restore_defaults => '기본값으로 복원';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => '다운로드 음악 코덱';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Last.fm에 로그인';
|
String get login_with_lastfm => 'Last.fm에 로그인';
|
||||||
|
|||||||
@ -880,10 +880,16 @@ class AppLocalizationsNe extends AppLocalizations {
|
|||||||
String get restore_defaults => 'पूर्वनिर्धारितहरू पुनः स्थापित गर्नुहोस्';
|
String get restore_defaults => 'पूर्वनिर्धारितहरू पुनः स्थापित गर्नुहोस्';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'साङ्गीत कोडेक डाउनलोड गर्नुहोस्';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'लास्ट.एफ.एम सँग लगइन गर्नुहोस्';
|
String get login_with_lastfm => 'लास्ट.एफ.एम सँग लगइन गर्नुहोस्';
|
||||||
|
|||||||
@ -872,10 +872,16 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Standaardwaarden herstellen';
|
String get restore_defaults => 'Standaardwaarden herstellen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Download-codec';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Inloggen met Last.fm';
|
String get login_with_lastfm => 'Inloggen met Last.fm';
|
||||||
|
|||||||
@ -873,10 +873,16 @@ class AppLocalizationsPl extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Przywróć domyślne';
|
String get restore_defaults => 'Przywróć domyślne';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Pobierz kodek muzyczny';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Zaloguj się z Last.fm';
|
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';
|
String get restore_defaults => 'Restaurar padrões';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Descarregar codec de música';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Iniciar sessão com o Last.fm';
|
String get login_with_lastfm => 'Iniciar sessão com o Last.fm';
|
||||||
|
|||||||
@ -874,10 +874,16 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Восстановить настройки по умолчанию';
|
String get restore_defaults => 'Восстановить настройки по умолчанию';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Загрузить кодек для музыки';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Войти с помощью Last.fm';
|
String get login_with_lastfm => 'Войти с помощью Last.fm';
|
||||||
|
|||||||
@ -879,10 +879,16 @@ class AppLocalizationsTa extends AppLocalizations {
|
|||||||
String get restore_defaults => 'இயல்புநிலைகளை மீட்டமை';
|
String get restore_defaults => 'இயல்புநிலைகளை மீட்டமை';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'இசை கோடெக்கை பதிவிறக்கு';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Last.fm உடன் உள்நுழைக';
|
String get login_with_lastfm => 'Last.fm உடன் உள்நுழைக';
|
||||||
|
|||||||
@ -872,10 +872,16 @@ class AppLocalizationsTh extends AppLocalizations {
|
|||||||
String get restore_defaults => 'คืนค่าเริ่มต้น';
|
String get restore_defaults => 'คืนค่าเริ่มต้น';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'ดาวน์โหลดโคเดคเพลง';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'เข้าสู่ระบบด้วย Last.fm';
|
String get login_with_lastfm => 'เข้าสู่ระบบด้วย Last.fm';
|
||||||
|
|||||||
@ -878,10 +878,16 @@ class AppLocalizationsTl extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Ibalik ang mga default';
|
String get restore_defaults => 'Ibalik ang mga default';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Codec para sa pag-download ng musika';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Mag-login gamit ang Last.fm';
|
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';
|
String get restore_defaults => 'Varsayılanları geri yükle';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Müzik codec bileşenini indir';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Last.fm ile giriş yap';
|
String get login_with_lastfm => 'Last.fm ile giriş yap';
|
||||||
|
|||||||
@ -875,10 +875,16 @@ class AppLocalizationsUk extends AppLocalizations {
|
|||||||
String get restore_defaults => 'Відновити налаштування за замовчуванням';
|
String get restore_defaults => 'Відновити налаштування за замовчуванням';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Завантажити кодек для музики';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Увійти з Last.fm';
|
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';
|
String get restore_defaults => 'Khôi phục mặc định';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => 'Định dạng tải xuống';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => 'Đăng nhập bằng tài khoản Last.fm';
|
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 => '恢复默认值';
|
String get restore_defaults => '恢复默认值';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get download_music_codec => '下载音乐编解码器';
|
String get download_music_format => 'Download music format';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get login_with_lastfm => '使用 Last.fm 登录';
|
String get login_with_lastfm => '使用 Last.fm 登录';
|
||||||
@ -2376,12 +2382,6 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
|||||||
@override
|
@override
|
||||||
String get restore_defaults => '恢復預設值';
|
String get restore_defaults => '恢復預設值';
|
||||||
|
|
||||||
@override
|
|
||||||
String get download_music_codec => '下載音樂編解碼器';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get streaming_music_codec => '串流音樂編解碼器';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get login_with_lastfm => '使用 Last.fm 登入';
|
String get login_with_lastfm => '使用 Last.fm 登入';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.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/image/universal_image.dart';
|
||||||
import 'package:spotube/components/inter_scrollbar/inter_scrollbar.dart';
|
import 'package:spotube/components/inter_scrollbar/inter_scrollbar.dart';
|
||||||
import 'package:spotube/components/ui/button_tile.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/extensions/duration.dart';
|
||||||
import 'package:spotube/models/metadata/metadata.dart';
|
import 'package:spotube/models/metadata/metadata.dart';
|
||||||
import 'package:spotube/provider/audio_player/audio_player.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/sourced_track_provider.dart';
|
||||||
import 'package:spotube/provider/server/active_track_sources.dart';
|
|
||||||
|
|
||||||
class SiblingTracksSheet extends HookConsumerWidget {
|
class SiblingTracksSheet extends HookConsumerWidget {
|
||||||
final bool floating;
|
final bool floating;
|
||||||
@ -23,126 +23,133 @@ class SiblingTracksSheet extends HookConsumerWidget {
|
|||||||
Widget build(BuildContext context, ref) {
|
Widget build(BuildContext context, ref) {
|
||||||
final controller = useScrollController();
|
final controller = useScrollController();
|
||||||
|
|
||||||
final isFetchingActiveTrack = ref.watch(queryingTrackInfoProvider);
|
final activeTrack =
|
||||||
final activeTrackSources = ref.watch(activeTrackSourcesProvider);
|
ref.watch(audioPlayerProvider.select((e) => e.activeTrack));
|
||||||
final activeTrackNotifier = activeTrackSources.asData?.value?.notifier;
|
|
||||||
final activeTrack = activeTrackSources.asData?.value?.track;
|
|
||||||
final activeTrackSource = activeTrackSources.asData?.value?.source;
|
|
||||||
|
|
||||||
final siblings = useMemoized<List<SpotubeAudioSourceMatchObject>>(
|
if (activeTrack == null || activeTrack is! SpotubeFullTrackObject) {
|
||||||
() => !isFetchingActiveTrack
|
return const SafeArea(child: NotFound());
|
||||||
? [
|
}
|
||||||
if (activeTrackSource != null) activeTrackSource.info,
|
|
||||||
...?activeTrackSource?.siblings,
|
|
||||||
]
|
|
||||||
: <SpotubeAudioSourceMatchObject>[],
|
|
||||||
[activeTrackSource, isFetchingActiveTrack],
|
|
||||||
);
|
|
||||||
|
|
||||||
final previousActiveTrack = usePrevious(activeTrack);
|
return HookBuilder(builder: (context) {
|
||||||
useEffect(() {
|
final sourcedTrack = ref.watch(sourcedTrackProvider(activeTrack));
|
||||||
/// Populate sibling when active track changes
|
final sourcedTrackNotifier =
|
||||||
if (previousActiveTrack?.id == activeTrack?.id) return;
|
ref.watch(sourcedTrackProvider(activeTrack).notifier);
|
||||||
if (activeTrackSource != null && activeTrackSource.siblings.isEmpty) {
|
|
||||||
activeTrackNotifier?.copyWithSibling();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}, [activeTrack, previousActiveTrack]);
|
|
||||||
|
|
||||||
return SafeArea(
|
final siblings = useMemoized<List<SpotubeAudioSourceMatchObject>>(
|
||||||
child: Column(
|
() => !sourcedTrack.isLoading
|
||||||
mainAxisSize: MainAxisSize.min,
|
? <SpotubeAudioSourceMatchObject>[
|
||||||
children: [
|
if (sourcedTrack.asData?.value != null)
|
||||||
Padding(
|
sourcedTrack.asData!.value.info,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16),
|
...?sourcedTrack.asData?.value.siblings,
|
||||||
child: Row(
|
]
|
||||||
spacing: 5,
|
: <SpotubeAudioSourceMatchObject>[],
|
||||||
children: [
|
[sourcedTrack],
|
||||||
AnimatedSwitcher(
|
);
|
||||||
duration: const Duration(milliseconds: 300),
|
|
||||||
child: Text(
|
useEffect(() {
|
||||||
context.l10n.alternative_track_sources,
|
/// Populate sibling when active track changes
|
||||||
).bold()),
|
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(
|
||||||
AnimatedSwitcher(
|
|
||||||
duration: const Duration(milliseconds: 300),
|
|
||||||
child: activeTrackSources.isLoading
|
|
||||||
? const SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: LinearProgressIndicator(),
|
|
||||||
)
|
|
||||||
: const SizedBox.shrink(),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: AnimatedSwitcher(
|
|
||||||
duration: const Duration(milliseconds: 300),
|
duration: const Duration(milliseconds: 300),
|
||||||
transitionBuilder: (child, animation) =>
|
child: sourcedTrack.isLoading
|
||||||
FadeTransition(opacity: animation, child: child),
|
? const SizedBox(
|
||||||
child: InterScrollbar(
|
width: double.infinity,
|
||||||
controller: controller,
|
child: LinearProgressIndicator(),
|
||||||
child: ListView.separated(
|
)
|
||||||
padding: const EdgeInsets.all(8.0),
|
: const SizedBox.shrink(),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: AnimatedSwitcher(
|
||||||
|
duration: const Duration(milliseconds: 300),
|
||||||
|
transitionBuilder: (child, animation) =>
|
||||||
|
FadeTransition(opacity: animation, child: child),
|
||||||
|
child: InterScrollbar(
|
||||||
controller: controller,
|
controller: controller,
|
||||||
itemCount: siblings.length,
|
child: ListView.separated(
|
||||||
separatorBuilder: (context, index) => const Gap(8),
|
padding: const EdgeInsets.all(8.0),
|
||||||
itemBuilder: (context, index) {
|
controller: controller,
|
||||||
final sourceInfo = siblings[index];
|
itemCount: siblings.length,
|
||||||
|
separatorBuilder: (context, index) => const Gap(8),
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
final sourceInfo = siblings[index];
|
||||||
|
|
||||||
return ButtonTile(
|
return ButtonTile(
|
||||||
style: ButtonVariance.ghost,
|
style: ButtonVariance.ghost,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||||
title: Text(
|
title: Text(
|
||||||
sourceInfo.title,
|
sourceInfo.title,
|
||||||
maxLines: 2,
|
maxLines: 2,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
leading: sourceInfo.thumbnail != null
|
leading: sourceInfo.thumbnail != null
|
||||||
? UniversalImage(
|
? UniversalImage(
|
||||||
path: sourceInfo.thumbnail!,
|
path: sourceInfo.thumbnail!,
|
||||||
height: 60,
|
height: 60,
|
||||||
width: 60,
|
width: 60,
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
trailing:
|
trailing:
|
||||||
Text(sourceInfo.duration.toHumanReadableString()),
|
Text(sourceInfo.duration.toHumanReadableString()),
|
||||||
subtitle: Flexible(
|
subtitle: Text(
|
||||||
child: Text(
|
|
||||||
sourceInfo.artists.join(", "),
|
sourceInfo.artists.join(", "),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
),
|
enabled: !sourcedTrack.isLoading,
|
||||||
enabled: !isFetchingActiveTrack,
|
selected: !sourcedTrack.isLoading &&
|
||||||
selected: !isFetchingActiveTrack &&
|
sourceInfo.id == sourcedTrack.asData?.value.info.id,
|
||||||
sourceInfo.id == activeTrackSource?.info.id,
|
onPressed: () async {
|
||||||
onPressed: () async {
|
if (!sourcedTrack.isLoading &&
|
||||||
if (!isFetchingActiveTrack &&
|
sourceInfo.id !=
|
||||||
sourceInfo.id != activeTrackSource?.info.id) {
|
sourcedTrack.asData?.value.info.id) {
|
||||||
await activeTrackNotifier
|
await sourcedTrackNotifier
|
||||||
?.swapWithSibling(sourceInfo);
|
.swapWithSibling(sourceInfo);
|
||||||
await ref
|
await ref
|
||||||
.read(audioPlayerProvider.notifier)
|
.read(audioPlayerProvider.notifier)
|
||||||
.swapActiveSource();
|
.swapActiveSource();
|
||||||
|
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
if (MediaQuery.sizeOf(context).mdAndUp) {
|
if (MediaQuery.sizeOf(context).mdAndUp) {
|
||||||
closeOverlay(context);
|
closeOverlay(context);
|
||||||
} else {
|
} else {
|
||||||
closeDrawer(context);
|
closeDrawer(context);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
},
|
);
|
||||||
);
|
},
|
||||||
},
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
),
|
||||||
),
|
);
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,8 +67,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
if (sourcePresets.presets.isNotEmpty) ...[
|
if (sourcePresets.presets.isNotEmpty) ...[
|
||||||
AdaptiveSelectTile(
|
AdaptiveSelectTile(
|
||||||
secondary: const Icon(SpotubeIcons.api),
|
secondary: const Icon(SpotubeIcons.plugin),
|
||||||
title: Text(context.l10n.streaming_music_codec),
|
title: Text(context.l10n.streaming_music_format),
|
||||||
value: sourcePresets.selectedStreamingContainerIndex,
|
value: sourcePresets.selectedStreamingContainerIndex,
|
||||||
options: [
|
options: [
|
||||||
for (final MapEntry(:key, value: preset)
|
for (final MapEntry(:key, value: preset)
|
||||||
@ -81,8 +81,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
AdaptiveSelectTile(
|
AdaptiveSelectTile(
|
||||||
secondary: const Icon(SpotubeIcons.api),
|
secondary: const Icon(SpotubeIcons.audioQuality),
|
||||||
title: const Text("Streaming music quality"),
|
title: Text(context.l10n.streaming_music_quality),
|
||||||
value: sourcePresets.selectedStreamingQualityIndex,
|
value: sourcePresets.selectedStreamingQualityIndex,
|
||||||
options: [
|
options: [
|
||||||
for (final MapEntry(:key, value: quality) in sourcePresets
|
for (final MapEntry(:key, value: quality) in sourcePresets
|
||||||
@ -98,8 +98,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
AdaptiveSelectTile(
|
AdaptiveSelectTile(
|
||||||
secondary: const Icon(SpotubeIcons.api),
|
secondary: const Icon(SpotubeIcons.plugin),
|
||||||
title: Text(context.l10n.download_music_codec),
|
title: Text(context.l10n.download_music_format),
|
||||||
value: sourcePresets.selectedDownloadingContainerIndex,
|
value: sourcePresets.selectedDownloadingContainerIndex,
|
||||||
options: [
|
options: [
|
||||||
for (final MapEntry(:key, value: preset)
|
for (final MapEntry(:key, value: preset)
|
||||||
@ -112,8 +112,8 @@ class SettingsPlaybackSection extends HookConsumerWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
AdaptiveSelectTile(
|
AdaptiveSelectTile(
|
||||||
secondary: const Icon(SpotubeIcons.api),
|
secondary: const Icon(SpotubeIcons.audioQuality),
|
||||||
title: const Text("Downloading music quality"),
|
title: Text(context.l10n.download_music_quality),
|
||||||
value: sourcePresets.selectedStreamingQualityIndex,
|
value: sourcePresets.selectedStreamingQualityIndex,
|
||||||
options: [
|
options: [
|
||||||
for (final MapEntry(:key, value: quality) in sourcePresets
|
for (final MapEntry(:key, value: quality) in sourcePresets
|
||||||
|
|||||||
@ -53,7 +53,7 @@ class PlaybackHistorySummaryNotifier
|
|||||||
database.historyTable.itemId.count(distinct: true);
|
database.historyTable.itemId.count(distinct: true);
|
||||||
final itemIdCountingCol = database.historyTable.itemId.count();
|
final itemIdCountingCol = database.historyTable.itemId.count();
|
||||||
final durationSumJsonColumn =
|
final durationSumJsonColumn =
|
||||||
database.historyTable.data.jsonExtract<int>(r"$.duration_ms").sum();
|
database.historyTable.data.jsonExtract<int>(r"$.durationMs").sum();
|
||||||
final artistCountingCol =
|
final artistCountingCol =
|
||||||
database.historyTable.data.jsonExtract<String>(r"$.artists");
|
database.historyTable.data.jsonExtract<String>(r"$.artists");
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
#include <open_file_linux/open_file_linux_plugin.h>
|
#include <open_file_linux/open_file_linux_plugin.h>
|
||||||
#include <screen_retriever_linux/screen_retriever_linux_plugin.h>
|
#include <screen_retriever_linux/screen_retriever_linux_plugin.h>
|
||||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_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 <tray_manager/tray_manager_plugin.h>
|
||||||
#include <url_launcher_linux/url_launcher_plugin.h>
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||||
#include <window_manager/window_manager_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 =
|
g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin");
|
||||||
sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar);
|
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 =
|
g_autoptr(FlPluginRegistrar) tray_manager_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "TrayManagerPlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "TrayManagerPlugin");
|
||||||
tray_manager_plugin_register_with_registrar(tray_manager_registrar);
|
tray_manager_plugin_register_with_registrar(tray_manager_registrar);
|
||||||
|
|||||||
@ -14,7 +14,6 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||||||
open_file_linux
|
open_file_linux
|
||||||
screen_retriever_linux
|
screen_retriever_linux
|
||||||
sqlite3_flutter_libs
|
sqlite3_flutter_libs
|
||||||
system_theme
|
|
||||||
tray_manager
|
tray_manager
|
||||||
url_launcher_linux
|
url_launcher_linux
|
||||||
window_manager
|
window_manager
|
||||||
|
|||||||
@ -27,7 +27,6 @@ import screen_retriever_macos
|
|||||||
import shared_preferences_foundation
|
import shared_preferences_foundation
|
||||||
import sqflite_darwin
|
import sqflite_darwin
|
||||||
import sqlite3_flutter_libs
|
import sqlite3_flutter_libs
|
||||||
import system_theme
|
|
||||||
import tray_manager
|
import tray_manager
|
||||||
import url_launcher_macos
|
import url_launcher_macos
|
||||||
import window_manager
|
import window_manager
|
||||||
@ -55,7 +54,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
|||||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||||
Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin"))
|
Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin"))
|
||||||
SystemThemePlugin.register(with: registry.registrar(forPlugin: "SystemThemePlugin"))
|
|
||||||
TrayManagerPlugin.register(with: registry.registrar(forPlugin: "TrayManagerPlugin"))
|
TrayManagerPlugin.register(with: registry.registrar(forPlugin: "TrayManagerPlugin"))
|
||||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||||
WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin"))
|
WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin"))
|
||||||
|
|||||||
145
pubspec.lock
145
pubspec.lock
@ -82,7 +82,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.5"
|
version: "1.6.5"
|
||||||
async:
|
async:
|
||||||
dependency: "direct main"
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: async
|
name: async
|
||||||
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
||||||
@ -531,14 +531,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.9.0"
|
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:
|
dio_web_adapter:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1082,14 +1074,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "11.2.0"
|
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:
|
freezed:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@ -1128,7 +1112,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
version: "1.2.0"
|
||||||
gap:
|
gap:
|
||||||
dependency: "direct main"
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: gap
|
name: gap
|
||||||
sha256: f19387d4e32f849394758b91377f9153a1b41d79513ef7668c088c77dbc6955d
|
sha256: f19387d4e32f849394758b91377f9153a1b41d79513ef7668c088c77dbc6955d
|
||||||
@ -1151,14 +1135,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.3"
|
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:
|
graphs:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1266,14 +1242,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.5.0"
|
version: "1.5.0"
|
||||||
http2:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: http2
|
|
||||||
sha256: "382d3aefc5bd6dc68c6b892d7664f29b5beb3251611ae946a98d35158a82bbfa"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.3.1"
|
|
||||||
http_methods:
|
http_methods:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1424,7 +1392,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.7"
|
version: "0.6.7"
|
||||||
json_annotation:
|
json_annotation:
|
||||||
dependency: "direct main"
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: json_annotation
|
name: json_annotation
|
||||||
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
||||||
@ -1530,58 +1498,65 @@ packages:
|
|||||||
media_kit:
|
media_kit:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: media_kit
|
path: media_kit
|
||||||
sha256: "52a8e989babc431db0aa242f32a4a08e55f60662477ea09759a105d7cd6410da"
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
|
||||||
source: hosted
|
url: "https://github.com/media-kit/media-kit"
|
||||||
|
source: git
|
||||||
version: "1.2.1"
|
version: "1.2.1"
|
||||||
media_kit_libs_android_audio:
|
media_kit_libs_android_audio:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: media_kit_libs_android_audio
|
path: "libs/android/media_kit_libs_android_audio"
|
||||||
sha256: "8f8f9759e537e12d66f08bc4d5279eb1bb21a0ccc519ff3442c68a9f3b6dd68b"
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
|
||||||
source: hosted
|
url: "https://github.com/media-kit/media-kit"
|
||||||
|
source: git
|
||||||
version: "1.3.8"
|
version: "1.3.8"
|
||||||
media_kit_libs_audio:
|
media_kit_libs_audio:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: media_kit_libs_audio
|
path: "libs/universal/media_kit_libs_audio"
|
||||||
sha256: "81bf506c234e81e3ec536ba72f8f700a928543c14c345220210cae0411636316"
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
|
||||||
source: hosted
|
url: "https://github.com/media-kit/media-kit"
|
||||||
|
source: git
|
||||||
version: "1.0.7"
|
version: "1.0.7"
|
||||||
media_kit_libs_ios_audio:
|
media_kit_libs_ios_audio:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: media_kit_libs_ios_audio
|
path: "libs/ios/media_kit_libs_ios_audio"
|
||||||
sha256: "78ccf04e27d6b4ba00a355578ccb39b772f00d48269a6ac3db076edf2d51934f"
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
|
||||||
source: hosted
|
url: "https://github.com/media-kit/media-kit"
|
||||||
|
source: git
|
||||||
version: "1.1.4"
|
version: "1.1.4"
|
||||||
media_kit_libs_linux:
|
media_kit_libs_linux:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: media_kit_libs_linux
|
path: "libs/linux/media_kit_libs_linux"
|
||||||
sha256: "2b473399a49ec94452c4d4ae51cfc0f6585074398d74216092bf3d54aac37ecf"
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
|
||||||
source: hosted
|
url: "https://github.com/media-kit/media-kit"
|
||||||
|
source: git
|
||||||
version: "1.2.1"
|
version: "1.2.1"
|
||||||
media_kit_libs_macos_audio:
|
media_kit_libs_macos_audio:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: media_kit_libs_macos_audio
|
path: "libs/macos/media_kit_libs_macos_audio"
|
||||||
sha256: "3be21844df98f286de32808592835073cdef2c1a10078bac135da790badca950"
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
|
||||||
source: hosted
|
url: "https://github.com/media-kit/media-kit"
|
||||||
|
source: git
|
||||||
version: "1.1.4"
|
version: "1.1.4"
|
||||||
media_kit_libs_windows_audio:
|
media_kit_libs_windows_audio:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: media_kit_libs_windows_audio
|
path: "libs/windows/media_kit_libs_windows_audio"
|
||||||
sha256: c2fd558cc87b9d89a801141fcdffe02e338a3b21a41a18fbd63d5b221a1b8e53
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: d310049f24196250d876efb02b9ff56fa9ef5068
|
||||||
source: hosted
|
url: "https://github.com/media-kit/media-kit"
|
||||||
|
source: git
|
||||||
version: "1.0.9"
|
version: "1.0.9"
|
||||||
menu_base:
|
menu_base:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
@ -1711,14 +1686,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.0.3"
|
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:
|
package_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -2381,14 +2348,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.1"
|
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:
|
sync_http:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -2405,22 +2364,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.4.0"
|
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:
|
term_glyph:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -2430,7 +2373,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.2"
|
version: "1.2.2"
|
||||||
test:
|
test:
|
||||||
dependency: "direct main"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: test
|
name: test
|
||||||
sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb"
|
sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb"
|
||||||
|
|||||||
42
pubspec.yaml
42
pubspec.yaml
@ -15,7 +15,6 @@ environment:
|
|||||||
dependencies:
|
dependencies:
|
||||||
app_links: ^6.4.0
|
app_links: ^6.4.0
|
||||||
args: ^2.5.0
|
args: ^2.5.0
|
||||||
async: ^2.11.0
|
|
||||||
audio_service: ^0.18.13
|
audio_service: ^0.18.13
|
||||||
audio_service_mpris: ^0.2.0
|
audio_service_mpris: ^0.2.0
|
||||||
audio_session: ^0.1.19
|
audio_session: ^0.1.19
|
||||||
@ -64,11 +63,8 @@ dependencies:
|
|||||||
flutter_sharing_intent: ^1.1.0
|
flutter_sharing_intent: ^1.1.0
|
||||||
flutter_undraw: ^0.2.1
|
flutter_undraw: ^0.2.1
|
||||||
form_builder_validators: ^11.1.1
|
form_builder_validators: ^11.1.1
|
||||||
form_validator: ^2.1.1
|
|
||||||
freezed_annotation: ^2.4.1
|
freezed_annotation: ^2.4.1
|
||||||
fuzzywuzzy: ^1.1.6
|
fuzzywuzzy: ^1.1.6
|
||||||
gap: ^3.0.1
|
|
||||||
google_fonts: ^6.2.1
|
|
||||||
home_widget: ^0.7.0
|
home_widget: ^0.7.0
|
||||||
hooks_riverpod: ^2.5.1
|
hooks_riverpod: ^2.5.1
|
||||||
html: ^0.15.1
|
html: ^0.15.1
|
||||||
@ -76,13 +72,10 @@ dependencies:
|
|||||||
http: ^1.2.1
|
http: ^1.2.1
|
||||||
image_picker: ^1.1.0
|
image_picker: ^1.1.0
|
||||||
intl: any
|
intl: any
|
||||||
json_annotation: ^4.8.1
|
|
||||||
local_notifier: ^0.1.6
|
local_notifier: ^0.1.6
|
||||||
logger: ^2.0.2
|
logger: ^2.0.2
|
||||||
logging: ^1.3.0
|
logging: ^1.3.0
|
||||||
lrc: ^1.0.2
|
lrc: ^1.0.2
|
||||||
media_kit: ^1.2.1
|
|
||||||
media_kit_libs_audio: ^1.0.7
|
|
||||||
metadata_god: ^1.1.0
|
metadata_god: ^1.1.0
|
||||||
mime: ^2.0.0
|
mime: ^2.0.0
|
||||||
open_file: ^3.5.10
|
open_file: ^3.5.10
|
||||||
@ -109,9 +102,6 @@ dependencies:
|
|||||||
smtc_windows: ^1.1.0
|
smtc_windows: ^1.1.0
|
||||||
sqlite3: ^2.4.3
|
sqlite3: ^2.4.3
|
||||||
sqlite3_flutter_libs: ^0.5.23
|
sqlite3_flutter_libs: ^0.5.23
|
||||||
stroke_text: ^0.0.2
|
|
||||||
system_theme: ^3.1.2
|
|
||||||
test: ^1.25.7
|
|
||||||
timezone: ^0.10.0
|
timezone: ^0.10.0
|
||||||
titlebar_buttons: ^1.0.0
|
titlebar_buttons: ^1.0.0
|
||||||
tray_manager: ^0.5.0
|
tray_manager: ^0.5.0
|
||||||
@ -134,8 +124,6 @@ dependencies:
|
|||||||
url: https://github.com/KRTirtho/flutter_new_pipe_extractor.git
|
url: https://github.com/KRTirtho/flutter_new_pipe_extractor.git
|
||||||
http_parser: ^4.1.2
|
http_parser: ^4.1.2
|
||||||
collection: any
|
collection: any
|
||||||
otp_util: ^1.0.2
|
|
||||||
dio_http2_adapter: ^2.6.0
|
|
||||||
archive: ^4.0.7
|
archive: ^4.0.7
|
||||||
hetu_script: ^0.4.2+1
|
hetu_script: ^0.4.2+1
|
||||||
hetu_std:
|
hetu_std:
|
||||||
@ -155,6 +143,15 @@ dependencies:
|
|||||||
pub_semver: ^2.2.0
|
pub_semver: ^2.2.0
|
||||||
change_case: ^1.1.0
|
change_case: ^1.1.0
|
||||||
flutter_secure_storage: ^9.2.4
|
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:
|
dev_dependencies:
|
||||||
build_runner: ^2.4.13
|
build_runner: ^2.4.13
|
||||||
@ -173,6 +170,7 @@ dev_dependencies:
|
|||||||
pub_api_client: ^3.0.0
|
pub_api_client: ^3.0.0
|
||||||
io: ^1.0.4
|
io: ^1.0.4
|
||||||
drift_dev: ^2.21.0
|
drift_dev: ^2.21.0
|
||||||
|
test: ^1.25.7
|
||||||
auto_route_generator: ^9.0.0
|
auto_route_generator: ^9.0.0
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
@ -191,6 +189,26 @@ dependency_overrides:
|
|||||||
url: https://github.com/m-berto/flutter_secure_storage.git
|
url: https://github.com/m-berto/flutter_secure_storage.git
|
||||||
ref: patch-2
|
ref: patch-2
|
||||||
path: flutter_secure_storage_linux
|
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:
|
flutter:
|
||||||
generate: true
|
generate: true
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"ar": [
|
"ar": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -12,6 +16,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"bn": [
|
"bn": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -24,6 +32,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"ca": [
|
"ca": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -36,6 +48,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"cs": [
|
"cs": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -48,6 +64,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"de": [
|
"de": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -60,6 +80,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"es": [
|
"es": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -72,6 +96,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"eu": [
|
"eu": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -84,6 +112,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"fa": [
|
"fa": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -96,6 +128,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"fi": [
|
"fi": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -108,6 +144,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"fr": [
|
"fr": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -120,6 +160,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"hi": [
|
"hi": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -132,6 +176,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"id": [
|
"id": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -144,6 +192,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"it": [
|
"it": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -156,6 +208,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"ja": [
|
"ja": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -168,6 +224,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"ka": [
|
"ka": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -180,6 +240,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"ko": [
|
"ko": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -192,6 +256,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"ne": [
|
"ne": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -205,6 +273,10 @@
|
|||||||
|
|
||||||
"nl": [
|
"nl": [
|
||||||
"audio_source",
|
"audio_source",
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -217,6 +289,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"pl": [
|
"pl": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -229,6 +305,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"pt": [
|
"pt": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -241,6 +321,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"ru": [
|
"ru": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -253,6 +337,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"ta": [
|
"ta": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -265,6 +353,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"th": [
|
"th": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -277,6 +369,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"tl": [
|
"tl": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -289,6 +385,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"tr": [
|
"tr": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -301,6 +401,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"uk": [
|
"uk": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -313,6 +417,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"vi": [
|
"vi": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -325,6 +433,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"zh": [
|
"zh": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
@ -337,6 +449,10 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"zh_TW": [
|
"zh_TW": [
|
||||||
|
"download_music_format",
|
||||||
|
"streaming_music_format",
|
||||||
|
"download_music_quality",
|
||||||
|
"streaming_music_quality",
|
||||||
"default_metadata_source",
|
"default_metadata_source",
|
||||||
"set_default_metadata_source",
|
"set_default_metadata_source",
|
||||||
"default_audio_source",
|
"default_audio_source",
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
#include <permission_handler_windows/permission_handler_windows_plugin.h>
|
#include <permission_handler_windows/permission_handler_windows_plugin.h>
|
||||||
#include <screen_retriever_windows/screen_retriever_windows_plugin_c_api.h>
|
#include <screen_retriever_windows/screen_retriever_windows_plugin_c_api.h>
|
||||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_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 <tray_manager/tray_manager_plugin.h>
|
||||||
#include <url_launcher_windows/url_launcher_windows.h>
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
#include <window_manager/window_manager_plugin.h>
|
#include <window_manager/window_manager_plugin.h>
|
||||||
@ -54,8 +53,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
|
|||||||
registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi"));
|
registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi"));
|
||||||
Sqlite3FlutterLibsPluginRegisterWithRegistrar(
|
Sqlite3FlutterLibsPluginRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin"));
|
registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin"));
|
||||||
SystemThemePluginRegisterWithRegistrar(
|
|
||||||
registry->GetRegistrarForPlugin("SystemThemePlugin"));
|
|
||||||
TrayManagerPluginRegisterWithRegistrar(
|
TrayManagerPluginRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("TrayManagerPlugin"));
|
registry->GetRegistrarForPlugin("TrayManagerPlugin"));
|
||||||
UrlLauncherWindowsRegisterWithRegistrar(
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
|
|||||||
@ -17,7 +17,6 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||||||
permission_handler_windows
|
permission_handler_windows
|
||||||
screen_retriever_windows
|
screen_retriever_windows
|
||||||
sqlite3_flutter_libs
|
sqlite3_flutter_libs
|
||||||
system_theme
|
|
||||||
tray_manager
|
tray_manager
|
||||||
url_launcher_windows
|
url_launcher_windows
|
||||||
window_manager
|
window_manager
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user