RSS Reader

de.lolo.rssreader
by Zapstore _@zapstore.dev

Compact RSS reader with offline storage and background updates.

Republished from GitHub / F-Droid by the Zapstore main account.

RSS Reader is a compact, classic RSS reader for Android. The app collects RSS and Atom feeds in one place and displays new articles in a clear, compact list view. New entries are stored locally and can be read directly in the integrated reader view or opened in the browser. Features: - Subscribe to RSS and Atom feeds - Import and export OPML files - Mark articles as read or unread - Protect favorites from deletion - Light and dark mode - Background updates with notifications - Compact reader view with images and swipe navigation The app is designed for simple, fast, and organized feed management.

First release: Aug 2, 2026, 10 total releases.

Most recent release: Oct 30, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Oct 30, 2026 1.87.40
    # RSS Reader Android 1.87.40 ## Kurzfassung Die WebView-Scrollbalken in der Artikelansicht sind jetzt ausgeblendet. Dadurch liegt am rechten Rand kein Scrollindikator mehr über dem Bereich für die Wischgeste zum Beitragswechsel. Das Scrollen des Beitrags per Finger bleibt unverändert. **Keine Datenbankmigration, keine neuen Abhängigkeiten und keine Änderung an Feeds oder gespeicherten Artikeln.** ## Änderungen ### Artikelansicht - `ui/screens/ArticleReaderScreen.kt`: Der vertikale WebView-Scrollbalken wird deaktiviert. - Der horizontale WebView-Scrollbalken wird ebenfalls deaktiviert.
    More…
    - Die Änderung betrifft ausschließlich die Darstellung des Scrollindikators; der Inhalt bleibt weiterhin per Finger scrollbar. ## Technische Hinweise - Version: 1.87.40 - Version Code: 169 - Keine R8-/Minify-Änderungen (dauerhaft deaktiviert), keine Datenbankmigrationen und keine neuen Abhängigkeiten. ## Validierung - `testDebugUnitTest --rerun-tasks`: **365 Tests, 0 Fehler, 0 Errors, 1 übersprungen** in 27 Testsuiten. - `lintDebug --rerun-tasks`: **0 Fehler, 26 Warnungen**. - Gerätetest auf bq Aquaris X2 Pro: Debug-APK 1.87.40/169 per `adb install -r` datenerhaltend installiert; App-Start, Feedliste, Artikelliste und Reader erfolgreich. Ein langer Artikel ließ sich vertikal scrollen; vor und nach dem Scrollen war kein vertikaler oder horizontaler WebView-Scrollbalken sichtbar. - Release-Build: signierte APK mit JDK-21-Toolchain und verpflichtendem `--rerun-tasks` erzeugt; `dexdump -d` auf `classes2.dex` bestätigt `HomeScreen`/`FeedConfigScreen` = **3298 / 790** (JDK-21-Spalte). - APK: `RSS-Reader-v1.87.40-release.apk`, **13.015.893 Bytes**, SHA-256 `ede178b1cc03868a092b7add329926bf273138398f948cfed2e67d3840b30a45`, Signaturzertifikat `CN=RSS Reader` (SHA-256 `2fb2657d…`).
  • Oct 17, 2026 1.87.39
    Version 1.87.39 haertet zwei Fehlerpfade, die im Betrieb zu falschen Reaktionen fuehren konnten. **Hintergrundaktualisierung (M1)** - Ein Coroutine-Abbruch wird nicht mehr als fehlgeschlagene Aktualisierung protokolliert und nicht mehr in `Result.retry()` umgewandelt. - Gewoehnliche Netzwerk-/Feed-Fehler verhalten sich unveraendert (Retry wie bisher). **Gelesen-Status (M2)** - Ein Datenbank-Schreibfehler beim Oeffnen eines Artikels kann die Leseransicht nicht mehr abstuerzen lassen. - Eine fehlgeschlagene Markierung gilt nicht mehr als erledigt: der naechste Ausloeser versucht sie erneut. - Coroutine-Cancellation wird weiterhin durchgereicht; erfolgreiche Markierungen und der Doppelmarkierungsschutz bleiben unveraendert.
    More…
    Keine Aenderungen an Feeds, Filtern, Navigation oder Leser-Oberflaeche. Keine Datenmigration. **Nachweise:** 365 Unit-Tests (0 Fehler, 1 uebersprungen), Android Lint 0 Fehler / 24 Warnungen, Reader-Kernfunktionen auf einem Testgeraet (Android 10) geprueft.
  • Oct 16, 2026 1.87.38
    # RSS Reader Android 1.87.38 ## Kurzfassung Neue Funktion aus GitHub Issue #12: Die Schaltfläche „Nur ungelesene Artikel" in der Artikelliste merkt sich ihre Stellung jetzt **dauerhaft und pro Feed**. Jeder Feed hat einen eigenen, unabhängig umschaltbaren Filterzustand, der Navigation, App-Neustart und Prozessneustart übersteht. Bestehende Benutzerdaten bleiben unverändert; neue Feeds zeigen weiterhin alle Artikel. ## Änderungen ### Feedbezogener Ungelesen-Filter (GitHub Issue #12) - `data/settings/SettingsRepository.kt`: neuer feedbezogener DataStore-Key `show_unread_only_feed_<feedId>` mit `unreadOnlyFilterForFeed(feedId): Flow<Boolean>` und `setUnreadOnlyFilterForFeed(feedId, value)`. Ohne gespeicherten Wert gilt `false` (alle Artikel). - `data/settings/AppPreferences.kt`: das frühere globale Feld `showUnreadOnly` ist entfernt; der Filterzustand liegt nicht mehr in den allgemeinen App-Einstellungen.
    More…
    - `ui/RssReaderApp.kt`: liest den Filterzustand je Feed (`remember(feedId)` + Flow) und schreibt Änderungen asynchron; Speicherfehler werden pro Feed geführt und gemeldet, sodass eine Rückmeldung aus einem Feed keinen anderen Feed beeinflusst. - `ui/screens/ArticleListScreen.kt`: Schaltfläche und Icon-Farbe folgen dem effektiven Zustand (unmittelbarer Toggle-Override, danach der persistierte Wert des Feeds); die Leerzustandsanzeige „Keine ungelesenen Artikel." bleibt unverändert. - Bestehende Daten: Der bisherige globale Schlüssel `show_unread_only` wird nicht mehr verwendet und **nicht** gelöscht (keine destruktive Bereinigung); er bleibt ungenutzt im DataStore erhalten und bestimmt keinen Feed-Zustand. ## Technische Hinweise - Version: 1.87.38 - Version Code: 167 - Keine R8-/Minify-Änderungen (dauerhaft deaktiviert), keine Datenbankmigrationen, keine neuen Abhängigkeiten. ## Validierung - testDebugUnitTest (359 Tests, 0 Fehler, 1 übersprungen; angepasste und neue Tests: feedbezogene Persistenz je Feed, Unabhängigkeit mehrerer Feeds, Bestandsdaten/Alt-Schlüssel, Filterlogik und Zustandsauflösung) - lintDebug (0 Fehler, 24 Warnungen) - Gerätetest auf vivo V2405A (Android 16) mit dem Debug-Build 1.87.38/167: Der Nutzer hat die feedbezogene Filterpersistenz bestätigt (jeder Feed behält seine eigene Filterstellung, auch nach vollständigem App-Neustart); die weiteren geprüften Funktionen verhalten sich korrekt. - Release-Build: signierte APK mit JDK-21-Toolchain erzeugt; JDK-Nachweis am Artefakt (`dexdump -d` auf `classes2.dex`, `insns size` von `HomeScreen`/`FeedConfigScreen` = **3298 / 790** = JDK-21-Spalte). ## Artefakte - `RSS-Reader-v1.87.38-release.apk` (13.015.889 Bytes, SHA-256 `90e5ba0db61d310b91cc0c8e78a84d37f1f9919e16e264e88773d316cf22c151`) - Debug-Testbuild: `RSS-Reader-v1.87.38-debug-20261016-070646.apk` (18.820.691 Bytes) - Signatur (beide): `2fb2657d3215dce8bc1b5a7ad84cf083ea6f3e3cde242fdb65e21d81a3b61e02` ## Veröffentlichung und F-Droid-Status - **Noch nicht veröffentlicht** (Stand der Vorbereitung: 2026-10-16). Vorgesehen sind: annotierter Tag `v1.87.38` an GitHub und GitLab, GitHub-Release „RSS Reader 1.87.38" mit dem Asset `RSS-Reader-v1.87.38-release.apk`. - F-Droid: kein manueller Merge-Request. Die Metadaten führen `AutoUpdateMode: Version` und `UpdateCheckMode: Tags ^v[\d.]+$`; das `Binaries`-Feld erwartet exakt `…/releases/download/v%v/RSS-Reader-v%v-release.apk` — der Dateiname dieses Releases passt dazu. Erwartet wird, dass der `checkupdates`-Lauf die Version nach dem Tag-Push selbstständig nachzieht. Veröffentlichter Stand zum Zeitpunkt der Vorbereitung: **1.87.37 / 166**. - Ein erfolgreicher F-Droid-Reproduzierbarkeits-Build ist zum jetzigen Zeitpunkt **nicht** nachgewiesen und wird hier nicht behauptet.
  • Oct 11, 2026 1.87.37
    # RSS Reader Android 1.87.37 ## Kurzfassung Fehlerbehebung: Nach "Alle Feeds als gelesen markieren" + "Alle gelesenen Einträge löschen" blieben einzelne Feeds nach dem Aktualisieren leer, weil der Abruf über HTTP 304 bzw. einen identischen ETag übersprungen wurde. Zusätzlich setzt "Aktualisierungsdatum zurücksetzen" (Einzel-Feed) nun den vollständigen Abrufzustand zurück und markiert alle vorhandenen Artikel des Feeds als ungelesen. ## Änderungen ### Fix - `FeedRepository.kt`: Die Skip-Pfade (HTTP 304, 200 mit identischem ETag) greifen nur noch, wenn der Feed lokal Artikel besitzt. Das Heavy-Feed-Throttling wird bei leerem Artikelbestand ebenfalls umgangen. - `FeedRepository.kt`: Beim Löschen gelesener Einträge wird der Conditional State (ETag/Last-Modified) der betroffenen Feeds zurückgesetzt (`refresh_state_reset`).
    More…
    - `FeedRepository.kt`: `markAllReadGlobally` protokolliert `mark_all_read beendet: betroffene_artikel=<n>`. - `FeedRepository.kt`: "Aktualisierungsdatum zurücksetzen" setzt `lastFetchedAt`, `etag` und `lastModified` des Feeds auf null und markiert alle Artikel des Feeds als ungelesen (`reset_fetch_state`, Einzel-Feed-Scope). ### Tests - Neue Tests für: Neuaufbau bei leerem Artikelbestand trotz ETag, unverändertes Skip-Verhalten bei vorhandenem Bestand, Lösch-Reset des Conditional State (nur betroffene Feeds), Reset-Verhalten (ETag/Last-Modified genullt, Artikel ungelesen, kein Fremd-Feed betroffen). ## Technische Hinweise - Version: 1.87.37 - Version Code: 166 - Keine R8-/Minify-Änderungen (dauerhaft deaktiviert), keine Datenbankmigrationen. ## Validierung - testDebugUnitTest: 347 Tests, 0 Fehler, 1 übersprungen - lintDebug: 0 Fehler, 24 Warnungen - Verifikation auf Gerät (vivo V2405A, Android 16): nach "als gelesen markieren" + "gelesene löschen" nahmen alle 8 Feeds den regulären Abrufpfad (224 neue Einträge); Dauerhaftigkeitslauf über vier Refresh-Zyklen inkl. App-Neustart; Einzel-Feed-Reset im Log belegt. ## Artefakte - RSS-Reader-v1.87.37-release.apk (13.015.349 Bytes, SHA-256 `d9aa46dfc4fa3c127b3d96731f6d1a2e4504d8ee12a425c5e76600b616bcef30`) - Signatur: `2fb2657d3215dce8bc1b5a7ad84cf083ea6f3e3cde242fdb65e21d81a3b61e02` ## Veröffentlichung und F-Droid-Status - Tag: `v1.87.37` (annotiert), an GitHub und GitLab gepusht. - F-Droid: Auto-Update aktiv (`AutoUpdateMode: Version`, `UpdateCheckMode: Tags ^v[\d.]+$`) — der checkupdates-Bot zieht den Tag selbstständig nach; kein manueller MR.
  • Sep 16, 2026 1.87.36
    Reproduzierbarer Release-Build: Kotlin-Toolchain auf JDK 21 festgelegt. Der F-Droid-Buildserver baut jede Version selbst mit Debian OpenJDK 21 und vergleicht die erzeugte APK byteweise mit dieser Release-APK. Bisher wurde lokal mit JDK 17 gebaut, wodurch classes2.dex abwich und der F-Droid-CI-Job "fdroid build" fehlschlug (Versionen 1.87.33 und 1.87.35 sind deshalb nie bei F-Droid erschienen). Mit kotlin { jvmToolchain(21) } ist der Build nun reproduzierbar. jvmTarget und compileOptions bleiben unveraendert auf 17. Keine funktionalen Aenderungen gegenueber 1.87.35.
  • Sep 14, 2026 1.87.35
    ## RSS Reader 1.87.35 (164) **Änderungen** - Beim Verlassen der Leseransicht wird der zuletzt sichtbare Artikel als gelesen markiert - unabhängig vom Ausstiegsweg: Zurück-Pfeil, Back-Taste, Systemgeste und Home-Button (Lifecycle `ON_STOP`). - Ein gemeinsamer Set-Guard verhindert Doppelmarkierungen, wenn ein Artikel bereits durch Öffnen oder Wischen markiert wurde. Artikel, die nie angezeigt wurden, werden nicht markiert. **Technik** - Unit-Tests: 335 (0 Failures, 0 Errors, 1 Skipped)
    More…
    - Signatur: Zertifikat-SHA-256 `2fb2657d3215dce8bc1b5a7ad84cf083ea6f3e3cde242fdb65e21d81a3b61e02`
  • Sep 10, 2026 1.87.33
    ## RSS Reader 1.87.33 (162) **Änderungen** - Der Einstellungsschalter "Beim Scrollen als gelesen markieren" wurde **entfernt**. Das Markieren beim Durchlaufen der Artikelliste ist jetzt **fest aktiv** (nicht mehr abschaltbar) und bleibt nur beim Filter "nur ungelesen" ausgesetzt, damit keine Artikel unter dem Finger verschwinden. - Der Unix-Wrapper gradlew wurde an gradlew.bat und gradle.properties angeglichen (-Djava.net.preferIPv4Stack=false) - reine Konsistenz, kein Verhaltensunterschied in der App. - Version 1.87.33 / VersionCode 162. **Technik**
    More…
    - Unit-Tests: 333 (0 Failures, 0 Errors, 1 Skipped) - Signatur: Zertifikat-SHA-256 `2fb2657d3215dce8bc1b5a7ad84cf083ea6f3e3cde242fdb65e21d81a3b61e02`
  • Sep 8, 2026 1.87.32
    ## RSS Reader 1.87.32 (161) **Neu** - **Volltext aus der Originalseite:** Liefert ein Feed nur einen Teaser, kann der vollständige Artikeltext direkt in der Leseransicht nachgeladen werden (jsoup 1.18.1). Bei Fehlern erfolgt ein stiller Rückfall auf den Feed-Inhalt. - **Ein Volltext-Toggle (A4-Blatt):** Der erste Tipp lädt den Volltext, weitere Tipps wechseln ohne erneutes Laden zwischen Volltext und Kurzfassung. - **Beim Scrollen als gelesen markieren:** Artikel werden in der Artikelliste automatisch als gelesen markiert, sobald sie durchlaufen wurden. Neue Einstellung "Beim Scrollen als gelesen markieren", standardmäßig aus. - **Teilen:** Artikel bzw. Link über das Android-Share-Sheet weitergeben (Leseransicht und Artikelliste). **Technik**
    More…
    - Neue Abhängigkeit: jsoup 1.18.1 (Apache-2.0) - Unit-Tests: 330 (0 Failures, 0 Errors, 1 Skipped) - Version 1.87.32 / VersionCode 161 Die APK ist mit dem Release-Schlüssel signiert (Zertifikat-SHA-256 2fb2657d3215dce8bc1b5a7ad84cf083ea6f3e3cde242fdb65e21d81a3b61e02).
  • Aug 12, 2026 1.87.30
    Release RSS Reader 1.87.30 Interne Verbesserungen ohne Funktionsaenderung: - Versionsquelle konsolidiert: version.properties ist die einzige Quelle - WLAN-Erkennung zentralisiert (ConnectivitySupport.kt) - Gradle-Versionskatalog eingefuehrt (libs.versions.toml) - Debug-Builds werden mit demselben Release-Key signiert wie die Release-APK
  • Aug 2, 2026 1.87.29
    Release for F-Droid build verification.