This commit fixes the critical crash on Android 9 (API 28) that occurred when using WorkManager Expedited Work for background sync operations. ## Root Cause When setExpedited() is used in WorkManager, the CoroutineWorker must implement getForegroundInfo() to return a ForegroundInfo object with a Foreground Service notification. On Android 9-11, WorkManager calls this method, but the default implementation throws: IllegalStateException: Not implemented ## Solution - Implemented getForegroundInfo() in SyncWorker - Returns ForegroundInfo with sync progress notification - Android 10+: Sets FOREGROUND_SERVICE_TYPE_DATA_SYNC for proper service typing - Added required Foreground Service permissions to AndroidManifest.xml ## Technical Changes - SyncWorker.kt: Added getForegroundInfo() override - NotificationHelper.kt: Added createSyncProgressNotification() factory method - strings.xml: Added sync_in_progress UI strings (EN + DE) - AndroidManifest.xml: Added FOREGROUND_SERVICE permissions - Version updated to 1.7.1 (versionCode 18) ## Previously Fixed (in this release) - Kernel-VPN compatibility (Wireguard interface detection) - HTTP connection lifecycle optimization (SafeSardineWrapper) - Stability improvements for sync sessions ## Testing - Tested on Android 9 (API 28) - No crash on second app start - Tested on Android 15 (API 35) - No regressions - WiFi-connect sync working correctly - Expedited work notifications display properly Fixes #15 Thanks to @roughnecks for detailed bug report and testing!
F-Droid Metadata
Diese Verzeichnisstruktur enthält alle Metadaten für die F-Droid-Veröffentlichung.
Struktur
fastlane/metadata/android/de-DE/
├── title.txt # App-Name (max 50 Zeichen)
├── short_description.txt # Kurzbeschreibung (max 80 Zeichen)
├── full_description.txt # Vollständige Beschreibung (max 4000 Zeichen)
├── changelogs/
│ └── 1.txt # Changelog für Version 1
└── images/
└── phoneScreenshots/ # Screenshots (PNG/JPG, 320-3840px breit)
├── 1.png # Hauptansicht (Notizliste)
├── 2.png # Notiz-Editor
├── 3.png # Settings
└── 4.png # Empty State
Screenshots erstellen
Verwende einen Android Emulator oder physisches Gerät mit:
- Material You Theme aktiviert
- Deutsche Sprache
- Screenshots in hoher Auflösung (1080x2400 empfohlen)
Screenshot-Reihenfolge:
- Notizliste - Mit mehreren Beispiel-Notizen, Sync-Status sichtbar
- Editor - Zeige eine bearbeitete Notiz mit Titel und Inhalt
- Settings - Server-Konfiguration mit erfolgreichem Server-Status
- Empty State - Schöne leere Ansicht mit Material 3 Card
F-Droid Build-Konfiguration
Die App verwendet den fdroid Build-Flavor ohne proprietäre Dependencies.
Siehe build.gradle.kts für Details.