From 22e45c2bf2180e5e5968af857dcc138c55550960 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Sat, 15 Jan 2022 20:03:13 +0300 Subject: [PATCH 1/3] Fix auto focus on Play/Resume --- src/components/autoFocuser.js | 3 +++ src/controllers/itemDetails/index.js | 15 +++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/components/autoFocuser.js b/src/components/autoFocuser.js index aa88e0c29..6afb38d40 100644 --- a/src/components/autoFocuser.js +++ b/src/components/autoFocuser.js @@ -59,6 +59,9 @@ import layoutManager from './layoutManager'; candidates.push(container.querySelector('.btnPreviousPage')); } else if (activeElement.classList.contains('btnSelectView')) { candidates.push(container.querySelector('.btnSelectView')); + } else if (activeElement.classList.contains('btnPlay')) { + // Resume has priority over Play + candidates = candidates.concat(Array.from(container.querySelectorAll('.btnResume'))); } candidates.push(activeElement); diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 4bc07ad1f..0fad97605 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -33,6 +33,12 @@ import ServerConnections from '../../components/ServerConnections'; import confirm from '../../components/confirm/confirm'; import { download } from '../../scripts/fileDownloader'; +function autoFocus(container) { + import('../../components/autoFocuser').then(({ default: autoFocuser }) => { + autoFocuser.autoFocus(container); + }); +} + function getPromise(apiClient, params) { const id = params.id; @@ -727,9 +733,7 @@ function reloadFromItem(instance, page, params, item, user) { hideAll(page, 'btnDownload', true); } - import('../../components/autoFocuser').then(({ default: autoFocuser }) => { - autoFocuser.autoFocus(page); - }); + autoFocus(page); } function logoImageUrl(item, apiClient, options) { @@ -1756,9 +1760,7 @@ function renderCollectionItems(page, parentItem, types, items) { // HACK: Call autoFocuser again because btnPlay may be hidden, but focused by reloadFromItem // FIXME: Sometimes focus does not move until all (?) sections are loaded - import('../../components/autoFocuser').then(({ default: autoFocuser }) => { - autoFocuser.autoFocus(page); - }); + autoFocus(page); } function renderCollectionItemType(page, parentItem, type, items) { @@ -2060,6 +2062,7 @@ export default function (view, params) { currentItem.UserData = userData; reloadPlayButtons(view, currentItem); refreshImage(view, currentItem); + autoFocus(view); } } } From cf55e3341dac05082e46f47eb203c6caa705732b Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Sat, 15 Jan 2022 20:24:25 +0300 Subject: [PATCH 2/3] Fix Play/Resume highlighting --- src/controllers/itemDetails/index.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 0fad97605..2a365f569 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -374,12 +374,12 @@ function reloadPlayButtons(page, item) { hideAll(page, 'btnShuffle'); } - const btnResume = page.querySelector('.mainDetailButtons .btnResume'); - const btnPlay = page.querySelector('.mainDetailButtons .btnPlay'); - if (layoutManager.tv && !btnResume.classList.contains('hide')) { - btnResume.classList.add('fab'); - } else if (layoutManager.tv && btnResume.classList.contains('hide')) { - btnPlay.classList.add('fab'); + if (layoutManager.tv) { + const btnResume = page.querySelector('.mainDetailButtons .btnResume'); + const btnPlay = page.querySelector('.mainDetailButtons .btnPlay'); + const resumeHidden = btnResume.classList.contains('hide'); + btnResume.classList.toggle('fab', !resumeHidden); + btnPlay.classList.toggle('fab', resumeHidden); } return canPlay; From 98201e0bc31ff2bdd1a3c241250f92664160e1e9 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Thu, 20 Jan 2022 19:23:14 +0300 Subject: [PATCH 3/3] Remove rounding style from Play/Resume button --- src/controllers/itemDetails/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 2a365f569..ad758fe96 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -378,8 +378,8 @@ function reloadPlayButtons(page, item) { const btnResume = page.querySelector('.mainDetailButtons .btnResume'); const btnPlay = page.querySelector('.mainDetailButtons .btnPlay'); const resumeHidden = btnResume.classList.contains('hide'); - btnResume.classList.toggle('fab', !resumeHidden); - btnPlay.classList.toggle('fab', resumeHidden); + btnResume.classList.toggle('raised', !resumeHidden); + btnPlay.classList.toggle('raised', resumeHidden); } return canPlay;