mirror of
https://github.com/Boof2015/astra-mobile.git
synced 2026-08-20 20:49:47 +02:00
fix now playing source label
This commit is contained in:
@@ -604,17 +604,23 @@ export default function HomeScreen() {
|
||||
});
|
||||
};
|
||||
|
||||
const playTrackList = (list: DbTrack[], index = 0) => {
|
||||
const playRecentlyPlayed = (list: DbTrack[], index = 0) => {
|
||||
if (list.length === 0) return;
|
||||
void playTracks(list.map(dbTrackToTrack), index);
|
||||
void playTracks(list.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: 'recently-played', label: 'Recently Played' },
|
||||
});
|
||||
};
|
||||
|
||||
const playSpotlight = (shuffled = false) => {
|
||||
if (spotlightTracks.length === 0) return;
|
||||
const source = spotlightContent?.kind === 'album'
|
||||
? { kind: 'album' as const, label: spotlightContent.album.album }
|
||||
: { kind: 'artist' as const, label: spotlightContent?.artist.artist ?? 'Artist' };
|
||||
if (shuffled) {
|
||||
void shuffleTracks(spotlightTracks.map(dbTrackToTrack));
|
||||
void shuffleTracks(spotlightTracks.map(dbTrackToTrack), source);
|
||||
} else {
|
||||
void playTracks(spotlightTracks.map(dbTrackToTrack), 0);
|
||||
void playTracks(spotlightTracks.map(dbTrackToTrack), { source });
|
||||
}
|
||||
};
|
||||
|
||||
@@ -682,7 +688,7 @@ export default function HomeScreen() {
|
||||
track={track}
|
||||
active={track.path === currentPath}
|
||||
swipeToQueue={false}
|
||||
onPress={() => playTrackList(recentTracks, index)}
|
||||
onPress={() => playRecentlyPlayed(recentTracks, index)}
|
||||
onLongPress={() => setActionTrack(track)}
|
||||
onOpenActions={() => setActionTrack(track)}
|
||||
/>
|
||||
|
||||
@@ -84,7 +84,10 @@ export default function AlbumScreen() {
|
||||
}, [tracks]);
|
||||
|
||||
const playFrom = (index: number) => {
|
||||
void playTracks(tracks.map(dbTrackToTrack), index);
|
||||
void playTracks(tracks.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: 'album', label: album?.album ?? tracks[0]?.album ?? 'Album' },
|
||||
});
|
||||
};
|
||||
|
||||
// Eligibility can filter an album out of the store list (a single reached via
|
||||
@@ -164,7 +167,10 @@ export default function AlbumScreen() {
|
||||
disabled={tracks.length === 0}
|
||||
onBack={handleBack}
|
||||
onPlay={() => playFrom(0)}
|
||||
onShuffle={() => void shuffleTracks(tracks.map(dbTrackToTrack))}
|
||||
onShuffle={() => void shuffleTracks(tracks.map(dbTrackToTrack), {
|
||||
kind: 'album',
|
||||
label: album?.album ?? tracks[0]?.album ?? 'Album',
|
||||
})}
|
||||
scrollY={scrollY}
|
||||
heroFaded={heroFaded}
|
||||
collapsed={collapsed}
|
||||
|
||||
@@ -88,13 +88,19 @@ export default function ArtistScreen() {
|
||||
|
||||
const playTrackListFrom = (tracks: readonly DbTrack[], index: number) => {
|
||||
if (tracks.length === 0) return;
|
||||
void playTracks(tracks.map(dbTrackToTrack), index);
|
||||
void playTracks(tracks.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: 'artist', label: name },
|
||||
});
|
||||
};
|
||||
|
||||
const playArtist = () => playTrackListFrom(detail.playbackTracks, 0);
|
||||
const shuffleArtist = () => {
|
||||
if (detail.playbackTracks.length === 0) return;
|
||||
void shuffleTracks(detail.playbackTracks.map(dbTrackToTrack));
|
||||
void shuffleTracks(detail.playbackTracks.map(dbTrackToTrack), {
|
||||
kind: 'artist',
|
||||
label: name,
|
||||
});
|
||||
};
|
||||
|
||||
const openSection = (target: ArtistSectionTarget) => {
|
||||
|
||||
@@ -44,7 +44,10 @@ export default function ArtistAppearancesScreen() {
|
||||
|
||||
const playFrom = (index: number) => {
|
||||
if (tracks.length === 0) return;
|
||||
void playTracks(tracks.map(dbTrackToTrack), index);
|
||||
void playTracks(tracks.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: 'artist', label: name },
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -44,7 +44,10 @@ export default function ArtistSongsScreen() {
|
||||
|
||||
const playFrom = (index: number) => {
|
||||
if (tracks.length === 0) return;
|
||||
void playTracks(tracks.map(dbTrackToTrack), index);
|
||||
void playTracks(tracks.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: 'artist', label: name },
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -133,7 +133,10 @@ export default function LibraryScreen() {
|
||||
|
||||
// Tap index is within sortedTracks so the tapped row is the track that plays.
|
||||
const playAllFrom = (index: number) => {
|
||||
void playTracks(sortedTracks.map(dbTrackToTrack), index);
|
||||
void playTracks(sortedTracks.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: 'library', label: 'Library' },
|
||||
});
|
||||
};
|
||||
const openSearch = () => openQuickSearch();
|
||||
|
||||
|
||||
@@ -164,13 +164,19 @@ export default function PlaylistScreen() {
|
||||
|
||||
const startPlayback = (index: number) => {
|
||||
if (playable.length === 0) return;
|
||||
void playTracks(playable.map(dbTrackToTrack), index);
|
||||
void playTracks(playable.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: isFavorites ? 'favorites' : 'playlist', label: name },
|
||||
});
|
||||
if (playlistId != null && !Number.isNaN(playlistId)) void markPlayed(playlistId);
|
||||
};
|
||||
|
||||
const startShuffle = () => {
|
||||
if (playable.length === 0) return;
|
||||
void shuffleTracks(playable.map(dbTrackToTrack));
|
||||
void shuffleTracks(playable.map(dbTrackToTrack), {
|
||||
kind: isFavorites ? 'favorites' : 'playlist',
|
||||
label: name,
|
||||
});
|
||||
if (playlistId != null && !Number.isNaN(playlistId)) void markPlayed(playlistId);
|
||||
};
|
||||
|
||||
|
||||
@@ -46,7 +46,10 @@ export default function RecentlyPlayedScreen() {
|
||||
|
||||
const playFrom = (index: number) => {
|
||||
if (tracks.length === 0) return;
|
||||
void playTracks(tracks.map(dbTrackToTrack), index);
|
||||
void playTracks(tracks.map(dbTrackToTrack), {
|
||||
startIndex: index,
|
||||
source: { kind: 'recently-played', label: 'Recently Played' },
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -130,7 +130,9 @@ export default function SignalScanScreen() {
|
||||
setActionState('playing');
|
||||
setActionError(null);
|
||||
try {
|
||||
await playTracks([dbTrackToTrack(track)]);
|
||||
await playTracks([dbTrackToTrack(track)], {
|
||||
source: { kind: 'signal', label: 'Signal' },
|
||||
});
|
||||
router.back();
|
||||
} catch {
|
||||
setActionState('idle');
|
||||
|
||||
Reference in New Issue
Block a user