Zarz Eleutherius
30bf6b7f9a
New translations app_en.arb (Ukrainian)
...
[ci skip]
2026-05-03 01:39:27 +07:00
Zarz Eleutherius
4941b6bd23
New translations app_en.arb (Turkish)
...
[ci skip]
2026-05-03 01:39:25 +07:00
Zarz Eleutherius
33d99817ec
New translations app_en.arb (Russian)
...
[ci skip]
2026-05-03 01:39:24 +07:00
Zarz Eleutherius
37e1af50ad
New translations app_en.arb (Portuguese)
...
[ci skip]
2026-05-03 01:39:22 +07:00
Zarz Eleutherius
8a6efb1303
New translations app_en.arb (Dutch)
...
[ci skip]
2026-05-03 01:39:21 +07:00
Zarz Eleutherius
7823b19b89
New translations app_en.arb (Korean)
...
[ci skip]
2026-05-03 01:39:19 +07:00
Zarz Eleutherius
2a9aa544a9
New translations app_en.arb (Japanese)
...
[ci skip]
2026-05-03 01:39:18 +07:00
Zarz Eleutherius
f387c8ff85
New translations app_en.arb (German)
...
[ci skip]
2026-05-03 01:39:17 +07:00
Zarz Eleutherius
7e537aec0b
New translations app_en.arb (Spanish)
...
[ci skip]
2026-05-03 01:39:15 +07:00
Zarz Eleutherius
66cd465565
New translations app_en.arb (French)
...
[ci skip]
2026-05-03 01:39:14 +07:00
zarzet
87dc8eb5ea
chore: update app dependency versions
2026-05-03 01:25:26 +07:00
zarzet
397669965d
Merge remote-tracking branch 'spotiflacapp/main'
...
# Conflicts:
# android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
# android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
# android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
# android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
# android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
# android/app/src/main/res/mipmap-hdpi/ic_launcher.png
# android/app/src/main/res/mipmap-mdpi/ic_launcher.png
# android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
# android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
# android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
# crowdin.yml
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
# ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
# lib/l10n/app_localizations_de.dart
# lib/l10n/app_localizations_fr.dart
# lib/l10n/app_localizations_id.dart
# lib/l10n/app_localizations_tr.dart
# lib/l10n/arb/app_en.arb
# lib/l10n/arb/app_id.arb
# lib/l10n/arb/app_ja.arb
# lib/l10n/arb/app_tr.arb
# lib/screens/settings/download_settings_page.dart
# lib/screens/settings/options_settings_page.dart
2026-05-03 01:00:08 +07:00
Zarz Eleutherius
60bd0e619e
Merge pull request #352 from Amonoman/main
...
Add deduplicateDownloads setting and fix build errors
2026-05-03 00:35:19 +07:00
Amonoman
2c7621c1a5
revert: release.yml to normal
2026-05-02 19:28:26 +02:00
Zarz Eleutherius
83afa40423
New translations app_en.arb (Hindi)
...
[ci skip]
2026-05-03 00:20:59 +07:00
Zarz Eleutherius
486e7eb101
New translations app_en.arb (Indonesian)
...
[ci skip]
2026-05-03 00:20:58 +07:00
Zarz Eleutherius
05eb9e60d3
New translations app_en.arb (Chinese Traditional)
...
[ci skip]
2026-05-03 00:20:56 +07:00
Zarz Eleutherius
dde7095644
New translations app_en.arb (Chinese Simplified)
...
[ci skip]
2026-05-03 00:20:55 +07:00
Zarz Eleutherius
f1e9a2915d
New translations app_en.arb (Ukrainian)
...
[ci skip]
2026-05-03 00:20:53 +07:00
Zarz Eleutherius
ae3495d373
New translations app_en.arb (Turkish)
...
[ci skip]
2026-05-03 00:20:51 +07:00
Zarz Eleutherius
6fb2c1b688
New translations app_en.arb (Russian)
...
[ci skip]
2026-05-03 00:20:50 +07:00
Zarz Eleutherius
1526c558e7
New translations app_en.arb (Portuguese)
...
[ci skip]
2026-05-03 00:20:49 +07:00
Zarz Eleutherius
324e0f053b
New translations app_en.arb (Dutch)
...
[ci skip]
2026-05-03 00:20:47 +07:00
Zarz Eleutherius
25cb33c78e
New translations app_en.arb (Korean)
...
[ci skip]
2026-05-03 00:20:46 +07:00
Zarz Eleutherius
942b6d9569
New translations app_en.arb (Japanese)
...
[ci skip]
2026-05-03 00:20:44 +07:00
Zarz Eleutherius
cd46c79383
New translations app_en.arb (German)
...
[ci skip]
2026-05-03 00:20:43 +07:00
Zarz Eleutherius
0bdcdcc229
New translations app_en.arb (Spanish)
...
[ci skip]
2026-05-03 00:20:42 +07:00
Zarz Eleutherius
1a5863a7fb
New translations app_en.arb (French)
...
[ci skip]
2026-05-03 00:20:40 +07:00
Amonoman
b55be00fab
i18n: add missing optionsDefaultSearchTabAlbums/Tracks keys to all locales
2026-05-02 19:04:39 +02:00
Amonoman
f8b7812943
feat: add deduplicateDownloads setting & fix build errors
...
- Add deduplicateDownloads field to AppSettings (default: true)
- Add setDeduplicateDownloads() to SettingsNotifier
- Fix type mismatch in files_settings_page (Object → String cast)
- Run build_runner to regenerate settings.g.dart
2026-05-02 18:47:09 +02:00
Amonoman
8f14ff169a
Aktualisieren von release.yml
2026-05-02 18:24:03 +02:00
Zarz Eleutherius
ca3abeb1cf
Merge pull request #345 from Amonoman/main
...
Refactor settings into dedicated pages and update icons
2026-05-02 23:14:41 +07:00
Amonoman
bb0cc23461
i18n: sync missing EN strings to all locales & fix DE consistency
...
- Add 18 missing keys to DE, ES_ES, FR, HI, ID, JA, KO, NL, PT_PT, RU, TR, UK, ZH_CN, ZH_TW
- Add 580 missing keys to ES, PT, ZH (outdated partial files)
- Fix DE: Sie→du throughout, typos (Standart, auwählen), grammar errors in dialogs
2026-05-02 18:13:04 +02:00
zarzet
45fa33e1ec
fix(ios): use security-scoped bookmarks for download directory persistence
...
- Switch iOS bookmark creation from .minimalBookmark to .withSecurityScope
- Add .withSecurityScope option when resolving bookmarks
- Add downloadDirectoryBookmark field to AppSettings for persisting iOS bookmarks
- Resolve bookmark and startAccessingIosBookmark before queue processing
- Guarantee stopAccessingIosBookmark cleanup via try/finally
- Create bookmark on folder pick in both setup screen and download settings
- Clear bookmark when switching to SAF mode or iOS path normalization
- Fix stale bottom sheet context usage (ctx -> context) in download settings
2026-05-02 01:19:39 +07:00
zarzet
64dbf4441c
feat: add Favorite Artists collection
...
- Add CollectionArtistEntry model with toJson/fromJson and artistCollectionKey helper
- Create favorite_artists table in SQLite with DB migration v1→v2
- Implement toggleFavoriteArtist/removeFavoriteArtist in LibraryCollectionsNotifier
- Add FavoriteArtistsScreen with list view, empty state, and artist navigation
- Add heart toggle button on ArtistScreen header (reactive via Riverpod selector)
- Integrate favorite artists folder in queue_tab collection grid/list views
- Add 8 new localization strings across all 13 locale files
2026-05-02 00:50:02 +07:00
zarzet
148e5c1231
fix: fallback unsupported locales to English
...
Fixes #327
2026-05-02 00:32:41 +07:00
zarzet
3a7419ec9f
refactor: split large screen files into part files and DRY platform bridge
...
- Extract home_tab.dart helpers/widgets into home_tab_helpers.dart and home_tab_widgets.dart using Dart part files
- Extract queue_tab.dart helpers/widgets into queue_tab_helpers.dart and queue_tab_widgets.dart using Dart part files
- Extract track_metadata_edit_sheet.dart from track_metadata_screen.dart using Dart part file
- Refactor _FileExistsListenableCache into a standalone class in queue_tab_helpers.dart
- Fix artist_screen.dart: replace unreliable findAncestorStateOfType with GlobalKey for _FetchingProgressDialog progress updates
- DRY platform_bridge.dart: extract common JSON decode patterns into reusable helper methods (_decodeRequiredMapResult, _decodeNullableMapResult, _decodeMapListResult, _decodeStringListResult)
2026-05-02 00:27:51 +07:00
zarzet
01c7c9cc3a
perf: improve download queue resilience
2026-05-01 23:51:24 +07:00
Zarz Eleutherius
701015ad55
New translations app_en.arb (Spanish)
...
[ci skip]
2026-05-01 04:51:14 +07:00
zarzet
3f56b88fa5
refactor: rename skipBuiltInFallback to stopProviderFallback, unify service/search provider grid layout, and retire useExtensionProviders toggle
...
- Add stopProviderFallback manifest field with backward compat for skipBuiltInFallback
- Expose stop_provider_fallback in extension JSON API
- Unify service and search provider chips into 4-per-row grid layout
- Enable Ask Before Download for extensions with quality options
- Force useExtensionProviders always-on (built-in providers retired)
- Update localization: Built-in -> Legacy, remove obsolete description text
- Clear hardcoded donor names list
2026-05-01 04:43:06 +07:00
zarzet
bdd3f4aef5
feat: retire built-in download providers, add isolated extension runtimes, Google Sans Flex font, and monochrome icon support
...
- Remove all built-in download provider code paths (DownloadTrack, DownloadWithFallback, tryBuiltInProvider, isBuiltInDownloadProvider, normalizeQualityForBuiltIn)
- Simplify DownloadByStrategy to route exclusively through extension providers
- Add newIsolatedExtensionRuntime() for concurrent per-download Goja VMs
- Extract reusable initializeExtensionRuntimeWithSettings() and runCleanupOnVM()
- Add TestExtensionDownloadUsesIsolatedRuntimeForConcurrentCalls
- Add Google Sans Flex font family to app themes
- Add Android adaptive icon monochrome support
- Regenerate iOS and Android app icons
2026-05-01 02:44:32 +07:00
zarzet
611abdc6ae
feat: improve extension metadata UI
2026-04-29 18:33:44 +07:00
Amonoman
6e9fa45915
feat(settings): reorganize settings into focused pages
...
- split download/options into download, files, metadata, lyrics, app
- add dedicated pages for files & folders, metadata, and lyrics
- move search source and fallback into download page
- replace options_settings_page with app_settings_page
- add missing l10n keys for all new pages
- improve subtitle copy for download, embed lyrics, primary provider
2026-04-28 13:46:44 +02:00
Zarz Eleutherius
63cfac626a
New translations app_en.arb (French)
2026-04-28 05:12:53 +07:00
Zarz Eleutherius
e6c5a21bfc
New translations app_en.arb (French)
2026-04-28 04:13:54 +07:00
Amonoman
7dafbc1063
refactor(settings): split download/options into focused pages
...
- Extract files, metadata, lyrics into dedicated pages
- Move search source + fallback into download page
- Move app/update/debug settings into new app_settings_page
- Replace options_settings_page with app_settings_page
- Reorganize settings_tab into 3 logical groups
2026-04-27 20:43:12 +02:00
Amonoman
ad8ac3bd2b
Update every icon except banner
2026-04-27 17:12:43 +02:00
Zarz Eleutherius
2d80739141
New translations app_en.arb (Spanish)
2026-04-26 01:44:55 +07:00
Zarz Eleutherius
6494102e15
New translations app_en.arb (French)
2026-04-24 15:12:52 +07:00
Zarz Eleutherius
0e6aa2efd9
New translations app_en.arb (French)
2026-04-24 05:23:14 +07:00