feat: Page turn button orientation change (#1069)

Co-authored-by: Егор Мартынов <martynovegorOF@yandex.ru>
This commit is contained in:
Maciek
2026-05-04 08:56:02 +03:00
committed by GitHub
co-authored by Егор Мартынов
parent b692bad10d
commit 2e2ea6a9e8
24 changed files with 99 additions and 29 deletions
+11 -3
View File
@@ -202,15 +202,14 @@ void EpubReaderActivity::loop() {
return;
}
const bool skipChapter = !fromTilt && SETTINGS.longPressChapterSkip && mappedInput.getHeldTime() > skipChapterMs;
const bool longPress = !fromTilt && mappedInput.getHeldTime() > skipChapterMs;
// Don't skip chapter after screenshot
if (gpio.wasReleased(HalGPIO::BTN_POWER) && gpio.wasReleased(HalGPIO::BTN_DOWN)) {
return;
}
if (skipChapter) {
lastPageTurnTime = millis();
if (longPress && SETTINGS.longPressButtonBehavior == SETTINGS.CHAPTER_SKIP) {
// We don't want to delete the section mid-render, so grab the semaphore
{
RenderLock lock(*this);
@@ -222,6 +221,15 @@ void EpubReaderActivity::loop() {
return;
}
if (longPress && SETTINGS.longPressButtonBehavior == SETTINGS.ORIENTATION_CHANGE) {
const uint8_t newOrientation =
nextTriggered ? (SETTINGS.orientation - 1 + SETTINGS.ORIENTATION_COUNT) % SETTINGS.ORIENTATION_COUNT
: (SETTINGS.orientation + 1) % SETTINGS.ORIENTATION_COUNT;
applyOrientation(newOrientation);
requestUpdate();
return;
}
// No current section, attempt to rerender the book
if (!section) {
requestUpdate();
+1 -1
View File
@@ -37,7 +37,7 @@ struct PageTurnResult {
};
inline PageTurnResult detectPageTurn(const MappedInputManager& input) {
const bool usePress = !SETTINGS.longPressChapterSkip;
const bool usePress = SETTINGS.longPressButtonBehavior == SETTINGS.OFF;
const bool tiltNext = SETTINGS.tiltPageTurn && halTiltSensor.wasTiltedForward();
const bool tiltPrev = SETTINGS.tiltPageTurn && halTiltSensor.wasTiltedBack();
const bool prev = tiltPrev || (usePress ? (input.wasPressed(MappedInputManager::Button::PageBack) ||
+3 -2
View File
@@ -82,7 +82,7 @@ void XtcReaderActivity::loop() {
}
// When long-press chapter skip is disabled, turn pages on press instead of release.
const bool usePressForPageTurn = !SETTINGS.longPressChapterSkip;
const bool usePressForPageTurn = SETTINGS.longPressButtonBehavior == SETTINGS.OFF;
const bool tiltNext = SETTINGS.tiltPageTurn && halTiltSensor.wasTiltedForward();
const bool tiltPrev = SETTINGS.tiltPageTurn && halTiltSensor.wasTiltedBack();
const bool prevTriggered =
@@ -114,7 +114,8 @@ void XtcReaderActivity::loop() {
}
const bool fromTilt = tiltPrev || tiltNext;
const bool skipPages = !fromTilt && SETTINGS.longPressChapterSkip && mappedInput.getHeldTime() > skipPageMs;
const bool skipPages =
!fromTilt && SETTINGS.longPressButtonBehavior == SETTINGS.CHAPTER_SKIP && mappedInput.getHeldTime() > skipPageMs;
const int skipAmount = skipPages ? 10 : 1;
if (prevTriggered) {