Merge branch 'feat-kosync-onlongpress' of https://github.com/jpirnay/crosspoint-reader into mybuild

This commit is contained in:
jpirnay
2026-03-23 13:31:19 +01:00
3 changed files with 19 additions and 29 deletions
+15 -27
View File
@@ -153,17 +153,7 @@ void EpubReaderActivity::loop() {
startActivityForResult( startActivityForResult(
std::make_unique<KOReaderSyncActivity>(renderer, mappedInput, epub, epub->getPath(), currentSpineIndex, std::make_unique<KOReaderSyncActivity>(renderer, mappedInput, epub, epub->getPath(), currentSpineIndex,
currentPage, totalPages), currentPage, totalPages),
[this](const ActivityResult& result) { [this](const ActivityResult& result) { handleSyncResult(result); });
if (!result.isCancelled) {
const auto& sync = std::get<SyncResult>(result.data);
if (currentSpineIndex != sync.spineIndex || (section && section->currentPage != sync.page)) {
RenderLock lock(*this);
currentSpineIndex = sync.spineIndex;
nextPageNumber = sync.page;
section.reset();
}
}
});
return; return;
} }
@@ -430,28 +420,26 @@ void EpubReaderActivity::onReaderMenuConfirm(EpubReaderMenuActivity::MenuAction
} }
startActivityForResult( startActivityForResult(
std::make_unique<KOReaderSyncActivity>(renderer, mappedInput, epub, epub->getPath(), currentSpineIndex, std::make_unique<KOReaderSyncActivity>(renderer, mappedInput, epub, epub->getPath(), currentSpineIndex,
currentPage, totalPages, paragraphIdx, hasParagraphIdx), currentPage, totalPages),
[this](const ActivityResult& result) { [this](const ActivityResult& result) { handleSyncResult(result); });
if (!result.isCancelled) {
const auto& sync = std::get<SyncResult>(result.data);
if (currentSpineIndex != sync.spineIndex || (section && section->currentPage != sync.page)) {
RenderLock lock(*this);
currentSpineIndex = sync.spineIndex;
nextPageNumber = sync.page;
if (sync.hasParagraphIndex) {
pendingParagraphLookup = true;
pendingParagraphIndex = sync.paragraphIndex;
}
section.reset();
}
}
});
} }
break; break;
} }
} }
} }
void EpubReaderActivity::handleSyncResult(const ActivityResult& result) {
if (!result.isCancelled) {
const auto& sync = std::get<SyncResult>(result.data);
if (currentSpineIndex != sync.spineIndex || (section && section->currentPage != sync.page)) {
RenderLock lock(*this);
currentSpineIndex = sync.spineIndex;
nextPageNumber = sync.page;
section.reset();
}
}
}
void EpubReaderActivity::applyOrientation(const uint8_t orientation) { void EpubReaderActivity::applyOrientation(const uint8_t orientation) {
// No-op if the selected orientation matches current settings. // No-op if the selected orientation matches current settings.
if (SETTINGS.orientation == orientation) { if (SETTINGS.orientation == orientation) {
@@ -52,6 +52,7 @@ class EpubReaderActivity final : public Activity {
// Jump to a percentage of the book (0-100), mapping it to spine and page. // Jump to a percentage of the book (0-100), mapping it to spine and page.
void jumpToPercent(int percent); void jumpToPercent(int percent);
void onReaderMenuConfirm(EpubReaderMenuActivity::MenuAction action); void onReaderMenuConfirm(EpubReaderMenuActivity::MenuAction action);
void handleSyncResult(const ActivityResult& result);
void applyOrientation(uint8_t orientation); void applyOrientation(uint8_t orientation);
void toggleAutoPageTurn(uint8_t selectedPageTurnOption); void toggleAutoPageTurn(uint8_t selectedPageTurnOption);
void applyBookReaderOverrides(int8_t embeddedStyleOverride, int8_t imageRenderingOverride); void applyBookReaderOverrides(int8_t embeddedStyleOverride, int8_t imageRenderingOverride);
@@ -107,8 +107,9 @@ void KOReaderSettingsActivity::handleSelection() {
// Can't authenticate without credentials - just show message briefly // Can't authenticate without credentials - just show message briefly
return; return;
} }
startActivityForResult(std::make_unique<KOReaderAuthActivity>(renderer, mappedInput, KOReaderAuthActivity::Mode::LOGIN), startActivityForResult(
[](const ActivityResult&) {}); std::make_unique<KOReaderAuthActivity>(renderer, mappedInput, KOReaderAuthActivity::Mode::LOGIN),
[](const ActivityResult&) {});
} else if (selectedIndex == 5) { } else if (selectedIndex == 5) {
// Register // Register
if (!KOREADER_STORE.hasCredentials()) { if (!KOREADER_STORE.hasCredentials()) {