zarzet
bd42655c0e
fix: various improvements and fixes
2026-02-11 00:22:48 +07:00
zarzet
fe1c96ea12
v3.6.5: audio format conversion, PC v7.0.8 backend merge, Amazon re-enabled
2026-02-10 23:35:41 +07:00
zarzet
bae2bf63eb
chore: remove Buy Me a Coffee references (account suspended)
2026-02-10 20:46:45 +07:00
zarzet
b6574f0097
refactor: preserve extension ID case in DownloadByStrategy, only lowercase built-in providers
2026-02-10 12:30:38 +07:00
zarzet
c35a8dd803
refactor: remove deprecated download methods from PlatformBridge and MainActivity
2026-02-10 10:16:55 +07:00
zarzet
d54b2249b6
v3.6.1: fix lyrics_mode, notification v20, SAF duplicate, primary artist setting, unified download strategy
2026-02-10 10:11:02 +07:00
zarzet
f7be2c1e12
feat: primary artist only folders, fix notifications v20, fix SAF duplicate dirs
...
- Add 'Use Primary Artist Only' setting to strip featured artists from folder names
- Fix flutter_local_notifications v20 breaking changes (positional params)
- Fix SAF duplicate folder bug: synchronized ensureDocumentDir to prevent race condition creating empty folders with (1), (2) suffixes during concurrent downloads
2026-02-10 09:07:18 +07:00
zarzet
ebe7d87da7
docs: update VirusTotal hash for v3.6.0
2026-02-10 01:03:58 +07:00
zarzet
3a6b7eed59
perf: swap SpotubeDL as primary YouTube provider, Cobalt as fallback
v3.6.0
2026-02-10 00:47:44 +07:00
zarzet
51d02d7764
chore: bump app_info version to 3.6.0+77
2026-02-09 23:36:34 +07:00
zarzet
df39d61ed4
feat: save cover art, save lyrics, re-enrich metadata with full SAF support + YouTube Cobalt provider with SpotubeDL fallback + metadata summary logging
2026-02-09 23:07:18 +07:00
zarzet
7ec5d28caf
feat: add YouTube provider for lossy downloads via Cobalt API
...
- New YouTube download provider with Opus 256kbps and MP3 320kbps options
- SongLink/Odesli integration for Spotify/Deezer ID to YouTube URL conversion
- YouTube video ID detection for YT Music extension compatibility
- Parallel cover art and lyrics fetching during download
- Queue progress shows bytes (X.X MB) for streaming downloads
- Full metadata embedding: cover, lyrics, title, artist, album, track#, disc#, year, ISRC
- Removed Tidal HIGH (lossy AAC) option - use YouTube for lossy instead
- Bumped version to 3.6.0
2026-02-09 18:15:43 +07:00
zarzet
23f5aa11b0
feat: responsive layout tuning, cache management page, and improved recent access UX
...
- Add responsive scaling across album, artist, playlist, downloaded album, local album, queue, setup, and tutorial screens to prevent overflow on smaller devices
- Add new Storage & Cache management page (Settings > Storage & Cache) with per-category clear and cleanup actions
- Extract normalizedHeaderTopPadding utility for consistent app bar padding
- Improve home search Recent Access behavior: show when focused with empty input, hide stale results during active recent mode
- Add excluded-downloaded-count tracking to local library scan stats
- Add recentEmpty and recentShowAllDownloads l10n keys (EN + ID)
- Add full cache management l10n keys (EN + ID)
- Fix about_page indentation and formatting consistency
- Fix appearance_settings_page formatting
- Fix downloaded_album_screen and local_album_screen formatting and responsive sizing
2026-02-09 15:58:50 +07:00
zarzet
5fdf1df5df
feat: cross-script transliteration matching for Tidal/Qobuz and skip-downloaded option for CSV import
2026-02-09 10:57:52 +07:00
zarzet
f9dd82010f
fix: skip M4A conversion for existing files and prevent empty SAF folders on duplicates
v3.5.2
2026-02-08 15:44:05 +07:00
zarzet
f0790b627d
perf: optimize album, artist, and playlist screens
...
- Scope settingsProvider watches with select() for localLibrary flags
- Wrap popular track items in Consumer for scoped provider watches
- Apply dart format reformatting
2026-02-08 15:00:57 +07:00
zarzet
55350fffa0
perf: optimize home tab and queue tab widget rebuilds
...
- Use ValueNotifier+ValueListenableBuilder for file existence checks instead of setState
- Scope Riverpod watches with field-level select() to reduce unnecessary rebuilds
- Pass precomputed params to _TrackItemWithStatus to avoid per-item provider watches
- Memoize filter/sort computations per build pass
- Isolate queue header/list into dedicated Consumer slivers
- Fix Positioned/ValueListenableBuilder nesting order in grid view
2026-02-08 14:20:18 +07:00
zarzet
7229602343
feat: replace date filter with sorting (latest/oldest/A-Z/Z-A)
...
- Remove broken date range filter (today/week/month/year)
- Add sort options: Latest, Oldest, A-Z, Z-A
- Sorting applies to tracks (all/singles tabs) and albums tab
- Add l10n keys for sort labels
2026-02-08 13:44:02 +07:00
zarzet
1c81c53699
fix: library filters now apply to date/albums and update tab counts
...
- Remove redundant manual export button from queue header
- Add date range filtering support for local library items
- Apply advanced filters (date, quality, format, source) to album tab
- Tab chip counts (All/Albums/Singles) now reflect filtered results
- Extract reusable filter helpers: _passesDateFilter, _passesQualityFilter, _passesFormatFilter
- Add _filterGroupedAlbums and _filterGroupedLocalAlbums methods
2026-02-08 13:09:19 +07:00
zarzet
5256d6197b
fix: metadata enrichment bug and upgrade go-flac to v2
...
- Fix metadata enrichment bug where failed downloads poison connection pool
- Create separate metadataTransport for Deezer API calls
- Add immediate connection cleanup after download failures
- Fix Samsung One UI local library scan with MediaStore fallback
- Fix 'In Library' tracks still showing as downloadable
- Upgrade go-flac packages to v2 (flacpicture v2.0.2, flacvorbis v2.0.2, go-flac v2.0.4)
- Update CHANGELOG.md v3.5.2
2026-02-08 12:01:08 +07:00
Zarz Eleutherius
79a6c8cdc0
Merge pull request #139 from zarzet/renovate/major-go-dependencies
...
fix(deps): update go dependencies to v2 (major)
2026-02-08 08:31:29 +07:00
renovate[bot]
aa3b4d7d1e
fix(deps): update go dependencies to v2
2026-02-07 21:39:25 +00:00
zarzet
cd220a4650
merge: sync main into dev (README updates)
2026-02-08 02:51:05 +07:00
Zarz Eleutherius
d71b2a9ab8
Update README to remove Search Source and enhance Telegram links
2026-02-08 02:48:29 +07:00
zarzet
a2efe7243d
docs: add API credits to README and SpotiSaver to about page
2026-02-08 02:36:15 +07:00
zarzet
e0acda14e4
docs: add API credits to README and SpotiSaver to about page
2026-02-08 02:33:56 +07:00
Zarz Eleutherius
029ab8ea47
Update VirusTotal badge link in README
2026-02-08 02:30:22 +07:00
zarzet
38f9498006
docs: add API credits to README and SpotiSaver to about page
2026-02-08 02:26:27 +07:00
zarzet
67fc3e5de2
fix: revert AGP 9 to 8.13.2 - Flutter plugins not yet compatible with AGP 9
v3.5.1
2026-02-07 20:46:23 +07:00
zarzet
f1e6e9253f
fix: opt out of AGP 9 newDsl for Flutter compatibility
2026-02-07 20:26:59 +07:00
zarzet
11c612e270
fix: remove kotlin-android plugin for AGP 9 built-in Kotlin support
2026-02-07 20:12:26 +07:00
zarzet
cec5e49659
fix(deps): migrate flutter_local_notifications to v20 named params, update changelog with all dependency changes since 3.5.0
2026-02-07 20:02:11 +07:00
Zarz Eleutherius
1dbdb5f2c3
Update VirusTotal badge link in README
2026-02-07 19:57:44 +07:00
zarzet
086511d3e9
perf: unified parallel scheduler, dynamic concurrency 1-5, log truncation + FFmpeg command redaction
2026-02-07 19:57:44 +07:00
zarzet
3d366d21b7
perf: optimize providers, throttle polling, queued settings save, remove dead screens
2026-02-07 19:57:44 +07:00
zarzet
35f412dbd2
perf: replace PaletteService with blurred cover background, bump v3.5.1
2026-02-07 19:57:44 +07:00
Zarz Eleutherius
c167aa0522
Merge pull request #136 from zarzet/renovate/major-go-dependencies
...
fix(deps): update go dependencies to v2 (major)
2026-02-07 19:56:07 +07:00
Zarz Eleutherius
fccb3f3d78
Merge pull request #135 from zarzet/renovate/major-flutter-dependencies
...
fix(deps): update flutter dependencies (major)
2026-02-07 19:54:49 +07:00
Zarz Eleutherius
3a33283e94
Merge pull request #133 from zarzet/renovate/major-gradle-dependencies
...
chore(deps): update plugin com.android.application to v9
2026-02-07 19:49:33 +07:00
Zarz Eleutherius
c74fb28a3a
Merge pull request #131 from zarzet/renovate/actions-setup-java-5.x
...
chore(deps): update actions/setup-java action to v5
2026-02-07 19:49:18 +07:00
renovate[bot]
ea504cc3ed
fix(deps): update go dependencies to v2
2026-02-07 12:48:36 +00:00
renovate[bot]
61a2ad258e
fix(deps): update flutter dependencies
2026-02-07 12:48:16 +00:00
Zarz Eleutherius
ab62a8b1a9
Merge pull request #134 from zarzet/renovate/softprops-action-gh-release-2.x
...
chore(deps): update softprops/action-gh-release action to v2
2026-02-07 19:48:04 +07:00
Zarz Eleutherius
479eb1272d
Merge pull request #132 from zarzet/renovate/major-github-artifact-actions
...
chore(deps): update github artifact actions (major)
2026-02-07 19:47:28 +07:00
renovate[bot]
d23562e579
chore(deps): update softprops/action-gh-release action to v2
2026-02-07 12:47:07 +00:00
renovate[bot]
541d64bdd0
chore(deps): update plugin com.android.application to v9
2026-02-07 12:47:04 +00:00
renovate[bot]
d4f7e6e494
chore(deps): update github artifact actions
2026-02-07 12:47:00 +00:00
renovate[bot]
532c08fe2e
chore(deps): update actions/setup-java action to v5
2026-02-07 12:46:56 +00:00
Zarz Eleutherius
704b9674f4
Merge pull request #128 from zarzet/renovate/actions-cache-5.x
...
chore(deps): update actions/cache action to v5
2026-02-07 19:35:15 +07:00
Zarz Eleutherius
3de94280d2
Merge pull request #129 from zarzet/renovate/actions-checkout-6.x
...
chore(deps): update actions/checkout action to v6
2026-02-07 19:34:45 +07:00