diff --git a/app/state/settings.ts b/app/state/settings.ts index 7ec1307..7b2d5e1 100644 --- a/app/state/settings.ts +++ b/app/state/settings.ts @@ -144,6 +144,7 @@ export const createSettingsSlice = (set: SetState, get: GetState): state.settings.estimateContentLength = estimateContentLength }), ) + get().rebuildQueue() }, setMaxBitrateWifi: maxBitrateWifi => { @@ -152,6 +153,9 @@ export const createSettingsSlice = (set: SetState, get: GetState): state.settings.maxBitrateWifi = maxBitrateWifi }), ) + if (get().netState === 'wifi') { + get().rebuildQueue() + } }, setMaxBitrateMobile: maxBitrateMobile => { @@ -160,5 +164,8 @@ export const createSettingsSlice = (set: SetState, get: GetState): state.settings.maxBitrateMobile = maxBitrateMobile }), ) + if (get().netState === 'mobile') { + get().rebuildQueue() + } }, }) diff --git a/app/state/trackplayer.ts b/app/state/trackplayer.ts index 8dce40c..b43ff95 100644 --- a/app/state/trackplayer.ts +++ b/app/state/trackplayer.ts @@ -55,8 +55,8 @@ export type TrackPlayerSlice = { netState: 'mobile' | 'wifi' setNetState: (netState: 'mobile' | 'wifi') => Promise + rebuildQueue: () => Promise buildStreamUri: (id: string) => string - reset: () => void } @@ -157,9 +157,11 @@ export const createTrackPlayerSlice = (set: SetState, get: GetState { + rebuildQueue: async () => { + return trackPlayerCommands.enqueue(async () => { const queue = await getQueue() if (!queue.length) { return