diff --git a/lib/I18n/translations/catalan.yaml b/lib/I18n/translations/catalan.yaml index ec377bb9..5bc09c10 100644 --- a/lib/I18n/translations/catalan.yaml +++ b/lib/I18n/translations/catalan.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Suprimir" STR_SHORT_PWR_BTN: "Clic curt del botó d'engegada" STR_ORIENTATION: "Orientació de lectura" STR_SIDE_BTN_LAYOUT: "Disposició botons laterals" -STR_LONG_PRESS_SKIP: "Pressió llarga omet el capítol" +STR_LONG_PRESS_BEHAVIOR: "Comportament de prémer llargament el botó" +STR_LONG_PRESS_BEHAVIOR_OFF: "Desactivat" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Saltar capítols" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Canvi d'orientació" STR_FONT_FAMILY: "Tipus de lletra" STR_FONT_SIZE: "Mida de la lletra (UI)" STR_LINE_SPACING: "Interlineat del lector" diff --git a/lib/I18n/translations/czech.yaml b/lib/I18n/translations/czech.yaml index 27113b56..e2b0ef51 100644 --- a/lib/I18n/translations/czech.yaml +++ b/lib/I18n/translations/czech.yaml @@ -69,7 +69,10 @@ STR_TEXT_AA: "Vyhlazování textu" STR_SHORT_PWR_BTN: "Krátké stisknutí tlačítka napájení" STR_ORIENTATION: "Orientace čtení" STR_SIDE_BTN_LAYOUT: "Rozvržení bočních tlačítek (čtečka)" -STR_LONG_PRESS_SKIP: "Dlouhé stisknutí Přeskočit kapitolu" +STR_LONG_PRESS_BEHAVIOR: "Chování při dlouhém stisknutí tlačítka" +STR_LONG_PRESS_BEHAVIOR_OFF: "VYP" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Přeskočení kapitoly" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Změna orientace" STR_FONT_FAMILY: "Rodina písem čtečky" STR_FONT_SIZE: "Velikost písma rozhraní" STR_LINE_SPACING: "Řádkování čtečky" diff --git a/lib/I18n/translations/danish.yaml b/lib/I18n/translations/danish.yaml index 2b631872..36ebc506 100644 --- a/lib/I18n/translations/danish.yaml +++ b/lib/I18n/translations/danish.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Skjul" STR_SHORT_PWR_BTN: "Kort tryk på tænd/sluk-knap" STR_ORIENTATION: "Læseretning" STR_SIDE_BTN_LAYOUT: "Knaplayout på siden (læser)" -STR_LONG_PRESS_SKIP: "Langt tryk spring kapitel over" +STR_LONG_PRESS_BEHAVIOR: "Comportamiento al mantener pulsado el botón" +STR_LONG_PRESS_BEHAVIOR_OFF: "Desactivado" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Saltar capítulo" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Cambio de orientación" STR_FONT_FAMILY: "Læser skrifttype" STR_FONT_SIZE: "Læser skriftstørrelse" STR_LINE_SPACING: "Linjeafstand" diff --git a/lib/I18n/translations/dutch.yaml b/lib/I18n/translations/dutch.yaml index 7c6bdfaf..63a37be9 100644 --- a/lib/I18n/translations/dutch.yaml +++ b/lib/I18n/translations/dutch.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Verbergen" STR_SHORT_PWR_BTN: "Korte klik aan/uit-knop" STR_ORIENTATION: "Leesstand" STR_SIDE_BTN_LAYOUT: "Indeling zijknoppen (lezer)" -STR_LONG_PRESS_SKIP: "Hoofdstuk overslaan (lang indrukken)" +STR_LONG_PRESS_BEHAVIOR: "Long-press button behavior" +STR_LONG_PRESS_BEHAVIOR_OFF: "OFF" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Chapter skip" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Orientation change" STR_FONT_FAMILY: "Lettertype lezer" STR_FONT_SIZE: "Lettergrootte lezer" STR_LINE_SPACING: "Regelafstand lezer" diff --git a/lib/I18n/translations/english.yaml b/lib/I18n/translations/english.yaml index ee5dc84d..d29b81c3 100644 --- a/lib/I18n/translations/english.yaml +++ b/lib/I18n/translations/english.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Suppress" STR_SHORT_PWR_BTN: "Short Power Button Click" STR_ORIENTATION: "Reading Orientation" STR_SIDE_BTN_LAYOUT: "Side Button Layout (reader)" -STR_LONG_PRESS_SKIP: "Long-press Chapter Skip" +STR_LONG_PRESS_BEHAVIOR: "Long-press button behavior" +STR_LONG_PRESS_BEHAVIOR_OFF: "OFF" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Chapter skip" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Orientation change" STR_FONT_FAMILY: "Reader Font Family" STR_FONT_SIZE: "Reader Font Size" STR_LINE_SPACING: "Reader Line Spacing" diff --git a/lib/I18n/translations/finnish.yaml b/lib/I18n/translations/finnish.yaml index 71785d43..6832dd26 100644 --- a/lib/I18n/translations/finnish.yaml +++ b/lib/I18n/translations/finnish.yaml @@ -69,7 +69,10 @@ STR_TEXT_AA: "Tekstin reunanpehmennys" STR_SHORT_PWR_BTN: "Lyhyt virtapainikkeen painallus" STR_ORIENTATION: "Lukusuunta" STR_SIDE_BTN_LAYOUT: "Sivupainikkeiden asettelu (lukija)" -STR_LONG_PRESS_SKIP: "Pitkä painallus: lukuhyppy" +STR_LONG_PRESS_BEHAVIOR: "Long-press button behavior" +STR_LONG_PRESS_BEHAVIOR_OFF: "OFF" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Chapter skip" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Orientation change" STR_FONT_FAMILY: "Lukijan fonttiperhe" STR_FONT_SIZE: "Käyttöliittymän fonttikoko" STR_LINE_SPACING: "Lukijan riviväli" diff --git a/lib/I18n/translations/french.yaml b/lib/I18n/translations/french.yaml index b4118a1c..fe5e062a 100644 --- a/lib/I18n/translations/french.yaml +++ b/lib/I18n/translations/french.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Masquer" STR_SHORT_PWR_BTN: "Appui court alim." STR_ORIENTATION: "Orientation de lecture" STR_SIDE_BTN_LAYOUT: "Boutons latéraux" -STR_LONG_PRESS_SKIP: "Appui long saut de chapitre" +STR_LONG_PRESS_BEHAVIOR: "Comportement lors d'un appui long" +STR_LONG_PRESS_BEHAVIOR_OFF: "Désactivé" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Saut de chapitre" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Changement d'orientation" STR_FONT_FAMILY: "Police de caractères du lecteur" STR_FONT_SIZE: "Taille texte interface" STR_LINE_SPACING: "Interligne" diff --git a/lib/I18n/translations/german.yaml b/lib/I18n/translations/german.yaml index 2a5fcf56..61d36a1c 100644 --- a/lib/I18n/translations/german.yaml +++ b/lib/I18n/translations/german.yaml @@ -69,7 +69,10 @@ STR_TEXT_AA: "Schriftglättung" STR_SHORT_PWR_BTN: "An-Taste kurz drücken" STR_ORIENTATION: "Leseausrichtung" STR_SIDE_BTN_LAYOUT: "Seitliche Tasten (Lesen)" -STR_LONG_PRESS_SKIP: "Langes Drücken springt Kap." +STR_LONG_PRESS_BEHAVIOR: "Verhalten bei langem Tastendruck" +STR_LONG_PRESS_BEHAVIOR_OFF: "AUS" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Kapitel überspringen" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Ausrichtung ändern" STR_FONT_FAMILY: "Lese-Schriftfamilie" STR_FONT_SIZE: "Schriftgröße" STR_LINE_SPACING: "Lese-Zeilenabstand" diff --git a/lib/I18n/translations/italian.yaml b/lib/I18n/translations/italian.yaml index 9f452bac..25de9853 100644 --- a/lib/I18n/translations/italian.yaml +++ b/lib/I18n/translations/italian.yaml @@ -73,6 +73,10 @@ STR_IMAGES_SUPPRESS: "Nascondi" STR_SHORT_PWR_BTN: "Pressione breve tasto accensione" STR_ORIENTATION: "Orientamento lettura" STR_SIDE_BTN_LAYOUT: "Pulsanti laterali (lettore)" +STR_LONG_PRESS_BEHAVIOR: "Long-press button behavior" +STR_LONG_PRESS_BEHAVIOR_OFF: "OFF" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Chapter skip" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Orientation change" STR_LONG_PRESS_SKIP: "Pressione lunga: salta capitolo" STR_FONT_FAMILY: "Font lettore" STR_FONT_SIZE: "Dimensione font lettore" diff --git a/lib/I18n/translations/polish.yaml b/lib/I18n/translations/polish.yaml index 8807ee65..4a5c0af7 100644 --- a/lib/I18n/translations/polish.yaml +++ b/lib/I18n/translations/polish.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Pomijaj" STR_SHORT_PWR_BTN: "Krótkie naciśnięcie zasilania" STR_ORIENTATION: "Układ czytania" STR_SIDE_BTN_LAYOUT: "Układ przycisków bocznych" -STR_LONG_PRESS_SKIP: "Przytrzymaj aby przeskoczyć rozdział" +STR_LONG_PRESS_BEHAVIOR: "Funkcja długiego przyciśnięcia" +STR_LONG_PRESS_BEHAVIOR_OFF: "Wył." +STR_LONG_PRESS_BEHAVIOR_SKIP: "Przeskocz rozdział" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Orientacja ekranu" STR_FONT_FAMILY: "Czcionka" STR_FONT_SIZE: "Rozmiar czcionki" STR_LINE_SPACING: "Odstępy między wierszami" diff --git a/lib/I18n/translations/portuguese.yaml b/lib/I18n/translations/portuguese.yaml index 5ff85267..f7379c16 100644 --- a/lib/I18n/translations/portuguese.yaml +++ b/lib/I18n/translations/portuguese.yaml @@ -69,7 +69,10 @@ STR_TEXT_AA: "Suavização de texto" STR_SHORT_PWR_BTN: "Clique curto botão ligar" STR_ORIENTATION: "Orientação de leitura" STR_SIDE_BTN_LAYOUT: "Disposição botões laterais" -STR_LONG_PRESS_SKIP: "Pular capítulo com pressão longa" +STR_LONG_PRESS_BEHAVIOR: "Comportamento do botão de premir e segurar" +STR_LONG_PRESS_BEHAVIOR_OFF: "Desligado" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Saltar capítulo" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Alterar orientação" STR_FONT_FAMILY: "Fonte do leitor" STR_FONT_SIZE: "Tam. fonte UI" STR_LINE_SPACING: "Espaçamento entre linhas" diff --git a/lib/I18n/translations/romanian.yaml b/lib/I18n/translations/romanian.yaml index 3d557264..2a4856a3 100644 --- a/lib/I18n/translations/romanian.yaml +++ b/lib/I18n/translations/romanian.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Suprimare" STR_SHORT_PWR_BTN: "Apăsare scurtă întrerupător" STR_ORIENTATION: "Orientare lectură" STR_SIDE_BTN_LAYOUT: "Aspect butoane laterale (lectură)" -STR_LONG_PRESS_SKIP: "Sărire capitol la apăsare lungă" +STR_LONG_PRESS_BEHAVIOR: "Comportament buton apăsat lung" +STR_LONG_PRESS_BEHAVIOR_OFF: "Dezactivat" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Sărire capitol" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Schimbă orientarea" STR_FONT_FAMILY: "Familie font lectură" STR_FONT_SIZE: "Dimensiune font" STR_LINE_SPACING: "Spaţiere între rânduri" diff --git a/lib/I18n/translations/russian.yaml b/lib/I18n/translations/russian.yaml index 1391cbcc..dda0acc0 100644 --- a/lib/I18n/translations/russian.yaml +++ b/lib/I18n/translations/russian.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Скрыть" STR_SHORT_PWR_BTN: "Короткое нажатие PWR" STR_ORIENTATION: "Ориентация чтения" STR_SIDE_BTN_LAYOUT: "Боковые кнопки" -STR_LONG_PRESS_SKIP: "Долгое нажатие - смена главы" +STR_LONG_PRESS_BEHAVIOR: "Долгое нажатие" +STR_LONG_PRESS_BEHAVIOR_OFF: "Ничего" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Пропуск главы" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Изменить ориентацию" STR_FONT_FAMILY: "Шрифт чтения" STR_FONT_SIZE: "Размер шрифта интерфейса" STR_LINE_SPACING: "Межстрочный интервал" diff --git a/lib/I18n/translations/spanish.yaml b/lib/I18n/translations/spanish.yaml index c37353f8..5cb76a23 100644 --- a/lib/I18n/translations/spanish.yaml +++ b/lib/I18n/translations/spanish.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Ocultar" STR_SHORT_PWR_BTN: "Toque corto botón encendido" STR_ORIENTATION: "Orientación" STR_SIDE_BTN_LAYOUT: "Función botones laterales (lector)" -STR_LONG_PRESS_SKIP: "Saltar capítulo (pulsación larga)" +STR_LONG_PRESS_BEHAVIOR: "Comportamiento al mantener pulsado el botón" +STR_LONG_PRESS_BEHAVIOR_OFF: "Desactivado" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Saltar capítulo" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Cambio de orientación" STR_FONT_FAMILY: "Tipografía" STR_FONT_SIZE: "Tamaño" STR_LINE_SPACING: "Interlineado" diff --git a/lib/I18n/translations/swedish.yaml b/lib/I18n/translations/swedish.yaml index 815d0cc3..fb934a28 100644 --- a/lib/I18n/translations/swedish.yaml +++ b/lib/I18n/translations/swedish.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Dölj" STR_SHORT_PWR_BTN: "Kort strömknappsklick" STR_ORIENTATION: "Läsrikting" STR_SIDE_BTN_LAYOUT: "Sidoknappslayout (Läsare)" -STR_LONG_PRESS_SKIP: "Lång-tryck Kapitelskippning" +STR_LONG_PRESS_BEHAVIOR: "Beteende vid lång knapptryckning" +STR_LONG_PRESS_BEHAVIOR_OFF: "AV" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Hoppa över kapitel" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Ändra orientering" STR_FONT_FAMILY: "Eboksläsarens typsnittsfamilj" STR_FONT_SIZE: "Eboksläsarens typsnittsstorlek" STR_LINE_SPACING: "Eboksläsarens linjemellanrum" diff --git a/lib/I18n/translations/turkish.yaml b/lib/I18n/translations/turkish.yaml index a517eb27..3c8c679a 100644 --- a/lib/I18n/translations/turkish.yaml +++ b/lib/I18n/translations/turkish.yaml @@ -68,7 +68,10 @@ STR_TEXT_AA: "Metin Yumuşatma (AA)" STR_SHORT_PWR_BTN: "Kısa Güç Tuşu Tıklaması" STR_ORIENTATION: "Okuma Yönü" STR_SIDE_BTN_LAYOUT: "Yan Tuş Dizilimi (okuyucu)" -STR_LONG_PRESS_SKIP: "Uzun Basışla Bölüm Atla" +STR_LONG_PRESS_BEHAVIOR: "Long-press button behavior" +STR_LONG_PRESS_BEHAVIOR_OFF: "OFF" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Chapter skip" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Orientation change" STR_FONT_FAMILY: "Okuyucu Yazı Tipi Ailesi" STR_FONT_SIZE: "Arayüz Yazı Boyutu" STR_LINE_SPACING: "Okuyucu Satır Aralığı" diff --git a/lib/I18n/translations/ukrainian.yaml b/lib/I18n/translations/ukrainian.yaml index d271ac45..845a0aad 100644 --- a/lib/I18n/translations/ukrainian.yaml +++ b/lib/I18n/translations/ukrainian.yaml @@ -73,7 +73,10 @@ STR_IMAGES_SUPPRESS: "Приховати" STR_SHORT_PWR_BTN: "Короткий натиск кн. живл." STR_ORIENTATION: "Орієнтація читання" STR_SIDE_BTN_LAYOUT: "Схема бічних кнопок" -STR_LONG_PRESS_SKIP: "Наступ. розділ (утримув.)" +STR_LONG_PRESS_BEHAVIOR: "Поведінка при довгому настику" +STR_LONG_PRESS_BEHAVIOR_OFF: "Немає" +STR_LONG_PRESS_BEHAVIOR_SKIP: "Наступ. розділ (утримув.)" +STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Зміна орієнтації екрану" STR_FONT_FAMILY: "Шрифт" STR_FONT_SIZE: "Розмір шрифту" STR_LINE_SPACING: "Міжрядковий інтервал" diff --git a/open-x4-sdk b/open-x4-sdk index a64a3c29..7d86603a 160000 --- a/open-x4-sdk +++ b/open-x4-sdk @@ -1 +1 @@ -Subproject commit a64a3c29bebc59b2ccdfe15492cfc4b5e4c26360 +Subproject commit 7d86603ad27709a9a766bb5ad893cfc39e60777e diff --git a/src/CrossPointSettings.cpp b/src/CrossPointSettings.cpp index 48d6d642..6516a5b2 100644 --- a/src/CrossPointSettings.cpp +++ b/src/CrossPointSettings.cpp @@ -205,7 +205,7 @@ bool CrossPointSettings::loadFromBinaryFile() { if (++settingsRead >= fileSettingsCount) break; readAndValidate(inputFile, hideBatteryPercentage, HIDE_BATTERY_PERCENTAGE_COUNT); if (++settingsRead >= fileSettingsCount) break; - serialization::readPod(inputFile, longPressChapterSkip); + readAndValidate(inputFile, longPressButtonBehavior, LONG_PRESS_BUTTON_BEHAVIOR_COUNT); if (++settingsRead >= fileSettingsCount) break; serialization::readPod(inputFile, hyphenationEnabled); if (++settingsRead >= fileSettingsCount) break; diff --git a/src/CrossPointSettings.h b/src/CrossPointSettings.h index 1c58b73e..01d7cc56 100644 --- a/src/CrossPointSettings.h +++ b/src/CrossPointSettings.h @@ -131,6 +131,14 @@ class CrossPointSettings { // Hide battery percentage enum HIDE_BATTERY_PERCENTAGE { HIDE_NEVER = 0, HIDE_READER = 1, HIDE_ALWAYS = 2, HIDE_BATTERY_PERCENTAGE_COUNT }; + // Page turn button long press behavior + enum LONG_PRESS_BUTTON_BEHAVIOR { + OFF = 0, + CHAPTER_SKIP = 1, + ORIENTATION_CHANGE = 2, + LONG_PRESS_BUTTON_BEHAVIOR_COUNT + }; + // UI Theme enum UI_THEME { CLASSIC = 0, LYRA = 1, LYRA_3_COVERS = 2, ROUNDEDRAFF = 3 }; @@ -189,8 +197,8 @@ class CrossPointSettings { char opdsPassword[64] = ""; // Hide battery percentage uint8_t hideBatteryPercentage = HIDE_NEVER; - // Long-press chapter skip on side buttons - uint8_t longPressChapterSkip = 1; + // Long-press page turn button behavior + uint8_t longPressButtonBehavior = OFF; // UI Theme uint8_t uiTheme = LYRA; // Sunlight fading compensation diff --git a/src/SettingsList.h b/src/SettingsList.h index 9a9b5b09..bbe9a774 100644 --- a/src/SettingsList.h +++ b/src/SettingsList.h @@ -71,12 +71,13 @@ inline const std::vector& getSettingsList() { // --- Controls --- SettingInfo::Enum(StrId::STR_SIDE_BTN_LAYOUT, &CrossPointSettings::sideButtonLayout, {StrId::STR_PREV_NEXT, StrId::STR_NEXT_PREV}, "sideButtonLayout", StrId::STR_CAT_CONTROLS), - SettingInfo::Toggle(StrId::STR_LONG_PRESS_SKIP, &CrossPointSettings::longPressChapterSkip, - "longPressChapterSkip", StrId::STR_CAT_CONTROLS), + SettingInfo::Enum(StrId::STR_LONG_PRESS_BEHAVIOR, &CrossPointSettings::longPressButtonBehavior, + {StrId::STR_LONG_PRESS_BEHAVIOR_OFF, StrId::STR_LONG_PRESS_BEHAVIOR_SKIP, + StrId::STR_LONG_PRESS_BEHAVIOR_ORIENTATION}, + "longPressButtonBehavior", StrId::STR_CAT_CONTROLS), SettingInfo::Enum(StrId::STR_SHORT_PWR_BTN, &CrossPointSettings::shortPwrBtn, {StrId::STR_IGNORE, StrId::STR_SLEEP, StrId::STR_PAGE_TURN, StrId::STR_FORCE_REFRESH}, "shortPwrBtn", StrId::STR_CAT_CONTROLS), - // --- System --- SettingInfo::Enum(StrId::STR_TIME_TO_SLEEP, &CrossPointSettings::sleepTimeout, {StrId::STR_MIN_1, StrId::STR_MIN_5, StrId::STR_MIN_10, StrId::STR_MIN_15, StrId::STR_MIN_30}, diff --git a/src/activities/reader/EpubReaderActivity.cpp b/src/activities/reader/EpubReaderActivity.cpp index 8415020a..57eeb462 100644 --- a/src/activities/reader/EpubReaderActivity.cpp +++ b/src/activities/reader/EpubReaderActivity.cpp @@ -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(); diff --git a/src/activities/reader/ReaderUtils.h b/src/activities/reader/ReaderUtils.h index 8f8eb073..13480696 100644 --- a/src/activities/reader/ReaderUtils.h +++ b/src/activities/reader/ReaderUtils.h @@ -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) || diff --git a/src/activities/reader/XtcReaderActivity.cpp b/src/activities/reader/XtcReaderActivity.cpp index 00dff8f8..02043265 100644 --- a/src/activities/reader/XtcReaderActivity.cpp +++ b/src/activities/reader/XtcReaderActivity.cpp @@ -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) {