fix back handler dying on unsub

also remove need for unsub
This commit is contained in:
austinried 2021-08-10 11:36:43 +09:00
parent df3e913125
commit 4ac1f3d931

View File

@ -21,10 +21,8 @@ const setCurrentTrackIdx = (idx?: number) => {
}) })
} }
module.exports = async function () { let serviceCreated = false
const unsubs: (() => void)[] = [] const createService = async () => {
unsubs.push(
useStore.subscribe( useStore.subscribe(
(currentTrack?: TrackExt) => { (currentTrack?: TrackExt) => {
if (currentTrack) { if (currentTrack) {
@ -32,19 +30,13 @@ module.exports = async function () {
} }
}, },
state => state.currentTrack, state => state.currentTrack,
),
) )
const { emitter } = TrackPlayer.addEventListener(Event.RemoteStop, () => { TrackPlayer.addEventListener(Event.RemoteStop, () => {
for (const unsub of unsubs) {
unsub()
}
reset() reset()
trackPlayerCommands.enqueue(TrackPlayer.destroy) trackPlayerCommands.enqueue(TrackPlayer.destroy)
}) })
unsubs.push(() => emitter.removeAllListeners())
TrackPlayer.addEventListener(Event.RemotePlay, () => trackPlayerCommands.enqueue(TrackPlayer.play)) TrackPlayer.addEventListener(Event.RemotePlay, () => trackPlayerCommands.enqueue(TrackPlayer.play))
TrackPlayer.addEventListener(Event.RemotePause, () => trackPlayerCommands.enqueue(TrackPlayer.pause)) TrackPlayer.addEventListener(Event.RemotePause, () => trackPlayerCommands.enqueue(TrackPlayer.pause))
@ -91,3 +83,10 @@ module.exports = async function () {
setCurrentTrackIdx(useStore.getState().currentTrackIdx) setCurrentTrackIdx(useStore.getState().currentTrackIdx)
}) })
} }
module.exports = async function () {
if (!serviceCreated) {
createService()
serviceCreated = true
}
}