update pause playback when timer completes
This commit is contained in:
committed by
Lei Nelissen
parent
9cbc5a26ba
commit
85383f2447
@@ -8,10 +8,15 @@
|
||||
*/
|
||||
|
||||
import TrackPlayer, { Event, State } from 'react-native-track-player';
|
||||
import store from '@/store';
|
||||
import store, { useTypedSelector } from '@/store';
|
||||
import { sendPlaybackEvent } from './JellyfinApi';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { setSleepTime } from '@/store/settings/actions';
|
||||
import internal from 'stream';
|
||||
|
||||
export default async function() {
|
||||
let interval = setInterval(() => {}, 0);
|
||||
|
||||
TrackPlayer.addEventListener(Event.RemotePlay, () => {
|
||||
TrackPlayer.play();
|
||||
});
|
||||
@@ -59,6 +64,11 @@ export default async function() {
|
||||
if (settings.enablePlaybackReporting) {
|
||||
sendPlaybackEvent('/Sessions/Playing/Progress', settings.jellyfin);
|
||||
}
|
||||
|
||||
// regularly check if sleeper is enabled, then disable the timer
|
||||
if (!settings.enabledSleeper) {
|
||||
clearInterval(interval);
|
||||
}
|
||||
});
|
||||
|
||||
TrackPlayer.addEventListener(Event.PlaybackState, (event) => {
|
||||
@@ -72,6 +82,24 @@ export default async function() {
|
||||
sendPlaybackEvent('/Sessions/Playing/Stopped', settings.jellyfin);
|
||||
}
|
||||
}
|
||||
|
||||
// Handle is playback state is playing
|
||||
if (event.state === State.Playing) {
|
||||
const settings = store.getState().settings;
|
||||
|
||||
// Start timer is sleeper is enabled
|
||||
if (settings.enabledSleeper) {
|
||||
let time = settings.sleepTime;
|
||||
interval = setInterval(() => {
|
||||
if (time > 0) {
|
||||
time -= 1;
|
||||
} else {
|
||||
TrackPlayer.pause();
|
||||
clearInterval(interval);
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user