fix: correct track/disc defaults, forward extension metadata, and fix service ID display

- Default track/disc number to 0 (unknown) instead of 1, letting the
  backend use the service-provided value or skip the field entirely
- Add releaseDate to ExploreItem so explore downloads carry release info
- Pass discNumber and releaseDate from extension album/playlist tracks
- Fix isDeezer detection using service field instead of substring match
- Add _displayServiceTrackId() to properly strip prefixes for all services
This commit is contained in:
zarzet
2026-04-02 15:13:11 +07:00
parent 81e25d7dab
commit 76d50fab3a
5 changed files with 53 additions and 13 deletions
+4 -4
View File
@@ -2811,8 +2811,8 @@ class DownloadQueueNotifier extends Notifier<DownloadQueueState> {
'artist': track.artistName,
'album': track.albumName,
'album_artist': resolvedAlbumArtist,
'track_number': track.trackNumber ?? 1,
'disc_number': track.discNumber ?? 1,
'track_number': track.trackNumber ?? 0,
'disc_number': track.discNumber ?? 0,
'isrc': track.isrc ?? '',
'release_date': track.releaseDate ?? '',
'duration_ms': track.duration * 1000,
@@ -4649,12 +4649,12 @@ class DownloadQueueNotifier extends Notifier<DownloadQueueState> {
(trackToDownload.trackNumber != null &&
trackToDownload.trackNumber! > 0)
? trackToDownload.trackNumber!
: 1;
: 0;
final normalizedDiscNumber =
(trackToDownload.discNumber != null &&
trackToDownload.discNumber! > 0)
? trackToDownload.discNumber!
: 1;
: 0;
String payloadSpotifyId = trackToDownload.id;
String payloadQobuzId = '';
+4
View File
@@ -19,6 +19,7 @@ class ExploreItem {
final String? providerId;
final String? albumId;
final String? albumName;
final String? releaseDate;
final int durationMs;
const ExploreItem({
@@ -32,6 +33,7 @@ class ExploreItem {
this.providerId,
this.albumId,
this.albumName,
this.releaseDate,
this.durationMs = 0,
});
@@ -47,6 +49,7 @@ class ExploreItem {
providerId: json['provider_id'] as String?,
albumId: json['album_id'] as String?,
albumName: json['album_name'] as String?,
releaseDate: json['release_date']?.toString(),
durationMs: json['duration_ms'] as int? ?? 0,
);
}
@@ -62,6 +65,7 @@ class ExploreItem {
'provider_id': providerId,
'album_id': albumId,
'album_name': albumName,
'release_date': releaseDate,
'duration_ms': durationMs,
};
}