Introduce >2GB compatible PR 1424 from fdkekin0

This commit is contained in:
jpirnay
2026-03-31 22:06:21 +02:00
parent 3f6d31b966
commit fd8fcbfd50
9 changed files with 801 additions and 389 deletions
+7
View File
@@ -2,6 +2,7 @@
#include <FsHelpers.h>
#include <HalStorage.h>
#include <I18n.h>
#include "CrossPointSettings.h"
#include "Epub.h"
@@ -12,6 +13,8 @@
#include "XtcReaderActivity.h"
#include "activities/util/BmpViewerActivity.h"
#include "activities/util/FullScreenMessageActivity.h"
#include "components/UITheme.h"
#include "fontIds.h"
std::string ReaderActivity::extractFolderPath(const std::string& filePath) {
const auto lastSlash = filePath.find_last_of('/');
@@ -116,6 +119,10 @@ void ReaderActivity::onEnter() {
if (isBmpFile(initialBookPath)) {
onGoToBmpViewer(initialBookPath);
} else if (isXtcFile(initialBookPath)) {
renderer.clearScreen();
renderer.drawCenteredText(UI_12_FONT_ID, 300, tr(STR_LOADING), true, EpdFontFamily::BOLD);
renderer.displayBuffer();
auto xtc = loadXtc(initialBookPath);
if (!xtc) {
onGoBack();
@@ -42,6 +42,8 @@ void XtcReaderActivity::onEnter() {
APP_STATE.saveToFile();
RECENT_BOOKS.addBook(xtc->getPath(), xtc->getTitle(), xtc->getAuthor(), "", xtc->getThumbBmpPath());
xtc->prefetchPages(currentPage);
// Trigger first update
requestUpdate();
}
@@ -63,6 +65,7 @@ void XtcReaderActivity::loop() {
[this](const ActivityResult& result) {
if (!result.isCancelled) {
currentPage = std::get<PageResult>(result.data).page;
xtc->prefetchPages(currentPage);
}
});
}
@@ -118,12 +121,14 @@ void XtcReaderActivity::loop() {
} else {
currentPage = 0;
}
xtc->prefetchPages(currentPage);
requestUpdate();
} else if (nextTriggered) {
currentPage += skipAmount;
if (currentPage >= xtc->getPageCount()) {
currentPage = xtc->getPageCount(); // Allow showing "End of book"
}
xtc->prefetchPages(currentPage);
requestUpdate();
}
}