rebuild queue on settings change

This commit is contained in:
austinried 2021-08-17 12:18:57 +09:00
parent 44617740fd
commit f18e4fc811
2 changed files with 12 additions and 3 deletions

View File

@ -144,6 +144,7 @@ export const createSettingsSlice = (set: SetState<Store>, get: GetState<Store>):
state.settings.estimateContentLength = estimateContentLength state.settings.estimateContentLength = estimateContentLength
}), }),
) )
get().rebuildQueue()
}, },
setMaxBitrateWifi: maxBitrateWifi => { setMaxBitrateWifi: maxBitrateWifi => {
@ -152,6 +153,9 @@ export const createSettingsSlice = (set: SetState<Store>, get: GetState<Store>):
state.settings.maxBitrateWifi = maxBitrateWifi state.settings.maxBitrateWifi = maxBitrateWifi
}), }),
) )
if (get().netState === 'wifi') {
get().rebuildQueue()
}
}, },
setMaxBitrateMobile: maxBitrateMobile => { setMaxBitrateMobile: maxBitrateMobile => {
@ -160,5 +164,8 @@ export const createSettingsSlice = (set: SetState<Store>, get: GetState<Store>):
state.settings.maxBitrateMobile = maxBitrateMobile state.settings.maxBitrateMobile = maxBitrateMobile
}), }),
) )
if (get().netState === 'mobile') {
get().rebuildQueue()
}
}, },
}) })

View File

@ -55,8 +55,8 @@ export type TrackPlayerSlice = {
netState: 'mobile' | 'wifi' netState: 'mobile' | 'wifi'
setNetState: (netState: 'mobile' | 'wifi') => Promise<void> setNetState: (netState: 'mobile' | 'wifi') => Promise<void>
rebuildQueue: () => Promise<void>
buildStreamUri: (id: string) => string buildStreamUri: (id: string) => string
reset: () => void reset: () => void
} }
@ -157,9 +157,11 @@ export const createTrackPlayerSlice = (set: SetState<Store>, get: GetState<Store
return return
} }
set({ netState }) set({ netState })
ToastAndroid.show('switched netState to ' + netState, ToastAndroid.SHORT) get().rebuildQueue()
},
await trackPlayerCommands.enqueue(async () => { rebuildQueue: async () => {
return trackPlayerCommands.enqueue(async () => {
const queue = await getQueue() const queue = await getQueue()
if (!queue.length) { if (!queue.length) {
return return