feat: port upstream OPDS improvements (PRs #1207, #1209)

Port two upstream PRs:

- PR #1207: Replace manual chunked download loop with
  HTTPClient::writeToStream via a FileWriteStream adapter, improving
  reliability for OPDS file downloads including chunked transfers.

- PR #1209: Add support for multiple OPDS servers with a new
  OpdsServerStore (JSON persistence with MAC-based password obfuscation),
  OpdsServerListActivity and OpdsSettingsActivity UIs, per-server
  credentials passed to HttpDownloader, web UI management endpoints,
  and migration from legacy single-server settings.

Made-with: Cursor
This commit is contained in:
cottongin
2026-02-26 19:14:59 -05:00
parent 19b6ad047b
commit 2aa13ea2de
30 changed files with 1119 additions and 278 deletions

View File

@@ -416,6 +416,12 @@ enum class StrId : uint16_t {
STR_ACTION_FAILED,
STR_BACK_TO_BEGINNING,
STR_CLOSE_MENU,
STR_ADD_SERVER,
STR_SERVER_NAME,
STR_NO_SERVERS,
STR_DELETE_SERVER,
STR_DELETE_CONFIRM,
STR_OPDS_SERVERS,
// Sentinel - must be last
_COUNT
};

View File

@@ -344,3 +344,9 @@ STR_INDEXING_STATUS_ICON: "Ikona stavového řádku"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Přidat server"
STR_SERVER_NAME: "Název serveru"
STR_NO_SERVERS: "Žádné OPDS servery nejsou nakonfigurovány"
STR_DELETE_SERVER: "Smazat server"
STR_DELETE_CONFIRM: "Smazat tento server?"
STR_OPDS_SERVERS: "OPDS servery"

View File

@@ -380,3 +380,9 @@ STR_BOOK_REINDEXED: "Book reindexed"
STR_ACTION_FAILED: "Action failed"
STR_BACK_TO_BEGINNING: "Back to Beginning"
STR_CLOSE_MENU: "Close Menu"
STR_ADD_SERVER: "Add Server"
STR_SERVER_NAME: "Server Name"
STR_NO_SERVERS: "No OPDS servers configured"
STR_DELETE_SERVER: "Delete Server"
STR_DELETE_CONFIRM: "Delete this server?"
STR_OPDS_SERVERS: "OPDS Servers"

View File

@@ -344,3 +344,9 @@ STR_INDEXING_STATUS_ICON: "Icône barre d'état"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Ajouter un serveur"
STR_SERVER_NAME: "Nom du serveur"
STR_NO_SERVERS: "Aucun serveur OPDS configuré"
STR_DELETE_SERVER: "Supprimer le serveur"
STR_DELETE_CONFIRM: "Supprimer ce serveur ?"
STR_OPDS_SERVERS: "Serveurs OPDS"

View File

@@ -344,3 +344,9 @@ STR_INDEXING_STATUS_ICON: "Statusleistensymbol"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Server hinzufügen"
STR_SERVER_NAME: "Servername"
STR_NO_SERVERS: "Keine OPDS-Server konfiguriert"
STR_DELETE_SERVER: "Server löschen"
STR_DELETE_CONFIRM: "Diesen Server löschen?"
STR_OPDS_SERVERS: "OPDS-Server"

View File

@@ -344,3 +344,9 @@ STR_INDEXING_STATUS_ICON: "Ícone da barra"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Adicionar servidor"
STR_SERVER_NAME: "Nome do servidor"
STR_NO_SERVERS: "Nenhum servidor OPDS configurado"
STR_DELETE_SERVER: "Excluir servidor"
STR_DELETE_CONFIRM: "Excluir este servidor?"
STR_OPDS_SERVERS: "Servidores OPDS"

View File

@@ -319,3 +319,9 @@ STR_OPDS_SERVER_URL: "URL server OPDS"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Adaugă server"
STR_SERVER_NAME: "Numele serverului"
STR_NO_SERVERS: "Niciun server OPDS configurat"
STR_DELETE_SERVER: "Șterge serverul"
STR_DELETE_CONFIRM: "Ștergi acest server?"
STR_OPDS_SERVERS: "Servere OPDS"

View File

@@ -344,3 +344,9 @@ STR_INDEXING_STATUS_ICON: "Иконка в строке"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Добавить сервер"
STR_SERVER_NAME: "Имя сервера"
STR_NO_SERVERS: "Нет настроенных серверов OPDS"
STR_DELETE_SERVER: "Удалить сервер"
STR_DELETE_CONFIRM: "Удалить этот сервер?"
STR_OPDS_SERVERS: "Серверы OPDS"

View File

@@ -344,3 +344,9 @@ STR_INDEXING_STATUS_ICON: "Icono barra estado"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Añadir servidor"
STR_SERVER_NAME: "Nombre del servidor"
STR_NO_SERVERS: "No hay servidores OPDS configurados"
STR_DELETE_SERVER: "Eliminar servidor"
STR_DELETE_CONFIRM: "¿Eliminar este servidor?"
STR_OPDS_SERVERS: "Servidores OPDS"

View File

@@ -344,3 +344,9 @@ STR_INDEXING_STATUS_ICON: "Statusfältsikon"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"
STR_AUTO_NTP_SYNC: "Auto Sync on Boot"
STR_ADD_SERVER: "Lägg till server"
STR_SERVER_NAME: "Servernamn"
STR_NO_SERVERS: "Inga OPDS-servrar konfigurerade"
STR_DELETE_SERVER: "Ta bort server"
STR_DELETE_CONFIRM: "Ta bort denna server?"
STR_OPDS_SERVERS: "OPDS-servrar"