1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge pull request #4327 from DVDAndroid/dvd/remaining-time-toggle

Add toggle to show/hide remaining video time in video player
This commit is contained in:
Bill Thornton 2023-02-08 17:03:41 -05:00 committed by GitHub
commit 9e0fbef032
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 5 deletions

View file

@ -787,12 +787,18 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
nowPlayingPositionText.classList.add('hide');
}
const leftTicks = runtimeTicks - positionTicks;
if (leftTicks >= 0) {
updateTimeText(nowPlayingDurationText, leftTicks);
nowPlayingDurationText.classList.remove('hide');
if (userSettings.enableVideoRemainingTime()) {
const leftTicks = runtimeTicks - positionTicks;
if (leftTicks >= 0) {
updateTimeText(nowPlayingDurationText, leftTicks);
nowPlayingDurationText.innerHTML = '-' + nowPlayingDurationText.innerHTML;
nowPlayingDurationText.classList.remove('hide');
} else {
nowPlayingPositionText.classList.add('hide');
}
} else {
nowPlayingPositionText.classList.add('hide');
updateTimeText(nowPlayingDurationText, runtimeTicks);
nowPlayingDurationText.classList.remove('hide');
}
}
}
@ -871,6 +877,15 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
elem.innerHTML = html;
}
function nowPlayingDurationTextClick() {
userSettings.enableVideoRemainingTime(!userSettings.enableVideoRemainingTime());
// immediately update the text, without waiting for the next tick update or if the player is paused
const state = playbackManager.getPlayerState(currentPlayer);
const playState = state.PlayState;
const nowPlayingItem = state.NowPlayingItem;
updateTimeDisplay(playState.PositionTicks, nowPlayingItem.RunTimeTicks, playState.PlaybackStartTimeTicks, playState.PlaybackRate, playState.BufferedRanges || []);
}
function onSettingsButtonClick() {
const btn = this;
@ -1330,6 +1345,8 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
nowPlayingPositionSlider.classList.add('focusable');
}
nowPlayingDurationText.addEventListener('click', nowPlayingDurationTextClick);
view.addEventListener('viewbeforeshow', function () {
headerElement.classList.add('osdHeader');
setBackdropTransparency(TRANSPARENCY_LEVEL.Full);