mirror of
https://github.com/anultravioletaurora/Jellify.git
synced 2026-02-09 07:39:03 -06:00
adjust player provider so that we aren't updating components LITERALLY EVERYWHERE
This commit is contained in:
@@ -24,13 +24,14 @@ const HomeContextInitializer = () => {
|
||||
});
|
||||
|
||||
const onRefresh = async () => {
|
||||
setRefreshing(true);
|
||||
|
||||
await Promise.all([
|
||||
refetchRecentTracks(),
|
||||
refetchRecentArtists()
|
||||
])
|
||||
.then(() => {
|
||||
setRefreshing(false);
|
||||
})
|
||||
|
||||
setRefreshing(false);
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -18,6 +18,8 @@ import { trigger } from "react-native-haptic-feedback";
|
||||
import { Gesture, GestureDetector } from "react-native-gesture-handler";
|
||||
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
|
||||
import { useIsFocused } from "@react-navigation/native";
|
||||
import { useProgress } from "react-native-track-player";
|
||||
import { UPDATE_INTERVAL } from "../../../player/config";
|
||||
|
||||
const scrubGesture = Gesture.Pan();
|
||||
|
||||
@@ -31,7 +33,6 @@ export default function PlayerScreen({
|
||||
nowPlayingIsFavorite,
|
||||
setNowPlayingIsFavorite,
|
||||
nowPlaying,
|
||||
progress,
|
||||
useSeekTo,
|
||||
useSkip,
|
||||
usePrevious,
|
||||
@@ -39,6 +40,8 @@ export default function PlayerScreen({
|
||||
queue
|
||||
} = usePlayerContext();
|
||||
|
||||
const progress = useProgress(UPDATE_INTERVAL);
|
||||
|
||||
const [seeking, setSeeking] = useState<boolean>(false);
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,7 @@ import { JellifyTrack } from "../types/JellifyTrack";
|
||||
import { PlaystateApi } from "@jellyfin/sdk/lib/generated-client/api/playstate-api";
|
||||
import { convertSecondsToRunTimeTicks } from "../helpers/runtimeticks";
|
||||
|
||||
export async function handlePlaybackState(sessionId: string, playstateApi: PlaystateApi, track: JellifyTrack, state: State, progress: Progress) {
|
||||
export async function handlePlaybackState(sessionId: string, playstateApi: PlaystateApi, track: JellifyTrack, state: State) {
|
||||
switch (state) {
|
||||
case (State.Playing) : {
|
||||
console.debug("Report playback started")
|
||||
@@ -11,7 +11,6 @@ export async function handlePlaybackState(sessionId: string, playstateApi: Plays
|
||||
playbackStartInfo: {
|
||||
SessionId: sessionId,
|
||||
ItemId: track.item.Id,
|
||||
PositionTicks: convertSecondsToRunTimeTicks(progress.position)
|
||||
}
|
||||
});
|
||||
break;
|
||||
@@ -25,7 +24,6 @@ export async function handlePlaybackState(sessionId: string, playstateApi: Plays
|
||||
playbackStopInfo: {
|
||||
SessionId: sessionId,
|
||||
ItemId: track.item.Id,
|
||||
PositionTicks: convertSecondsToRunTimeTicks(progress.position)
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
@@ -40,7 +40,6 @@ interface PlayerContext {
|
||||
usePrevious: UseMutationResult<void, Error, void, unknown>;
|
||||
usePlayNewQueue: UseMutationResult<void, Error, QueueMutation, unknown>;
|
||||
playbackState: State | undefined;
|
||||
progress: Progress | undefined;
|
||||
}
|
||||
|
||||
const PlayerContextInitializer = () => {
|
||||
@@ -244,7 +243,6 @@ const PlayerContextInitializer = () => {
|
||||
//#region RNTP Setup
|
||||
|
||||
const { state: playbackState } = usePlaybackState();
|
||||
const progress = useProgress(UPDATE_INTERVAL);
|
||||
|
||||
useTrackPlayerEvents([
|
||||
Event.RemoteLike,
|
||||
@@ -268,7 +266,7 @@ const PlayerContextInitializer = () => {
|
||||
}
|
||||
|
||||
case (Event.PlaybackState) : {
|
||||
handlePlaybackState(Client.sessionId, playStateApi, await TrackPlayer.getActiveTrack() as JellifyTrack, event.state, progress);
|
||||
handlePlaybackState(Client.sessionId, playStateApi, await TrackPlayer.getActiveTrack() as JellifyTrack, event.state);
|
||||
break;
|
||||
}
|
||||
case (Event.PlaybackProgressUpdated) : {
|
||||
@@ -363,7 +361,6 @@ const PlayerContextInitializer = () => {
|
||||
usePrevious,
|
||||
usePlayNewQueue,
|
||||
playbackState,
|
||||
progress,
|
||||
}
|
||||
//#endregion return
|
||||
}
|
||||
@@ -540,7 +537,6 @@ export const PlayerContext = createContext<PlayerContext>({
|
||||
submittedAt: 0
|
||||
},
|
||||
playbackState: undefined,
|
||||
progress: undefined,
|
||||
});
|
||||
//#endregion Create PlayerContext
|
||||
|
||||
@@ -563,7 +559,6 @@ export const PlayerProvider: ({ children }: { children: ReactNode }) => React.JS
|
||||
usePrevious,
|
||||
usePlayNewQueue,
|
||||
playbackState,
|
||||
progress
|
||||
} = PlayerContextInitializer();
|
||||
|
||||
return <PlayerContext.Provider value={{
|
||||
@@ -584,7 +579,6 @@ export const PlayerProvider: ({ children }: { children: ReactNode }) => React.JS
|
||||
usePrevious,
|
||||
usePlayNewQueue,
|
||||
playbackState,
|
||||
progress
|
||||
}}>
|
||||
{ children }
|
||||
</PlayerContext.Provider>
|
||||
|
||||
Reference in New Issue
Block a user