diff --git a/app/relisten/tabs/(artists,myLibrary,offline)/[artistUuid]/show/[showUuid]/source/[sourceUuid]/index.tsx b/app/relisten/tabs/(artists,myLibrary,offline)/[artistUuid]/show/[showUuid]/source/[sourceUuid]/index.tsx index 056b172d..615b71a7 100644 --- a/app/relisten/tabs/(artists,myLibrary,offline)/[artistUuid]/show/[showUuid]/source/[sourceUuid]/index.tsx +++ b/app/relisten/tabs/(artists,myLibrary,offline)/[artistUuid]/show/[showUuid]/source/[sourceUuid]/index.tsx @@ -192,7 +192,7 @@ export default function Page() { } const [year, month, day] = selectedSource.displayDate.split('-'); - const url = `https://relisten.net/${artist?.slug}/${year}/${month}/${day}?source=${selectedSource.uuid}`; + const url = `https://relisten.net/${artist?.slug}/${year}/${month}/${day}?source=${selectedSource.sourceId ?? selectedSource.uuid}`; void Share.share({ message: `Check out ${show.displayDate} (${show.venue?.name ?? ''}) by ${artist?.name} on @relistenapp${Platform.OS === 'ios' ? '' : `: ${url}`}`, @@ -505,7 +505,7 @@ export const SourceHeader = ({ textClassName="text-l" onPress={() => { const [year, month, day] = show.displayDate.split('-'); - const url = `https://relisten.net/${artist?.slug}/${year}/${month}/${day}?source=${source.uuid}`; + const url = `https://relisten.net/${artist?.slug}/${year}/${month}/${day}?source=${source.sourceId ?? source.uuid}`; Share.share({ message: `Check out ${show.displayDate} (${show.venue?.name ?? ''}) by ${artist?.name} on @relistenapp${Platform.OS === 'ios' ? '' : `: ${url}`}`, url: url, diff --git a/relisten/player/ui/player_screen.tsx b/relisten/player/ui/player_screen.tsx index 435695e5..6952121c 100644 --- a/relisten/player/ui/player_screen.tsx +++ b/relisten/player/ui/player_screen.tsx @@ -187,7 +187,7 @@ function CurrentTrackInfo({ dismissOnNavigate }: CurrentTrackInfoProps) { const onShare = () => { const [year, month, day] = show.displayDate.split('-'); - const url = `https://relisten.net/${artist.slug}/${year}/${month}/${day}/${track.slug}?source=${source.uuid}`; + const url = `https://relisten.net/${artist.slug}/${year}/${month}/${day}/${track.slug}?source=${source.sourceId ?? source.uuid}`; Share.share({ message: `Check out ${track.title} (${track.humanizedDuration}) by ${artist.name} (${show.displayDate}) on @relistenapp${Platform.OS === 'ios' ? '' : `: ${url}`}`, url: url, diff --git a/relisten/player/ui/source_track_actions_menu.tsx b/relisten/player/ui/source_track_actions_menu.tsx index e9d94052..cd9e1c5a 100644 --- a/relisten/player/ui/source_track_actions_menu.tsx +++ b/relisten/player/ui/source_track_actions_menu.tsx @@ -119,7 +119,7 @@ export function SourceTrackActionsMenu({ playShow, sourceTrack }: SourceTrackAct break; case ACTION_IDS.share: { const [year, month, day] = sourceTrack.show.displayDate.split('-'); - const url = `https://relisten.net/${sourceTrack.artist.slug}/${year}/${month}/${day}/${sourceTrack.slug}?source=${sourceTrack.source.uuid}`; + const url = `https://relisten.net/${sourceTrack.artist.slug}/${year}/${month}/${day}/${sourceTrack.slug}?source=${sourceTrack.source.sourceId ?? sourceTrack.source.uuid}`; await Share.share({ message: `Check out ${sourceTrack.title} (${sourceTrack.humanizedDuration}) from ${sourceTrack.show.displayDate} by ${sourceTrack.artist?.name} on @relistenapp${Platform.OS === 'ios' ? '' : `: ${url}`}`, diff --git a/relisten/realm/models/source.ts b/relisten/realm/models/source.ts index 5bd39ec0..3ea00fdf 100644 --- a/relisten/realm/models/source.ts +++ b/relisten/realm/models/source.ts @@ -11,6 +11,7 @@ import { checkIfOfflineSourceTrackExists } from '@/relisten/realm/realm_filters' import type { LibraryIndex } from '@/relisten/realm/library_index'; export interface SourceRequiredProperties extends RelistenObjectRequiredProperties { + sourceId?: number; artistUuid: string; venueUuid?: string; displayDate: string; @@ -44,6 +45,7 @@ export class Source primaryKey: 'uuid', properties: { uuid: 'string', + sourceId: 'int?', createdAt: 'date', updatedAt: 'date', artistUuid: { type: 'string', indexed: true }, @@ -83,6 +85,7 @@ export class Source }; uuid!: string; + sourceId?: number; createdAt!: Date; updatedAt!: Date; artistUuid!: string; @@ -156,6 +159,7 @@ export class Source static propertiesFromApi(relistenObj: SourceFull): SourceRequiredProperties { return { uuid: relistenObj.uuid, + sourceId: relistenObj.id != null ? Number(relistenObj.id) : undefined, createdAt: dayjs(relistenObj.created_at).toDate(), updatedAt: dayjs(relistenObj.updated_at).toDate(), artistUuid: relistenObj.artist_uuid, diff --git a/relisten/realm/schema.ts b/relisten/realm/schema.ts index 9be9c5e7..9b9aa632 100644 --- a/relisten/realm/schema.ts +++ b/relisten/realm/schema.ts @@ -57,7 +57,7 @@ const realmConfig: Realm.Configuration = { PopularityWindow, PopularityWindows, ], - schemaVersion: 12, + schemaVersion: 13, // As to not conflict with the prior versions default.realm that isn't readable with this version of the SDK path: './relisten.realm', };