feat: add SongLink region setting and fix track metadata lookup with name+artist fallback

- Add configurable SongLink region (userCountry) setting with picker UI
- Pass songLinkRegion through download request payload to Go backend
- Go backend: thread-safe global SongLink region with per-request override
- Fix downloaded track not recognized in collection tap: add findByTrackAndArtist
  fallback in download history lookup chain (Spotify ID → ISRC → name+artist)
- Apply same name+artist fallback to isDownloaded check in track options sheet
- Add missing library_database.dart import for LocalLibraryItem
This commit is contained in:
zarzet
2026-02-19 19:16:55 +07:00
parent ab72a10578
commit 882afd938b
9 changed files with 446 additions and 19 deletions
@@ -33,6 +33,7 @@ class DownloadRequestPayload {
final String safRelativeDir;
final String safFileName;
final String safOutputExt;
final String songLinkRegion;
const DownloadRequestPayload({
this.isrc = '',
@@ -69,6 +70,7 @@ class DownloadRequestPayload {
this.safRelativeDir = '',
this.safFileName = '',
this.safOutputExt = '',
this.songLinkRegion = 'US',
});
Map<String, dynamic> toJson() {
@@ -107,6 +109,7 @@ class DownloadRequestPayload {
'saf_relative_dir': safRelativeDir,
'saf_file_name': safFileName,
'saf_output_ext': safOutputExt,
'songlink_region': songLinkRegion,
};
}
@@ -149,6 +152,7 @@ class DownloadRequestPayload {
safRelativeDir: safRelativeDir,
safFileName: safFileName,
safOutputExt: safOutputExt,
songLinkRegion: songLinkRegion,
);
}
}