diff --git a/maestro/tests/4-musicplayer.yaml b/maestro/tests/4-musicplayer.yaml index f4057441..40d0ed9c 100644 --- a/maestro/tests/4-musicplayer.yaml +++ b/maestro/tests/4-musicplayer.yaml @@ -49,16 +49,16 @@ appId: com.cosmonautical.jellify # Scroll Down to see the queue - scrollUntilVisible: element: - id: "queue-item-12" + id: "queue-item-8" direction: "DOWN" - scrollUntilVisible: element: - id: "queue-item-12" + id: "queue-item-8" direction: "UP" # Play some other Song - tapOn: - id: 'queue-item-12' + id: 'queue-item-8' - pressKey: BACK diff --git a/src/api/mutations/session/index.ts b/src/api/mutations/session/index.ts index 19804355..fedfb292 100644 --- a/src/api/mutations/session/index.ts +++ b/src/api/mutations/session/index.ts @@ -1,24 +1,33 @@ import { useMutation } from '@tanstack/react-query' import useStreamingDeviceProfile from '../../../stores/device-profile' -import { Api } from '@jellyfin/sdk' import { getSessionApi } from '@jellyfin/sdk/lib/utils/api' import { MONOCHROME_ICON_URL } from '../../../configs/config' +import { useEffect } from 'react' +import { useApi } from '../../../stores' const usePostFullCapabilities = () => { + const api = useApi() const streamingDeviceProfile = useStreamingDeviceProfile() - return useMutation({ - mutationFn: async (api: Api | undefined) => { + const { mutate } = useMutation({ + onMutate: () => console.debug('Posting player capabilities'), + mutationFn: async () => { if (!api) return - return getSessionApi(api).postFullCapabilities({ + return await getSessionApi(api).postFullCapabilities({ clientCapabilitiesDto: { IconUrl: MONOCHROME_ICON_URL, DeviceProfile: streamingDeviceProfile, }, }) }, + onSuccess: () => console.info('Successfully posted player capabilities'), + onError: (error) => console.error('Unable to post player capabilities', error), }) + + useEffect(() => { + mutate() + }, [streamingDeviceProfile.Id]) } export default usePostFullCapabilities diff --git a/src/providers/Player/index.tsx b/src/providers/Player/index.tsx index 05f3d11a..9349f0ab 100644 --- a/src/providers/Player/index.tsx +++ b/src/providers/Player/index.tsx @@ -16,6 +16,7 @@ import Initialize from './functions/initialization' import { useEnableAudioNormalization } from '../../stores/settings/player' import { useApi } from '../../stores' import { usePlayerQueueStore } from '../../stores/player/queue' +import usePostFullCapabilities from '../../api/mutations/session' const PLAYER_EVENTS: Event[] = [ Event.PlaybackActiveTrackChanged, @@ -36,6 +37,8 @@ export const PlayerProvider: () => React.JSX.Element = () => { const [enableAudioNormalization] = useEnableAudioNormalization() + usePostFullCapabilities() + const downloadingDeviceProfile = useDownloadingDeviceProfile() usePerformanceMonitor('PlayerProvider', 3)