Fix usage

This commit is contained in:
jpirnay
2026-04-17 18:00:30 +02:00
parent de314182f7
commit fbde017d88
2 changed files with 24 additions and 5 deletions
+23 -4
View File
@@ -34,6 +34,22 @@
// deep inside the heap allocator chain — enough stack to overflow the 8 KB loop task stack
// when called from inside SETTINGS.loadFromFile() at boot time.
namespace SettingsListDetail {
inline uint8_t getKoReaderMatchMethod(const void*) {
return static_cast<uint8_t>(KOREADER_STORE.getMatchMethod());
}
inline std::string getKoReaderServerUrl(void*) {
return KOREADER_STORE.getServerUrl();
}
inline std::string getKoReaderUsername(void*) {
return KOREADER_STORE.getUsername();
}
inline std::string getKoReaderPassword(void*) {
return KOREADER_STORE.getPassword();
}
inline const std::vector<SettingInfo> list = {
// --- Display ---
SettingInfo::Enum(StrId::STR_TIME_TO_SLEEP, &CrossPointSettings::sleepTimeout,
@@ -151,21 +167,24 @@ inline const std::vector<SettingInfo> list = {
// --- KOReader Sync (web-only, uses KOReaderCredentialStore) ---
SettingInfo::DynamicString(
StrId::STR_SYNC_SERVER_URL, [](void*) { return KOREADER_STORE.getServerUrl(); },
StrId::STR_SYNC_SERVER_URL,
static_cast<SettingInfo::StringGetterFn>(getKoReaderServerUrl),
[](void*, const std::string& v) {
KOREADER_STORE.setServerUrl(v);
KOREADER_STORE.saveToFile();
},
"koServerUrl", StrId::STR_KOREADER_SYNC),
SettingInfo::DynamicString(
StrId::STR_KOREADER_USERNAME, [](void*) { return KOREADER_STORE.getUsername(); },
StrId::STR_KOREADER_USERNAME,
static_cast<SettingInfo::StringGetterFn>(getKoReaderUsername),
[](void*, const std::string& v) {
KOREADER_STORE.setCredentials(v, KOREADER_STORE.getPassword());
KOREADER_STORE.saveToFile();
},
"koUsername", StrId::STR_KOREADER_SYNC),
SettingInfo::DynamicString(
StrId::STR_KOREADER_PASSWORD, [](void*) { return KOREADER_STORE.getPassword(); },
StrId::STR_KOREADER_PASSWORD,
static_cast<SettingInfo::StringGetterFn>(getKoReaderPassword),
[](void*, const std::string& v) {
KOREADER_STORE.setCredentials(KOREADER_STORE.getUsername(), v);
KOREADER_STORE.saveToFile();
@@ -174,7 +193,7 @@ inline const std::vector<SettingInfo> list = {
.withObfuscated(),
SettingInfo::DynamicEnum(
StrId::STR_DOCUMENT_MATCHING, {StrId::STR_FILENAME, StrId::STR_BINARY},
[](void*) { return static_cast<uint8_t>(KOREADER_STORE.getMatchMethod()); },
getKoReaderMatchMethod,
[](void*, uint8_t v) {
KOREADER_STORE.setMatchMethod(static_cast<DocumentMatchMethod>(v));
KOREADER_STORE.saveToFile();
@@ -26,7 +26,7 @@ void KOReaderSettingsActivity::buildMenuItems() {
// Document matching: DynamicEnum toggling between Filename and Binary
menuItems.push_back(SettingInfo::DynamicEnum(
StrId::STR_DOCUMENT_MATCHING, {StrId::STR_FILENAME, StrId::STR_BINARY},
[](void*) { return static_cast<uint8_t>(KOREADER_STORE.getMatchMethod()); },
static_cast<SettingInfo::ValueGetterFn>([](const void*) -> uint8_t { return static_cast<uint8_t>(KOREADER_STORE.getMatchMethod()); }),
[](void*, uint8_t v) {
KOREADER_STORE.setMatchMethod(static_cast<DocumentMatchMethod>(v));
KOREADER_STORE.saveToFile();