mirror of
https://github.com/austinried/subtracks.git
synced 2025-12-27 00:59:28 +01:00
check if we paused on duck before playing again (#51)
prevents music playing after an alarm or call ends if it wasn't paused by that alarm/call in the first place
This commit is contained in:
parent
5bb32df16b
commit
da033e697f
@ -34,6 +34,12 @@ const rebuildQueue = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const setDuckPaused = (duckPaused: boolean) => {
|
||||||
|
unstable_batchedUpdates(() => {
|
||||||
|
useStore.getState().setDuckPaused(duckPaused)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
let serviceCreated = false
|
let serviceCreated = false
|
||||||
|
|
||||||
const createService = async () => {
|
const createService = async () => {
|
||||||
@ -81,9 +87,14 @@ const createService = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data.paused) {
|
if (data.paused) {
|
||||||
trackPlayerCommands.enqueue(TrackPlayer.pause)
|
let state = useStore.getState().playerState
|
||||||
} else {
|
if (state === State.Playing || state === State.Buffering || state === State.Connecting) {
|
||||||
|
trackPlayerCommands.enqueue(TrackPlayer.pause)
|
||||||
|
setDuckPaused(true)
|
||||||
|
}
|
||||||
|
} else if (useStore.getState().duckPaused) {
|
||||||
trackPlayerCommands.enqueue(TrackPlayer.play)
|
trackPlayerCommands.enqueue(TrackPlayer.play)
|
||||||
|
setDuckPaused(false)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -42,6 +42,9 @@ export type TrackPlayerSlice = {
|
|||||||
playerState: State
|
playerState: State
|
||||||
setPlayerState: (playerState: State) => void
|
setPlayerState: (playerState: State) => void
|
||||||
|
|
||||||
|
duckPaused: boolean
|
||||||
|
setDuckPaused: (duckPaused: boolean) => void
|
||||||
|
|
||||||
currentTrack?: TrackExt
|
currentTrack?: TrackExt
|
||||||
currentTrackIdx?: number
|
currentTrackIdx?: number
|
||||||
setCurrentTrackIdx: (idx?: number) => void
|
setCurrentTrackIdx: (idx?: number) => void
|
||||||
@ -197,6 +200,9 @@ export const createTrackPlayerSlice = (set: SetState<Store>, get: GetState<Store
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
duckPaused: false,
|
||||||
|
setDuckPaused: duckPaused => set({ duckPaused }),
|
||||||
|
|
||||||
queue: [],
|
queue: [],
|
||||||
setQueue: async (songs, name, contextType, contextId, playTrack, shuffle) => {
|
setQueue: async (songs, name, contextType, contextId, playTrack, shuffle) => {
|
||||||
return trackPlayerCommands.enqueue(async () => {
|
return trackPlayerCommands.enqueue(async () => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user