refactor: Eliminated relative path includes (#1961)

## Summary

Relative includes can hide inappropriate dependency relationships. In
this case, I found that lib/KOReaderSync/KOReaderCredentialStore.cpp was
dependent on src/JsonSettingsIO.h -- a lib -> app dependency, the
opposite direction dependencies should flow in this project.

This change replaces all relative includes with root-relative includes,
and corrects the KOReaderCredentialStore dependency by moving its JSON
settings serialization local to the KOReaderSync library.

---

### AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**PARTIALLY**_
This commit is contained in:
Zach Nelson
2026-05-13 08:26:30 -05:00
committed by GitHub
parent bc57e5d64b
commit 6f7f4c592a
40 changed files with 107 additions and 101 deletions
-39
View File
@@ -10,7 +10,6 @@
#include "CrossPointSettings.h"
#include "CrossPointState.h"
#include "KOReaderCredentialStore.h"
#include "OpdsServerStore.h"
#include "RecentBooksStore.h"
#include "SettingsList.h"
@@ -251,44 +250,6 @@ bool JsonSettingsIO::loadSettings(CrossPointSettings& s, const char* json, bool*
return true;
}
// ---- KOReaderCredentialStore ----
bool JsonSettingsIO::saveKOReader(const KOReaderCredentialStore& store, const char* path) {
JsonDocument doc;
doc["username"] = store.getUsername();
doc["password_obf"] = obfuscation::obfuscateToBase64(store.getPassword());
doc["serverUrl"] = store.getServerUrl();
doc["matchMethod"] = static_cast<uint8_t>(store.getMatchMethod());
String json;
serializeJson(doc, json);
return Storage.writeFile(path, json);
}
bool JsonSettingsIO::loadKOReader(KOReaderCredentialStore& store, const char* json, bool* needsResave) {
if (needsResave) *needsResave = false;
JsonDocument doc;
auto error = deserializeJson(doc, json);
if (error) {
LOG_ERR("KRS", "JSON parse error: %s", error.c_str());
return false;
}
store.username = doc["username"] | std::string("");
bool ok = false;
store.password = obfuscation::deobfuscateFromBase64(doc["password_obf"] | "", &ok);
if (!ok || store.password.empty()) {
store.password = doc["password"] | std::string("");
if (!store.password.empty() && needsResave) *needsResave = true;
}
store.serverUrl = doc["serverUrl"] | std::string("");
uint8_t method = doc["matchMethod"] | (uint8_t)0;
store.matchMethod = static_cast<DocumentMatchMethod>(method);
LOG_DBG("KRS", "Loaded KOReader credentials for user: %s", store.username.c_str());
return true;
}
// ---- WifiCredentialStore ----
bool JsonSettingsIO::saveWifi(const WifiCredentialStore& store, const char* path) {
-5
View File
@@ -3,7 +3,6 @@
class CrossPointSettings;
class CrossPointState;
class WifiCredentialStore;
class KOReaderCredentialStore;
class RecentBooksStore;
class OpdsServerStore;
@@ -21,10 +20,6 @@ bool loadState(CrossPointState& s, const char* json);
bool saveWifi(const WifiCredentialStore& store, const char* path);
bool loadWifi(WifiCredentialStore& store, const char* json, bool* needsResave = nullptr);
// KOReaderCredentialStore
bool saveKOReader(const KOReaderCredentialStore& store, const char* path);
bool loadKOReader(KOReaderCredentialStore& store, const char* json, bool* needsResave = nullptr);
// RecentBooksStore
bool saveRecentBooks(const RecentBooksStore& store, const char* path);
bool loadRecentBooks(RecentBooksStore& store, const char* json);
+1 -1
View File
@@ -1,5 +1,5 @@
#pragma once
#include "../Activity.h"
#include "activities/Activity.h"
class BootActivity final : public Activity {
public:
+1 -1
View File
@@ -1,5 +1,5 @@
#pragma once
#include "../Activity.h"
#include "activities/Activity.h"
class Bitmap;
@@ -5,8 +5,8 @@
#include <utility>
#include <vector>
#include "../Activity.h"
#include "OpdsServerStore.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
/**
+1 -1
View File
@@ -1,5 +1,5 @@
#pragma once
#include "../Activity.h"
#include "activities/Activity.h"
class CrashActivity final : public Activity {
std::string panicMessage;
+1 -1
View File
@@ -8,9 +8,9 @@
#include <algorithm>
#include "../util/ConfirmationActivity.h"
#include "CrossPointSettings.h"
#include "MappedInputManager.h"
#include "activities/util/ConfirmationActivity.h"
#include "components/UITheme.h"
#include "fontIds.h"
+1 -1
View File
@@ -4,8 +4,8 @@
#include <string>
#include <vector>
#include "../Activity.h"
#include "RecentBooksStore.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
class FileBrowserActivity final : public Activity {
+1 -1
View File
@@ -2,8 +2,8 @@
#include <functional>
#include <vector>
#include "../Activity.h"
#include "./FileBrowserActivity.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
struct RecentBook;
+1 -1
View File
@@ -5,8 +5,8 @@
#include <string>
#include <vector>
#include "../Activity.h"
#include "RecentBooksStore.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
class RecentBooksActivity final : public Activity {
@@ -2,7 +2,7 @@
#include <functional>
#include "../Activity.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
enum class NetworkMode { JOIN_NETWORK, CONNECT_CALIBRE, CREATE_HOTSPOT };
@@ -3,7 +3,7 @@
#include <memory>
#include "../Activity.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
class EpubReaderChapterSelectionActivity final : public Activity {
@@ -6,7 +6,7 @@
#include <functional>
#include <vector>
#include "../Activity.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
class EpubReaderFootnotesActivity final : public Activity {
@@ -5,7 +5,7 @@
#include <string>
#include <vector>
#include "../Activity.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
class EpubReaderMenuActivity final : public Activity {
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include <memory>
#include "../Activity.h"
#include "activities/Activity.h"
#include "activities/home/FileBrowserActivity.h"
class Epub;
@@ -3,7 +3,7 @@
#include <memory>
#include "../Activity.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
class XtcReaderChapterSelectionActivity final : public Activity {
@@ -5,7 +5,7 @@
#include <functional>
#include "../Activity.h"
#include "activities/Activity.h"
#include "components/UITheme.h"
#include "util/ButtonNavigator.h"
+1 -1
View File
@@ -3,8 +3,8 @@
#include <functional>
#include <string>
#include "../Activity.h"
#include "MappedInputManager.h"
#include "activities/Activity.h"
class BmpViewerActivity final : public Activity {
public:
+1 -1
View File
@@ -2,8 +2,8 @@
#include <I18n.h>
#include "../../components/UITheme.h"
#include "HalDisplay.h"
#include "components/UITheme.h"
ConfirmationActivity::ConfirmationActivity(GfxRenderer& renderer, MappedInputManager& mappedInput,
const std::string& heading, const std::string& body)
+2 -2
View File
@@ -2,8 +2,8 @@
#include <functional>
#include <string>
#include "../../fontIds.h"
#include "../Activity.h"
#include "activities/Activity.h"
#include "fontIds.h"
class ConfirmationActivity : public Activity {
private:
@@ -5,7 +5,7 @@
#include <string>
#include <utility>
#include "../Activity.h"
#include "activities/Activity.h"
class FullScreenMessageActivity final : public Activity {
std::string text;
+1 -1
View File
@@ -6,7 +6,7 @@
#include <string>
#include <utility>
#include "../Activity.h"
#include "activities/Activity.h"
#include "util/ButtonNavigator.h"
struct KeyDef {