diff --git a/src/activities/settings/FontSelectionActivity.cpp b/src/activities/settings/FontSelectionActivity.cpp index 87b3f0f7..1e5e568c 100644 --- a/src/activities/settings/FontSelectionActivity.cpp +++ b/src/activities/settings/FontSelectionActivity.cpp @@ -60,13 +60,26 @@ void FontSelectionActivity::loop() { return; } - buttonNavigator_.onNextRelease([this] { - selectedIndex_ = ButtonNavigator::nextIndex(selectedIndex_, static_cast(fonts_.size())); + const int listSize = static_cast(fonts_.size()); + const int pageItems = UITheme::getNumberOfItemsPerPage(renderer, true, false, true, false); + + buttonNavigator_.onNextRelease([this, listSize] { + selectedIndex_ = ButtonNavigator::nextIndex(selectedIndex_, listSize); requestUpdate(); }); - buttonNavigator_.onPreviousRelease([this] { - selectedIndex_ = ButtonNavigator::previousIndex(selectedIndex_, static_cast(fonts_.size())); + buttonNavigator_.onPreviousRelease([this, listSize] { + selectedIndex_ = ButtonNavigator::previousIndex(selectedIndex_, listSize); + requestUpdate(); + }); + + buttonNavigator_.onNextContinuous([this, listSize, pageItems] { + selectedIndex_ = ButtonNavigator::nextPageIndex(selectedIndex_, listSize, pageItems); + requestUpdate(); + }); + + buttonNavigator_.onPreviousContinuous([this, listSize, pageItems] { + selectedIndex_ = ButtonNavigator::previousPageIndex(selectedIndex_, listSize, pageItems); requestUpdate(); }); } diff --git a/src/activities/settings/LanguageSelectActivity.cpp b/src/activities/settings/LanguageSelectActivity.cpp index ab5fd02c..231cba52 100644 --- a/src/activities/settings/LanguageSelectActivity.cpp +++ b/src/activities/settings/LanguageSelectActivity.cpp @@ -37,6 +37,8 @@ void LanguageSelectActivity::loop() { return; } + const int pageItems = UITheme::getNumberOfItemsPerPage(renderer, true, false, true, false); + // Handle navigation buttonNavigator.onNextRelease([this] { selectedIndex = ButtonNavigator::nextIndex(static_cast(selectedIndex), totalItems); @@ -47,6 +49,16 @@ void LanguageSelectActivity::loop() { selectedIndex = ButtonNavigator::previousIndex(static_cast(selectedIndex), totalItems); requestUpdate(); }); + + buttonNavigator.onNextContinuous([this, pageItems] { + selectedIndex = ButtonNavigator::nextPageIndex(static_cast(selectedIndex), totalItems, pageItems); + requestUpdate(); + }); + + buttonNavigator.onPreviousContinuous([this, pageItems] { + selectedIndex = ButtonNavigator::previousPageIndex(static_cast(selectedIndex), totalItems, pageItems); + requestUpdate(); + }); } void LanguageSelectActivity::handleSelection() {