From cf54f44377bbf7e16aa1616f70797a829e63c53c Mon Sep 17 00:00:00 2001 From: inventory69 Date: Wed, 11 Feb 2026 15:45:51 +0100 Subject: [PATCH] docs(v1.8.1): comprehensive metadata & documentation update for F-Droid release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete overhaul of all metadata and documentation for v1.8.1: F-Droid Critical: - Fix broken umlauts in de-DE/10.txt changelog (für, hinzugefügt, aufgeräumt) - Shorten de-DE/7.txt changelog for brevity - Remove trailing newline from en-US/title.txt Version & Accuracy: - Update README badges (Android 7.0+) and footer (v1.8.1) - Add widgets, sorting, parallel sync to highlights - Fix APK names in workflows (removed "universal") - Update cache action v3 → v4 in PR workflow - Fix CONTRIBUTING.md filename references - Update QUICKSTART guides (APK name, typo, Android version, docs links) Feature Documentation: - Update full_description.txt (both locales) - remove NEW/NEU labels, add v1.8.0+ features - Major FEATURES.md update - add Views & Layout, Widgets sections, updated tech stack - Add UPCOMING.md v1.7.0-1.8.1 as released sections - Update DOCS.md roadmap references and dates to Feb 2026 - Create missing en-US changelogs 1.txt, 2.txt Supplementary Fixes: - Update BACKUP.md - add encryption docs, fix cross-references - Add CHANGELOG.md reference links v1.2.1-v1.8.1 (15 missing) - Fix DEBUG_APK.md duplicate header - Rewrite fastlane/README.md with both locales and limits table - Create SELF_SIGNED_SSL.de.md (full German translation) Affects: 26 files across READMEs, docs/, fastlane/, workflows --- .github/workflows/build-production-apk.yml | 4 +- .github/workflows/pr-build-check.yml | 6 +- CHANGELOG.de.md | 15 ++ CHANGELOG.md | 15 ++ CONTRIBUTING.md | 18 +-- QUICKSTART.de.md | 6 +- QUICKSTART.md | 10 +- README.de.md | 10 +- README.md | 10 +- docs/BACKUP.de.md | 7 +- docs/BACKUP.md | 13 +- docs/DEBUG_APK.md | 2 - docs/DOCS.de.md | 14 +- docs/DOCS.md | 14 +- docs/FEATURES.de.md | 80 +++++++--- docs/FEATURES.md | 80 +++++++--- docs/SELF_SIGNED_SSL.de.md | 146 ++++++++++++++++++ docs/UPCOMING.de.md | 94 +++++++++-- docs/UPCOMING.md | 94 +++++++++-- fastlane/README.md | 58 ++++--- .../metadata/android/de-DE/changelogs/10.txt | 4 +- .../metadata/android/de-DE/changelogs/7.txt | 10 +- .../android/de-DE/full_description.txt | 22 +-- .../metadata/android/en-US/changelogs/1.txt | 8 + .../metadata/android/en-US/changelogs/2.txt | 5 + .../android/en-US/full_description.txt | 20 +-- 26 files changed, 583 insertions(+), 182 deletions(-) create mode 100644 docs/SELF_SIGNED_SSL.de.md create mode 100644 fastlane/metadata/android/en-US/changelogs/1.txt create mode 100644 fastlane/metadata/android/en-US/changelogs/2.txt diff --git a/.github/workflows/build-production-apk.yml b/.github/workflows/build-production-apk.yml index e742e22..da60748 100644 --- a/.github/workflows/build-production-apk.yml +++ b/.github/workflows/build-production-apk.yml @@ -61,11 +61,11 @@ jobs: run: | mkdir -p apk-output - # Standard Flavor - Universal APK + # Standard Flavor cp android/app/build/outputs/apk/standard/release/app-standard-release.apk \ apk-output/simple-notes-sync-v${{ env.VERSION_NAME }}-standard.apk - # F-Droid Flavor - Universal APK + # F-Droid Flavor cp android/app/build/outputs/apk/fdroid/release/app-fdroid-release.apk \ apk-output/simple-notes-sync-v${{ env.VERSION_NAME }}-fdroid.apk diff --git a/.github/workflows/pr-build-check.yml b/.github/workflows/pr-build-check.yml index fd0fc2f..698116f 100644 --- a/.github/workflows/pr-build-check.yml +++ b/.github/workflows/pr-build-check.yml @@ -18,7 +18,7 @@ jobs: distribution: 'temurin' java-version: '17' - name: Gradle Cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.gradle/caches @@ -69,14 +69,14 @@ jobs: continue-on-error: true - name: Build-Ergebnis pruefen run: | - if [ -f "android/app/build/outputs/apk/standard/debug/app-standard-universal-debug.apk" ]; then + if [ -f "android/app/build/outputs/apk/standard/debug/app-standard-debug.apk" ]; then echo "✅ Standard Debug APK erfolgreich gebaut" ls -lh android/app/build/outputs/apk/standard/debug/*.apk else echo "❌ Standard Debug APK Build fehlgeschlagen" exit 1 fi - if [ -f "android/app/build/outputs/apk/fdroid/debug/app-fdroid-universal-debug.apk" ]; then + if [ -f "android/app/build/outputs/apk/fdroid/debug/app-fdroid-debug.apk" ]; then echo "✅ F-Droid Debug APK erfolgreich gebaut" ls -lh android/app/build/outputs/apk/fdroid/debug/*.apk else diff --git a/CHANGELOG.de.md b/CHANGELOG.de.md index fba498b..77004c3 100644 --- a/CHANGELOG.de.md +++ b/CHANGELOG.de.md @@ -968,6 +968,21 @@ Das komplette UI wurde von XML-Views auf Jetpack Compose migriert. Die App ist j --- +[1.8.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.8.1 +[1.8.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.8.0 +[1.7.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.7.2 +[1.7.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.7.1 +[1.7.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.7.0 +[1.6.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.6.1 +[1.6.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.6.0 +[1.5.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.5.0 +[1.4.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.4.1 +[1.4.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.4.0 +[1.3.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.3.2 +[1.3.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.3.1 +[1.3.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.3.0 +[1.2.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.2.2 +[1.2.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.2.1 [1.2.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.2.0 [1.1.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.1.2 [1.1.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.1.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index aadec13..45a8394 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -967,6 +967,21 @@ The complete UI has been migrated from XML Views to Jetpack Compose. The app is --- +[1.8.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.8.1 +[1.8.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.8.0 +[1.7.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.7.2 +[1.7.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.7.1 +[1.7.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.7.0 +[1.6.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.6.1 +[1.6.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.6.0 +[1.5.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.5.0 +[1.4.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.4.1 +[1.4.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.4.0 +[1.3.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.3.2 +[1.3.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.3.1 +[1.3.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.3.0 +[1.2.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.2.2 +[1.2.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.2.1 [1.2.0]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.2.0 [1.1.2]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.1.2 [1.1.1]: https://github.com/inventory69/simple-notes-sync/releases/tag/v1.1.1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2cd591e..94da28d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -94,10 +94,10 @@ Nutze die [Feature Request Template](https://github.com/inventory69/simple-notes Dokumentations-Verbesserungen sind auch Contributions! **Dateien:** -- `README.md` / `README.en.md` - Übersicht -- `QUICKSTART.md` / `QUICKSTART.en.md` - Schritt-für-Schritt Anleitung -- `DOCS.md` / `DOCS.en.md` - Technische Details -- `server/README.md` / `server/README.en.md` - Server Setup +- `README.de.md` / `README.md` - Übersicht +- `QUICKSTART.de.md` / `QUICKSTART.md` - Schritt-für-Schritt Anleitung +- `docs/DOCS.de.md` / `docs/DOCS.md` - Technische Details +- `server/README.de.md` / `server/README.md` - Server Setup **Bitte:** Halte beide Sprachen (DE/EN) synchron! @@ -219,10 +219,10 @@ Use the [Feature Request Template](https://github.com/inventory69/simple-notes-s Documentation improvements are also contributions! **Files:** -- `README.md` / `README.en.md` - Overview -- `QUICKSTART.md` / `QUICKSTART.en.md` - Step-by-step guide -- `DOCS.md` / `DOCS.en.md` - Technical details -- `server/README.md` / `server/README.en.md` - Server setup +- `README.de.md` / `README.md` - Overview +- `QUICKSTART.de.md` / `QUICKSTART.md` - Step-by-step guide +- `docs/DOCS.de.md` / `docs/DOCS.md` - Technical details +- `server/README.de.md` / `server/README.md` - Server setup **Please:** Keep both languages (DE/EN) in sync! @@ -260,4 +260,4 @@ By contributing, you agree that your code will be published under the [MIT Licen Öffne ein [Issue](https://github.com/inventory69/simple-notes-sync/issues) oder nutze die [Question Template](https://github.com/inventory69/simple-notes-sync/issues/new/choose). -**Frohe Weihnachten & Happy Coding! 🎄** +**Happy Coding! 🚀** diff --git a/QUICKSTART.de.md b/QUICKSTART.de.md index c6ac210..4e6202c 100644 --- a/QUICKSTART.de.md +++ b/QUICKSTART.de.md @@ -8,7 +8,7 @@ ## Voraussetzungen -- ✅ Android 8.0+ Smartphone/Tablet +- ✅ Android 7.0+ Smartphone/Tablet - ✅ WLAN-Verbindung - ✅ Eigener Server mit Docker (optional - für Self-Hosting) @@ -52,7 +52,7 @@ ip addr show | grep "inet " | grep -v 127.0.0.1 ### Schritt 2: App installieren 1. **APK herunterladen:** [Neueste Version](https://github.com/inventory69/simple-notes-sync/releases/latest) - - Wähle: `simple-notes-sync-vX.X.X-standard-universal.apk` + - Wähle: `simple-notes-sync-vX.X.X-standard.apk` 2. **Installation erlauben:** - Android: Einstellungen → Sicherheit → "Unbekannte Quellen" für deinen Browser aktivieren @@ -261,7 +261,7 @@ Für zuverlässigen Auto-Sync: ## 🆘 Weitere Hilfe - **GitHub Issues:** [Problem melden](https://github.com/inventory69/simple-notes-sync/issues) -- **Vollständige Docs:** [DOCS.md](DOCS.md) +- **Vollständige Docs:** [DOCS.md](docs/DOCS.md) - **Server Setup Details:** [server/README.md](server/README.md) --- diff --git a/QUICKSTART.md b/QUICKSTART.md index 4010d1b..de8b68c 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -8,7 +8,7 @@ ## Prerequisites -- ✅ Android 8.0+ smartphone/tablet +- ✅ Android 7.0+ smartphone/tablet - ✅ WiFi connection - ✅ Own server with Docker (optional - for self-hosting) @@ -52,7 +52,7 @@ ip addr show | grep "inet " | grep -v 127.0.0.1 ### Step 2: Install App 1. **Download APK:** [Latest version](https://github.com/inventory69/simple-notes-sync/releases/latest) - - Choose: `simple-notes-sync-vX.X.X-standard-universal.apk` + - Choose: `simple-notes-sync-vX.X.X-standard.apk` 2. **Allow installation:** - Android: Settings → Security → Enable "Unknown sources" for your browser @@ -77,7 +77,7 @@ ip addr show | grep "inet " | grep -v 127.0.0.1 > **💡 Note:** Enter only the base URL (without `/notes`). The app automatically creates `/notes/` for JSON files and `/notes-md/` for Markdown export. -4. **Press "Test connection"**** +4. **Press "Test connection"** - ✅ Success? → Continue to step 4 - ❌ Error? → See [Troubleshooting](#troubleshooting) @@ -261,8 +261,8 @@ For reliable auto-sync: ## 🆘 Further Help - **GitHub Issues:** [Report problem](https://github.com/inventory69/simple-notes-sync/issues) -- **Complete docs:** [DOCS.en.md](DOCS.en.md) -- **Server setup details:** [server/README.en.md](server/README.en.md) +- **Complete docs:** [DOCS.md](docs/DOCS.md) +- **Server setup details:** [server/README.md](server/README.md) --- diff --git a/README.de.md b/README.de.md index 72c086b..3ce6431 100644 --- a/README.de.md +++ b/README.de.md @@ -8,7 +8,7 @@
-[![Android](https://img.shields.io/badge/Android-8.0%2B-3DDC84?style=for-the-badge&logo=android&logoColor=white)](https://www.android.com/) +[![Android](https://img.shields.io/badge/Android-7.0%2B-3DDC84?style=for-the-badge&logo=android&logoColor=white)](https://www.android.com/) [![Kotlin](https://img.shields.io/badge/Kotlin-7F52FF?style=for-the-badge&logo=kotlin&logoColor=white)](https://kotlinlang.org/) [![Jetpack Compose](https://img.shields.io/badge/Jetpack%20Compose-4285F4?style=for-the-badge&logo=jetpackcompose&logoColor=white)](https://developer.android.com/compose/) [![Material 3](https://img.shields.io/badge/Material_3-6750A4?style=for-the-badge&logo=material-design&logoColor=white)](https://m3.material.io/) @@ -66,12 +66,14 @@ alt="Get it on F-Droid" align="center" height="80" /> - 📝 **Offline-first** – Funktioniert ohne Internet - 📊 **Flexible Ansichten** – Listen- und Grid-Layout - ✅ **Checklisten** – Tap-to-Check, Drag & Drop -- 🌍 **Mehrsprachig** – Deutsch/Englisch mit Sprachauswahl - 🔄 **Konfigurierbare Sync-Trigger** – onSave, onResume, WiFi, periodisch (15/30/60 Min), Boot +- 📌 **Widgets** – Home-Screen Quick-Note und Notizlisten-Widget +- 🔀 **Smartes Sortieren** – Nach Titel, Änderungsdatum, Erstelldatum, Farbe +- ⚡ **Paralleler Sync** – Lädt bis zu 5 Notizen gleichzeitig herunter +- 🌍 **Mehrsprachig** – Deutsch/Englisch mit Sprachauswahl - 🔒 **Self-hosted** – Deine Daten bleiben bei dir (WebDAV) - 💾 **Lokales Backup** – Export/Import als JSON-Datei (optional verschlüsselt) - 🖥️ **Desktop-Integration** – Markdown-Export für Obsidian, VS Code, Typora -- 🔋 **Akkuschonend** – ~0.2% mit Defaults, bis zu ~1.0% mit Periodic Sync - 🎨 **Material Design 3** – Dynamischer Dark/Light Mode & Farben ➡️ **Vollständige Feature-Liste:** [docs/FEATURES.de.md](docs/FEATURES.de.md) @@ -138,6 +140,6 @@ MIT License – siehe [LICENSE](LICENSE)


-**v1.7.0** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3 +**v1.8.1** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3
diff --git a/README.md b/README.md index 58ac206..9d3efda 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@
-[![Android](https://img.shields.io/badge/Android-8.0%2B-3DDC84?style=for-the-badge&logo=android&logoColor=white)](https://www.android.com/) +[![Android](https://img.shields.io/badge/Android-7.0%2B-3DDC84?style=for-the-badge&logo=android&logoColor=white)](https://www.android.com/) [![Kotlin](https://img.shields.io/badge/Kotlin-7F52FF?style=for-the-badge&logo=kotlin&logoColor=white)](https://kotlinlang.org/) [![Jetpack Compose](https://img.shields.io/badge/Jetpack%20Compose-4285F4?style=for-the-badge&logo=jetpackcompose&logoColor=white)](https://developer.android.com/compose/) [![Material 3](https://img.shields.io/badge/Material_3-6750A4?style=for-the-badge&logo=material-design&logoColor=white)](https://m3.material.io/) @@ -66,12 +66,14 @@ alt="Get it on F-Droid" align="center" height="80" /> - 📝 **Offline-first** - Works without internet - 📊 **Flexible views** - Switch between list and grid layout - ✅ **Checklists** - Tap-to-check, drag & drop -- 🌍 **Multilingual** - English/German with language selector - 🔄 **Configurable sync triggers** - onSave, onResume, WiFi-connect, periodic (15/30/60 min), boot +- 📌 **Widgets** - Home screen quick-note and note list widgets +- 🔀 **Smart sorting** - By title, date modified, date created, color +- ⚡ **Parallel sync** - Downloads up to 5 notes simultaneously +- 🌍 **Multilingual** - English/German with language selector - 🔒 **Self-hosted** - Your data stays with you (WebDAV) - 💾 **Local backup** - Export/Import as JSON file (encryption available) - 🖥️ **Desktop integration** - Markdown export for Obsidian, VS Code, Typora -- 🔋 **Battery-friendly** - ~0.2% with defaults, up to ~1.0% with periodic sync - 🎨 **Material Design 3** - Dynamic dark/light mode & colors based on system settings ➡️ **Complete feature list:** [FEATURES.md](docs/FEATURES.md) @@ -148,6 +150,6 @@ MIT License - see [LICENSE](LICENSE)


-**v1.7.0** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3 +**v1.8.1** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3
diff --git a/docs/BACKUP.de.md b/docs/BACKUP.de.md index b29062a..5ca5520 100644 --- a/docs/BACKUP.de.md +++ b/docs/BACKUP.de.md @@ -276,8 +276,9 @@ Schritt-für-Schritt: ### Daten-Schutz - ✅ **Lokal gespeichert** - Kein Cloud-Upload ohne deine Aktion -- ✅ **Keine Verschlüsselung** - Klartextformat für Lesbarkeit -- ⚠️ **Sensible Daten?** - Backup-Datei selbst verschlüsseln (z.B. 7-Zip mit Passwort) +- ✅ **Optionale Verschlüsselung** _(v1.7.0+)_ - Backup-Dateien mit Passwort schützen +- ✅ **Menschenlesbar** - Klartextformat (JSON) wenn unverschlüsselt +- ⚠️ **Sensible Daten?** - Verschlüsselung aktivieren oder externe Tools nutzen (z.B. 7-Zip) ### Empfehlungen - 🔐 Backup-Dateien in verschlüsseltem Container speichern @@ -321,4 +322,4 @@ Schritt-für-Schritt: - [FEATURES.md](FEATURES.md) - Vollständige Feature-Liste - [DESKTOP.md](DESKTOP.md) - Desktop-Integration mit Markdown -**Letzte Aktualisierung:** v1.2.1 (2026-01-05) +**Letzte Aktualisierung:** v1.8.1 (2026-02-11) diff --git a/docs/BACKUP.md b/docs/BACKUP.md index 13123c8..3210190 100644 --- a/docs/BACKUP.md +++ b/docs/BACKUP.md @@ -276,8 +276,9 @@ Step-by-step: ### Data Protection - ✅ **Locally stored** - No cloud upload without your action -- ✅ **No encryption** - Plain text format for readability -- ⚠️ **Sensitive data?** - Encrypt backup file yourself (e.g., 7-Zip with password) +- ✅ **Optional encryption** _(v1.7.0+)_ - Password-protect backup files +- ✅ **Human-readable** - Plain JSON format when unencrypted +- ⚠️ **Sensitive data?** - Enable encryption or use external tools (e.g., 7-Zip) ### Recommendations - 🔐 Store backup files in encrypted container @@ -317,8 +318,8 @@ Step-by-step: --- **📚 See also:** -- [QUICKSTART.en.md](../QUICKSTART.en.md) - App installation and setup -- [FEATURES.en.md](FEATURES.en.md) - Complete feature list -- [DESKTOP.en.md](DESKTOP.en.md) - Desktop integration with Markdown +- [QUICKSTART.md](../QUICKSTART.md) - App installation and setup +- [FEATURES.md](FEATURES.md) - Complete feature list +- [DESKTOP.md](DESKTOP.md) - Desktop integration with Markdown -**Last update:** v1.2.1 (2026-01-05) +**Last update:** v1.8.1 (2026-02-11) diff --git a/docs/DEBUG_APK.md b/docs/DEBUG_APK.md index ec3d84a..d1eea60 100644 --- a/docs/DEBUG_APK.md +++ b/docs/DEBUG_APK.md @@ -48,8 +48,6 @@ git push origin fix/my-bug ## 📱 Installation auf Gerät -## 📱 Installation auf Gerät - ### Mit ADB (Empfohlen - sauberes Testing) ```bash # Gerät verbinden diff --git a/docs/DOCS.de.md b/docs/DOCS.de.md index 5197e07..e9374d0 100644 --- a/docs/DOCS.de.md +++ b/docs/DOCS.de.md @@ -541,17 +541,7 @@ androidx.localbroadcastmanager:localbroadcastmanager:1.1.0 ## 🔮 Roadmap -### v1.1 -- [ ] Suche & Filter -- [ ] Dark Mode -- [ ] Tags/Kategorien -- [ ] Markdown Preview - -### v2.0 -- [ ] Desktop Client (Flutter) -- [ ] End-to-End Verschlüsselung -- [ ] Shared Notes (Collaboration) -- [ ] Attachment Support +Siehe [UPCOMING.md](UPCOMING.md) für die vollständige Roadmap und geplante Features. --- @@ -564,4 +554,4 @@ androidx.localbroadcastmanager:localbroadcastmanager:1.1.0 --- -**Letzte Aktualisierung:** 25. Dezember 2025 +**Letzte Aktualisierung:** Februar 2026 diff --git a/docs/DOCS.md b/docs/DOCS.md index bd2a2bc..57148e7 100644 --- a/docs/DOCS.md +++ b/docs/DOCS.md @@ -541,17 +541,7 @@ androidx.localbroadcastmanager:localbroadcastmanager:1.1.0 ## 🔮 Roadmap -### v1.1 -- [ ] Search & Filter -- [ ] Dark Mode -- [ ] Tags/Categories -- [ ] Markdown Preview - -### v2.0 -- [ ] Desktop Client (Flutter) -- [ ] End-to-End Encryption -- [ ] Shared Notes (Collaboration) -- [ ] Attachment Support +See [UPCOMING.md](UPCOMING.md) for the full roadmap and planned features. --- @@ -564,4 +554,4 @@ androidx.localbroadcastmanager:localbroadcastmanager:1.1.0 --- -**Last updated:** December 25, 2025 +**Last updated:** February 2026 diff --git a/docs/FEATURES.de.md b/docs/FEATURES.de.md index 77a17d7..f4a3c84 100644 --- a/docs/FEATURES.de.md +++ b/docs/FEATURES.de.md @@ -37,6 +37,50 @@ --- +## 📊 Ansichten & Layout _(NEU in v1.7.0+)_ + +### Darstellungsmodi +- ✅ **Listenansicht** - Klassisches Listen-Layout +- ✅ **Rasteransicht** _(NEU in v1.7.0)_ - Pinterest-artiges Staggered Grid mit dynamischen Vorschauzeilen +- ✅ **Layout-Umschalter** - Zwischen Listen- und Grid-Ansicht wechseln +- ✅ **Adaptive Spalten** - 2-3 Spalten basierend auf Bildschirmgröße +- ✅ **Grid als Standard** _(v1.8.0)_ - Neue Installationen starten im Grid-Modus + +### Notiz-Sortierung _(NEU in v1.8.0)_ +- ✅ **Nach Änderungsdatum** - Neueste oder älteste zuerst +- ✅ **Nach Erstelldatum** - Nach Erstellungszeitpunkt +- ✅ **Nach Titel** - A-Z oder Z-A +- ✅ **Nach Typ** - Textnotizen vs. Checklisten +- ✅ **Persistente Einstellungen** - Sortier-Option bleibt nach App-Neustart +- ✅ **Sortier-Dialog** - Richtungswahl im Hauptbildschirm + +### Checklisten-Sortierung _(NEU in v1.8.0)_ +- ✅ **Manuell** - Eigene Drag & Drop Reihenfolge +- ✅ **Alphabetisch** - A-Z Sortierung +- ✅ **Offene zuerst** - Unerledigte Items oben +- ✅ **Erledigte zuletzt** - Abgehakte Items unten +- ✅ **Visueller Trenner** - Zwischen offenen/erledigten Gruppen mit Anzahl +- ✅ **Auto-Sortierung** - Neu sortieren beim Abhaken/Öffnen +- ✅ **Drag über Grenzen** - Items wechseln Status beim Überqueren des Trenners + +--- + +## 📌 Homescreen-Widgets _(NEU in v1.8.0)_ + +### Widget-Features +- ✅ **Textnotiz-Widget** - Beliebige Notiz auf dem Homescreen anzeigen +- ✅ **Checklisten-Widget** - Interaktive Checkboxen mit Sync zum Server +- ✅ **5 Größenklassen** - SMALL, NARROW_MED, NARROW_TALL, WIDE_MED, WIDE_TALL +- ✅ **Material You Farben** - Dynamische Farben passend zum System-Theme +- ✅ **Einstellbare Transparenz** - Hintergrund-Opazität (0-100%) +- ✅ **Sperr-Umschalter** - Versehentliche Bearbeitungen verhindern +- ✅ **Auto-Aktualisierung** - Updates nach Sync-Abschluss +- ✅ **Konfigurations-Activity** - Notiz-Auswahl und Einstellungen +- ✅ **Checklisten-Sortierung** _(v1.8.1)_ - Widgets übernehmen Sortier-Option +- ✅ **Visuelle Trenner** _(v1.8.1)_ - Zwischen offenen/erledigten Items + +--- + ## 🌍 Mehrsprachigkeit _(NEU in v1.5.0)_ ### Unterstützte Sprachen @@ -129,9 +173,12 @@ ### Sync-Mechanismus - ✅ **Upload** - Lokale Änderungen zum Server - ✅ **Download** - Server-Änderungen in App +- ✅ **Parallele Downloads** _(NEU in v1.8.0)_ - Bis zu 5 gleichzeitige Downloads - ✅ **Konflikt-Erkennung** - Bei gleichzeitigen Änderungen - ✅ **Konfliktfreies Merging** - Last-Write-Wins via Timestamp -- ✅ **Sync-Status Tracking** - LOCAL_ONLY, PENDING, SYNCED, CONFLICT +- ✅ **Server-Löschungs-Erkennung** _(NEU in v1.8.0)_ - Erkennt auf anderen Geräten gelöschte Notizen +- ✅ **Sync-Status Tracking** - LOCAL_ONLY, PENDING, SYNCED, CONFLICT, DELETED_ON_SERVER +- ✅ **Live Fortschritts-UI** _(NEU in v1.8.0)_ - Phasen-Anzeige mit Upload/Download-Zählern - ✅ **Fehlerbehandlung** - Retry bei Netzwerkproblemen - ✅ **Offline-First** - App funktioniert ohne Server @@ -140,6 +187,9 @@ - ✅ **HTTP/HTTPS** - HTTP nur lokal, HTTPS für extern - ✅ **Username/Password** - Basic Authentication - ✅ **Connection Test** - In Einstellungen testen +- ✅ **WiFi-Only Sync** _(NEU in v1.7.0)_ - Option nur über WiFi zu synchronisieren +- ✅ **VPN-Unterstützung** _(NEU in v1.7.0)_ - Sync funktioniert korrekt über VPN-Tunnels +- ✅ **Self-Signed SSL** _(NEU in v1.7.0)_ - Unterstützung für selbstsignierte Zertifikate - ✅ **Server-URL Normalisierung** - Automatisches `/notes/` und `/notes-md/` _(NEU in v1.2.1)_ - ✅ **Flexible URL-Eingabe** - Beide Varianten funktionieren: `http://server/` und `http://server/notes/` @@ -196,11 +246,12 @@ ## 🛠️ Technische Details ### Plattform -- ✅ **Android 8.0+** (API 26+) +- ✅ **Android 7.0+** (API 24+) - ✅ **Target SDK 36** (Android 15) - ✅ **Kotlin** - Moderne Programmiersprache +- ✅ **Jetpack Compose** - Deklaratives UI-Framework - ✅ **Material Design 3** - Neueste Design-Richtlinien -- ✅ **ViewBinding** - Typ-sichere View-Referenzen +- ✅ **Jetpack Glance** _(v1.8.0)_ - Widget-Framework ### Architektur - ✅ **MVVM-Light** - Einfache Architektur @@ -218,6 +269,7 @@ - ✅ **Gson** - JSON Serialization - ✅ **WorkManager** - Background Tasks - ✅ **OkHttp** - HTTP Client (via Sardine) +- ✅ **Glance** _(v1.8.0)_ - Widget-Framework ### Build-Varianten - ✅ **Standard** - Universal APK (100% FOSS, keine Google-Dependencies) @@ -247,22 +299,12 @@ ## 🔮 Zukünftige Features -Geplant für kommende Versionen: +Geplant für kommende Versionen – siehe [UPCOMING.md](UPCOMING.md) für die vollständige Roadmap. -### v1.4.0 - Checklisten -- ⏳ **Checklisten-Notizen** - Neuer Notiz-Typ mit Checkboxen -- ⏳ **Erledigte Items** - Durchstreichen/Abhaken -- ⏳ **Drag & Drop** - Items neu anordnen - -### v1.5.0 - Internationalisierung -- ⏳ **Mehrsprachigkeit** - Deutsch + Englisch UI -- ⏳ **Sprachauswahl** - In Einstellungen wählbar -- ⏳ **Vollständige Übersetzung** - Alle Strings in beiden Sprachen - -### v1.6.0 - Modern APIs -- ⏳ **LocalBroadcastManager ersetzen** - SharedFlow stattdessen -- ⏳ **PackageInfo Flags** - PackageInfoFlags.of() verwenden -- ⏳ **Komplexitäts-Refactoring** - Lange Funktionen aufteilen +### v2.0.0 - Legacy Cleanup +- ⏳ **Veraltete Activities entfernen** - Durch Compose-Varianten ersetzen +- ⏳ **LocalBroadcastManager → SharedFlow** - Moderne Event-Architektur +- ⏳ **WebDavSyncService aufteilen** - SyncOrchestrator, NoteUploader, NoteDownloader --- @@ -305,4 +347,4 @@ A: Ja! Lade die APK direkt von GitHub oder nutze F-Droid. --- -**Letzte Aktualisierung:** v1.3.2 (2026-01-10) +**Letzte Aktualisierung:** v1.8.1 (2026-02-11) diff --git a/docs/FEATURES.md b/docs/FEATURES.md index 7ed87ae..521d3cb 100644 --- a/docs/FEATURES.md +++ b/docs/FEATURES.md @@ -37,6 +37,50 @@ --- +## 📊 Views & Layout _(NEW in v1.7.0+)_ + +### Display Modes +- ✅ **List View** - Classic list layout +- ✅ **Grid View** _(NEW in v1.7.0)_ - Pinterest-style staggered grid with dynamic preview lines +- ✅ **Layout toggle** - Switch between list and grid in settings +- ✅ **Adaptive columns** - 2-3 columns based on screen size +- ✅ **Grid as default** _(v1.8.0)_ - New installations default to grid view + +### Note Sorting _(NEW in v1.8.0)_ +- ✅ **Sort by Updated** - Newest or oldest first +- ✅ **Sort by Created** - By creation date +- ✅ **Sort by Title** - A-Z or Z-A +- ✅ **Sort by Type** - Text notes vs checklists +- ✅ **Persistent preferences** - Sort option saved across app restarts +- ✅ **Sort dialog** - Direction toggle in main screen + +### Checklist Sorting _(NEW in v1.8.0)_ +- ✅ **Manual** - Custom drag & drop order +- ✅ **Alphabetical** - A-Z sorting +- ✅ **Unchecked First** - Unchecked items on top +- ✅ **Checked Last** - Checked items at bottom +- ✅ **Visual separator** - Between unchecked/checked groups with count +- ✅ **Auto-sort on toggle** - Re-sorts when checking/unchecking items +- ✅ **Drag across boundaries** - Items auto-toggle state when crossing separator + +--- + +## 📌 Homescreen Widgets _(NEW in v1.8.0)_ + +### Widget Features +- ✅ **Text note widget** - Display any note on homescreen +- ✅ **Checklist widget** - Interactive checkboxes that sync to server +- ✅ **5 size classes** - SMALL, NARROW_MED, NARROW_TALL, WIDE_MED, WIDE_TALL +- ✅ **Material You colors** - Dynamic colors matching system theme +- ✅ **Configurable opacity** - Background transparency (0-100%) +- ✅ **Lock toggle** - Prevent accidental edits +- ✅ **Auto-refresh** - Updates after sync completion +- ✅ **Configuration activity** - Note selection and settings +- ✅ **Checklist sorting** _(v1.8.1)_ - Widgets respect saved sort option +- ✅ **Visual separators** _(v1.8.1)_ - Between unchecked/checked items + +--- + ## 🌍 Multilingual Support _(NEW in v1.5.0)_ ### Supported Languages @@ -129,9 +173,12 @@ ### Sync Mechanism - ✅ **Upload** - Local changes to server - ✅ **Download** - Server changes to app +- ✅ **Parallel downloads** _(NEW in v1.8.0)_ - Up to 5 simultaneous downloads - ✅ **Conflict detection** - On simultaneous changes - ✅ **Conflict-free merging** - Last-Write-Wins via timestamp -- ✅ **Sync status tracking** - LOCAL_ONLY, PENDING, SYNCED, CONFLICT +- ✅ **Server deletion detection** _(NEW in v1.8.0)_ - Detects notes deleted on other devices +- ✅ **Sync status tracking** - LOCAL_ONLY, PENDING, SYNCED, CONFLICT, DELETED_ON_SERVER +- ✅ **Live progress UI** _(NEW in v1.8.0)_ - Phase indicators with upload/download counters - ✅ **Error handling** - Retry on network issues - ✅ **Offline-first** - App works without server @@ -140,6 +187,9 @@ - ✅ **HTTP/HTTPS** - HTTP only local, HTTPS for external - ✅ **Username/password** - Basic authentication - ✅ **Connection test** - Test in settings +- ✅ **WiFi-only sync** _(NEW in v1.7.0)_ - Option to sync only on WiFi +- ✅ **VPN support** _(NEW in v1.7.0)_ - Sync works correctly through VPN tunnels +- ✅ **Self-signed SSL** _(NEW in v1.7.0)_ - Support for self-signed certificates - ✅ **Server URL normalization** - Automatic `/notes/` and `/notes-md/` _(NEW in v1.2.1)_ - ✅ **Flexible URL input** - Both variants work: `http://server/` and `http://server/notes/` @@ -196,11 +246,12 @@ ## 🛠️ Technical Details ### Platform -- ✅ **Android 8.0+** (API 26+) +- ✅ **Android 7.0+** (API 24+) - ✅ **Target SDK 36** (Android 15) - ✅ **Kotlin** - Modern programming language +- ✅ **Jetpack Compose** - Declarative UI framework - ✅ **Material Design 3** - Latest design guidelines -- ✅ **ViewBinding** - Type-safe view references +- ✅ **Jetpack Glance** _(v1.8.0)_ - Widget framework ### Architecture - ✅ **MVVM-Light** - Simple architecture @@ -218,6 +269,7 @@ - ✅ **Gson** - JSON serialization - ✅ **WorkManager** - Background tasks - ✅ **OkHttp** - HTTP client (via Sardine) +- ✅ **Glance** _(v1.8.0)_ - Widget framework ### Build Variants - ✅ **Standard** - Universal APK (100% FOSS, no Google dependencies) @@ -247,22 +299,12 @@ ## 🔮 Future Features -Planned for upcoming versions: +Planned for upcoming versions – see [UPCOMING.md](UPCOMING.md) for the full roadmap. -### v1.4.0 - Checklists -- ⏳ **Checklist notes** - New note type with checkboxes -- ⏳ **Completed items** - Strike-through/check off -- ⏳ **Drag & drop** - Reorder items - -### v1.5.0 - Internationalization -- ⏳ **Multi-language** - German + English UI -- ⏳ **Language selection** - Selectable in settings -- ⏳ **Full translation** - All strings in both languages - -### v1.6.0 - Modern APIs -- ⏳ **Replace LocalBroadcastManager** - Use SharedFlow instead -- ⏳ **PackageInfo Flags** - Use PackageInfoFlags.of() -- ⏳ **Complexity refactoring** - Split long functions +### v2.0.0 - Legacy Cleanup +- ⏳ **Remove deprecated Activities** - Replace with Compose equivalents +- ⏳ **LocalBroadcastManager → SharedFlow** - Modern event architecture +- ⏳ **WebDavSyncService split** - SyncOrchestrator, NoteUploader, NoteDownloader --- @@ -305,4 +347,4 @@ A: Yes! Download the APK directly from GitHub or use F-Droid. --- -**Last update:** v1.3.2 (2026-01-10) +**Last update:** v1.8.1 (2026-02-11) diff --git a/docs/SELF_SIGNED_SSL.de.md b/docs/SELF_SIGNED_SSL.de.md new file mode 100644 index 0000000..5f2c334 --- /dev/null +++ b/docs/SELF_SIGNED_SSL.de.md @@ -0,0 +1,146 @@ +# Selbstsignierte SSL-Zertifikate + +**Seit:** v1.7.0 +**Status:** ✅ Unterstützt + +**🌍 Sprachen:** **Deutsch** · [English](SELF_SIGNED_SSL.md) + +--- + +## Übersicht + +Simple Notes Sync unterstützt die Verbindung zu WebDAV-Servern mit selbstsignierten SSL-Zertifikaten, z.B.: +- ownCloud/Nextcloud mit selbstsignierten Zertifikaten +- Synology NAS mit Standard-Zertifikaten +- Raspberry Pi oder Home-Server +- Interne Firmen-Server mit privaten CAs + +## Anleitung + +### Schritt 1: CA-Zertifikat des Servers exportieren + +**Auf deinem Server:** + +1. Finde deine Zertifikatsdatei (meist `.crt`, `.pem` oder `.der` Format) +2. Falls du das Zertifikat selbst erstellt hast, hast du es bereits +3. Für Synology NAS: Systemsteuerung → Sicherheit → Zertifikat → Exportieren +4. Für ownCloud/Nextcloud: Meist unter `/etc/ssl/certs/` auf dem Server + +### Schritt 2: Zertifikat auf Android installieren + +**Auf deinem Android-Gerät:** + +1. **Übertrage** die `.crt` oder `.pem` Datei auf dein Handy (per E-Mail, USB, etc.) + +2. **Öffne Einstellungen** → Sicherheit → Weitere Sicherheitseinstellungen (oder Verschlüsselung & Anmeldedaten) + +3. **Von Speicher installieren** / "Zertifikat installieren" + - Wähle "CA-Zertifikat" + - **Warnung:** Android zeigt eine Sicherheitswarnung. Das ist normal. + - Tippe auf "Trotzdem installieren" + +4. **Navigiere** zu deiner Zertifikatsdatei und wähle sie aus + +5. **Benenne** es erkennbar (z.B. "Mein ownCloud CA") + +6. ✅ **Fertig!** Das Zertifikat wird nun systemweit vertraut + +### Schritt 3: Simple Notes Sync verbinden + +1. Öffne Simple Notes Sync +2. Gehe zu **Einstellungen** → **Server-Einstellungen** +3. Gib deine **`https://` Server-URL** wie gewohnt ein +4. Die App vertraut nun deinem selbstsignierten Zertifikat ✅ + +--- + +## Sicherheitshinweise + +### ⚠️ Wichtig + +- Die Installation eines CA-Zertifikats gewährt Vertrauen für **alle** von dieser CA signierten Zertifikate +- Installiere nur Zertifikate aus vertrauenswürdigen Quellen +- Android warnt dich vor der Installation – lies die Warnung sorgfältig + +### 🔒 Warum das sicher ist + +- Du installierst das Zertifikat **manuell** (bewusste Entscheidung) +- Die App nutzt Androids nativen Trust Store (keine eigene Validierung) +- Du kannst das Zertifikat jederzeit in den Android-Einstellungen entfernen +- F-Droid und Google Play konform (kein "allen vertrauen" Hack) + +--- + +## Fehlerbehebung + +### Zertifikat nicht vertraut + +**Problem:** App zeigt weiterhin SSL-Fehler nach Zertifikatsinstallation + +**Lösungen:** +1. **Installation prüfen:** Einstellungen → Sicherheit → Vertrauenswürdige Anmeldedaten → Tab "Nutzer" +2. **Zertifikatstyp prüfen:** Muss ein CA-Zertifikat sein, kein Server-Zertifikat +3. **App neustarten:** Simple Notes Sync schließen und wieder öffnen +4. **URL prüfen:** Muss `https://` verwenden (nicht `http://`) + +### Selbstsigniert vs. CA-signiert + +| Typ | Installation nötig | Sicherheit | +|-----|-------------------|------------| +| **Selbstsigniert** | ✅ Ja | Manuelles Vertrauen | +| **Let's Encrypt** | ❌ Nein | Automatisch | +| **Private CA** | ✅ Ja (CA-Root) | Automatisch für alle CA-signierten Zertifikate | + +--- + +## Alternative: Let's Encrypt (Empfohlen) + +Wenn dein Server öffentlich erreichbar ist, erwäge **Let's Encrypt** für kostenlose, automatisch erneuerte SSL-Zertifikate: + +- Keine manuelle Zertifikatsinstallation nötig +- Von allen Geräten automatisch vertraut +- Einfacher für Endbenutzer + +--- + +## Technische Details + +### Implementierung + +- Nutzt Androids **Network Security Config** +- Vertraut sowohl System- als auch Benutzer-CA-Zertifikaten +- Kein eigener TrustManager oder HostnameVerifier +- F-Droid und Play Store konform + +### Konfiguration + +Datei: `android/app/src/main/res/xml/network_security_config.xml` + +```xml + + + + + + +``` + +--- + +## FAQ + +**F: Muss ich das Zertifikat nach App-Updates neu installieren?** +A: Nein, Zertifikate werden systemweit gespeichert, nicht pro App. + +**F: Kann ich dasselbe Zertifikat für mehrere Apps verwenden?** +A: Ja, einmal installiert funktioniert es für alle Apps die Benutzerzertifikaten vertrauen. + +**F: Wie entferne ich ein Zertifikat?** +A: Einstellungen → Sicherheit → Vertrauenswürdige Anmeldedaten → Tab "Nutzer" → Zertifikat antippen → Entfernen + +**F: Funktioniert das auf Android 14+?** +A: Ja, getestet auf Android 7 bis 15 (API 24-35). + +--- + +**Hilfe nötig?** Erstelle ein Issue auf [GitHub](https://github.com/inventory69/simple-notes-sync/issues) diff --git a/docs/UPCOMING.de.md b/docs/UPCOMING.de.md index 1805bf4..1eb7d77 100644 --- a/docs/UPCOMING.de.md +++ b/docs/UPCOMING.de.md @@ -60,28 +60,91 @@ --- -## v1.7.0 - Staggered Grid Layout +## v1.7.0 - Grid View, WiFi-Only & VPN ✅ -> **Status:** Geplant 📝 +> **Status:** Released 🎉 (Januar 2026) -### 🎨 Adaptives Layout +### 🎨 Grid Layout -- **Staggered Grid** - Pinterest-artiges Layout mit `LazyVerticalStaggeredGrid` -- **Intelligente Größen** - Kleine Notizen (kurzer Text, wenige Checklist-Items) kompakt dargestellt -- **Layout-Umschalter** - Zwischen Listen- und Grid-Ansicht in Einstellungen wechseln -- **Adaptive Spalten** - 2-3 Spalten basierend auf Bildschirmgröße -- **120 FPS optimiert** - Lazy Loading für flüssiges Scrollen bei vielen Notizen +- ✅ **Pinterest-artiges Staggered Grid** - Lückenfreies Layout mit dynamischen Vorschauzeilen +- ✅ **Layout-Umschalter** - Zwischen Listen- und Grid-Ansicht wechseln +- ✅ **Adaptive Spalten** - 2-3 Spalten basierend auf Bildschirmgröße -### 🔧 Server-Ordner Prüfung +### 📡 Sync-Verbesserungen -- **WebDAV Folder Check** - Prüft ob der Ordner auf dem Server existiert und beschreibbar ist -- **Bessere Fehlermeldungen** - Hilfreiche Hinweise bei Server-Problemen -- **Connection-Test Verbesserung** - Prüft Read/Write Permissions +- ✅ **WiFi-Only Sync Toggle** - Nur über WiFi synchronisieren +- ✅ **VPN-Unterstützung** - Sync funktioniert korrekt über VPN-Tunnels +- ✅ **Self-Signed SSL** - Dokumentation und Unterstützung für selbstsignierte Zertifikate +- ✅ **Server-Wechsel-Erkennung** - Alle Notizen auf PENDING zurückgesetzt bei URL-Änderung -### 🔧 Technische Verbesserungen +--- -- **Code-Refactoring** - LargeClass Komponenten aufteilen (WebDavSyncService, SettingsActivity) -- **Verbesserte Progress-Dialoge** - Material Design 3 konform +## v1.7.1 - Android 9 Fix & VPN ✅ + +> **Status:** Released 🎉 (Februar 2026) + +- ✅ **Android 9 Crash Fix** - `getForegroundInfo()` für WorkManager auf API 28 implementiert +- ✅ **VPN-Kompatibilität** - WiFi Socket-Binding erkennt Wireguard VPN-Interfaces +- ✅ **SafeSardineWrapper** - Saubere HTTP-Verbindungs-Bereinigung + +--- + +## v1.7.2 - Timestamp & Löschungs-Fixes ✅ + +> **Status:** Released 🎉 (Februar 2026) + +- ✅ **Server-mtime als Wahrheitsquelle** - Behebt Timestamp-Probleme mit externen Editoren +- ✅ **Deletion Tracker Mutex** - Thread-sichere Batch-Löschungen +- ✅ **ISO8601 Timezone-Parsing** - Multi-Format-Unterstützung +- ✅ **E-Tag Batch-Caching** - Performance-Verbesserung +- ✅ **Memory Leak Prävention** - SafeSardineWrapper mit Closeable + +--- + +## v1.8.0 - Widgets, Sortierung & Erweiterter Sync ✅ + +> **Status:** Released 🎉 (Februar 2026) + +### 📌 Homescreen-Widgets + +- ✅ **Volles Jetpack Glance Framework** - 5 responsive Größenklassen +- ✅ **Interaktive Checklisten** - Checkboxen die zum Server synchronisieren +- ✅ **Material You Farben** - Dynamische Farben mit einstellbarer Opazität +- ✅ **Sperr-Umschalter** - Versehentliche Bearbeitungen verhindern +- ✅ **Konfigurations-Activity** - Notiz-Auswahl und Einstellungen + +### 📊 Sortierung + +- ✅ **Notiz-Sortierung** - Nach Titel, Änderungsdatum, Erstelldatum, Typ +- ✅ **Checklisten-Sortierung** - Manuell, alphabetisch, offene zuerst, erledigte zuletzt +- ✅ **Visuelle Trenner** - Zwischen offenen/erledigten Gruppen +- ✅ **Drag über Grenzen** - Auto-Toggle beim Überqueren des Trenners + +### 🔄 Sync-Verbesserungen + +- ✅ **Parallele Downloads** - Bis zu 5 gleichzeitig (konfigurierbar) +- ✅ **Server-Löschungs-Erkennung** - Erkennt auf anderen Clients gelöschte Notizen +- ✅ **Live Sync-Fortschritt** - Phasen-Anzeige mit Zählern +- ✅ **Sync-Status Legende** - Hilfe-Dialog für alle Sync-Icons + +### ✨ UX + +- ✅ **Post-Update Changelog** - Zeigt lokalisierten Changelog nach Update +- ✅ **Grid als Standard** - Neue Installationen starten im Grid-Modus +- ✅ **Toast → Banner Migration** - Einheitliches Benachrichtigungssystem + +--- + +## v1.8.1 - Bugfix & Polish ✅ + +> **Status:** Released 🎉 (Februar 2026) + +- ✅ **Checklisten-Sortierung Persistenz** - Sortier-Option korrekt wiederhergestellt +- ✅ **Widget Scroll Fix** - Scroll funktioniert auf Standard 3×2 Widget-Größe +- ✅ **Widget Checklisten-Sortierung** - Widgets übernehmen gespeicherte Sortier-Option +- ✅ **Drag Cross-Boundary** - Drag & Drop über Checked/Unchecked-Trenner +- ✅ **Sync Rate-Limiting** - Globaler 30s Cooldown zwischen Auto-Syncs +- ✅ **Detekt: 0 Issues** - Alle 12 Findings behoben --- @@ -110,7 +173,6 @@ ### 🎨 UI Features -- **Widget** - Schnellzugriff vom Homescreen - **Kategorien/Tags** - Notizen organisieren - **Suche** - Volltextsuche in Notizen diff --git a/docs/UPCOMING.md b/docs/UPCOMING.md index e759986..24ff873 100644 --- a/docs/UPCOMING.md +++ b/docs/UPCOMING.md @@ -60,28 +60,91 @@ --- -## v1.7.0 - Staggered Grid Layout +## v1.7.0 - Grid View, WiFi-Only & VPN ✅ -> **Status:** Planned 📝 +> **Status:** Released 🎉 (January 2026) -### 🎨 Adaptive Layout +### 🎨 Grid Layout -- **Staggered Grid** - Pinterest-style layout using `LazyVerticalStaggeredGrid` -- **Smart sizing** - Small notes (short text, few checklist items) displayed compactly -- **Layout toggle** - Switch between List and Grid view in settings -- **Adaptive columns** - 2-3 columns based on screen size -- **120 FPS optimized** - Lazy loading for smooth scrolling with many notes +- ✅ **Pinterest-style staggered grid** - Gapless layout with dynamic preview lines +- ✅ **Layout toggle** - Switch between list and grid in settings +- ✅ **Adaptive columns** - 2-3 columns based on screen size -### 🔧 Server Folder Check +### 📡 Sync Improvements -- **WebDAV folder check** - Checks if folder exists and is writable on server -- **Better error messages** - Helpful hints for server problems -- **Connection test improvement** - Checks read/write permissions +- ✅ **WiFi-only sync toggle** - Sync only when connected to WiFi +- ✅ **VPN support** - Sync works correctly through VPN tunnels +- ✅ **Self-signed SSL** - Documentation and support for self-signed certificates +- ✅ **Server change detection** - All notes reset to PENDING when server URL changes -### 🔧 Technical Improvements +--- -- **Code refactoring** - Split LargeClass components (WebDavSyncService, SettingsActivity) -- **Improved progress dialogs** - Material Design 3 compliant +## v1.7.1 - Android 9 Fix & VPN ✅ + +> **Status:** Released 🎉 (February 2026) + +- ✅ **Android 9 crash fix** - Implemented `getForegroundInfo()` for WorkManager on API 28 +- ✅ **VPN compatibility** - WiFi socket binding detects Wireguard VPN interfaces +- ✅ **SafeSardineWrapper** - Proper HTTP connection cleanup + +--- + +## v1.7.2 - Timestamp & Deletion Fixes ✅ + +> **Status:** Released 🎉 (February 2026) + +- ✅ **Server mtime as source of truth** - Fixes external editor timestamp issues +- ✅ **Deletion tracker mutex** - Thread-safe batch deletes +- ✅ **ISO8601 timezone parsing** - Multi-format support +- ✅ **E-Tag batch caching** - Performance improvement +- ✅ **Memory leak prevention** - SafeSardineWrapper with Closeable + +--- + +## v1.8.0 - Widgets, Sorting & Advanced Sync ✅ + +> **Status:** Released 🎉 (February 2026) + +### 📌 Homescreen Widgets + +- ✅ **Full Jetpack Glance framework** - 5 responsive size classes +- ✅ **Interactive checklists** - Checkboxes that sync to server +- ✅ **Material You colors** - Dynamic colors with configurable opacity +- ✅ **Lock toggle** - Prevent accidental edits +- ✅ **Configuration activity** - Note selection and settings + +### 📊 Sorting + +- ✅ **Note sorting** - By title, date modified, date created, type +- ✅ **Checklist sorting** - Manual, alphabetical, unchecked first, checked last +- ✅ **Visual separators** - Between unchecked/checked groups +- ✅ **Drag across boundaries** - Auto-toggle state on cross-boundary drag + +### 🔄 Sync Improvements + +- ✅ **Parallel downloads** - Up to 5 simultaneous (configurable) +- ✅ **Server deletion detection** - Detects notes deleted on other clients +- ✅ **Live sync progress** - Phase indicators with counters +- ✅ **Sync status legend** - Help dialog explaining all sync icons + +### ✨ UX + +- ✅ **Post-update changelog** - Shows localized changelog on first launch after update +- ✅ **Grid as default** - New installations default to grid view +- ✅ **Toast → Banner migration** - Unified notification system + +--- + +## v1.8.1 - Bugfix & Polish ✅ + +> **Status:** Released 🎉 (February 2026) + +- ✅ **Checklist sort persistence** - Sort option correctly restored when reopening +- ✅ **Widget scroll fix** - Scroll works on standard 3×2 widget size +- ✅ **Widget checklist sorting** - Widgets apply saved sort option +- ✅ **Drag cross-boundary** - Drag & drop across checked/unchecked separator +- ✅ **Sync rate-limiting** - Global 30s cooldown between auto-syncs +- ✅ **Detekt: 0 issues** - All 12 findings resolved --- @@ -110,7 +173,6 @@ ### 🎨 UI Features -- **Widget** - Quick access from homescreen - **Categories/Tags** - Organize notes - **Search** - Full-text search in notes diff --git a/fastlane/README.md b/fastlane/README.md index 388a08f..67a8834 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -5,34 +5,50 @@ Diese Verzeichnisstruktur enthält alle Metadaten für die F-Droid-Veröffentlic ## 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 +fastlane/metadata/android/ +├── de-DE/ # Deutsche Lokalisierung (primär) +│ ├── 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 ... 21.txt # Changelogs pro versionCode (max 500 Zeichen!) +│ └── images/ +│ └── phoneScreenshots/ # Screenshots (PNG/JPG, 320-3840px breit) +│ ├── 1.png ... 5.png +└── en-US/ # Englische Lokalisierung + ├── title.txt + ├── short_description.txt + ├── full_description.txt + ├── changelogs/ + │ ├── 1.txt ... 21.txt + └── images/ + └── phoneScreenshots/ ``` +## Wichtige Limits + +| Feld | Max. Länge | Hinweis | +|------|-----------|---------| +| `title.txt` | 50 Zeichen | App-Name | +| `short_description.txt` | 80 Zeichen | Kurzbeschreibung | +| `full_description.txt` | 4000 Zeichen | Vollständige Beschreibung | +| `changelogs/*.txt` | **500 Bytes** | Pro versionCode, **Bytes nicht Zeichen!** | + +> **Achtung:** Changelogs werden in **Bytes** gemessen! UTF-8 Umlaute (ä, ö, ü) zählen als 2 Bytes. + ## Screenshots erstellen -Verwende einen Android Emulator oder physisches Gerät mit: +Verwende ein physisches Gerät oder Emulator mit: - Material You Theme aktiviert -- Deutsche Sprache +- Deutsche/Englische Sprache je nach Locale - Screenshots in hoher Auflösung (1080x2400 empfohlen) -### Screenshot-Reihenfolge: -1. **Notizliste** - Mit mehreren Beispiel-Notizen, Sync-Status sichtbar -2. **Editor** - Zeige eine bearbeitete Notiz mit Titel und Inhalt -3. **Settings** - Server-Konfiguration mit erfolgreichem Server-Status -4. **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. +Siehe `android/app/build.gradle.kts` für Details. + +## Aktuelle Version + +- **versionName:** 1.8.1 +- **versionCode:** 21 diff --git a/fastlane/metadata/android/de-DE/changelogs/10.txt b/fastlane/metadata/android/de-DE/changelogs/10.txt index f0003c2..645d129 100644 --- a/fastlane/metadata/android/de-DE/changelogs/10.txt +++ b/fastlane/metadata/android/de-DE/changelogs/10.txt @@ -1,5 +1,5 @@ -Unter der Haube haben wir ordentlich aufgeraumt: +Unter der Haube haben wir ordentlich aufgeräumt: - Verbesserte Sync-Performance durch optimierten Code - Stabilere Fehlerbehandlung bei Verbindungsproblemen - Speichereffizientere Datenverarbeitung -- Datenschutz-Hinweis fur Datei-Logging hinzugefugt +- Datenschutz-Hinweis für Datei-Logging hinzugefügt diff --git a/fastlane/metadata/android/de-DE/changelogs/7.txt b/fastlane/metadata/android/de-DE/changelogs/7.txt index 5f2c138..e60cfee 100644 --- a/fastlane/metadata/android/de-DE/changelogs/7.txt +++ b/fastlane/metadata/android/de-DE/changelogs/7.txt @@ -1,12 +1,12 @@ v1.2.2 - Rückwärtskompatibilität für v1.2.0 User Kritische Fehlerbehebung -• Server-Wiederherstellung findet jetzt ALLE Notizen (Root + /notes/) -• User die von v1.2.0 upgraden verlieren keine Daten mehr -• Alte Notizen aus Root-Ordner werden beim Restore gefunden +• Server-Restore findet jetzt ALLE Notizen (Root + /notes/) +• Upgrade von v1.2.0 ohne Datenverlust +• Alte Notizen aus Root-Ordner werden gefunden Technische Details • Dual-Mode Download nur bei Server-Restore aktiv -• Normale Syncs bleiben schnell (scannen nur /notes/) +• Normale Syncs bleiben schnell (nur /notes/) • Automatische Deduplication verhindert Duplikate -• Sanfte Migration: Neue Uploads gehen in /notes/, alte bleiben lesbar +• Sanfte Migration: Uploads → /notes/, alte bleiben lesbar diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt index 3a6dc8d..c333751 100644 --- a/fastlane/metadata/android/de-DE/full_description.txt +++ b/fastlane/metadata/android/de-DE/full_description.txt @@ -1,29 +1,31 @@ Simple Notes Sync ist eine minimalistische Notizen-App mit WebDAV-Synchronisation und modernen Features. Hauptfunktionen: -• Text-Notizen und Checklisten (Tap-to-Check, Drag & Drop) -• NEU: Raster-Ansicht (Grid View) für Notizen +• Text-Notizen und Checklisten (Tap-to-Check, Drag & Drop, Sortierung) +• Raster- und Listen-Ansicht mit Notizfarben +• Homescreen-Widgets (Quick-Note, Checkliste mit interaktiven Checkboxen) • Multi-Device Sync (Handy, Tablet, Desktop) • WebDAV-Synchronisation mit eigenem Server (Nextcloud, ownCloud, etc.) • Markdown-Export und Import für Desktop-Editoren (Obsidian, VS Code) -• NEU: WiFi-only Sync, VPN-Unterstützung, Verschlüsselung für lokale Backups +• WiFi-only Sync, VPN-Unterstützung, parallele Downloads • Konfigurierbare Sync-Trigger: onSave, onResume, WiFi, periodisch, Boot -• Komplett offline nutzbar -• Keine Werbung, keine Tracker +• Komplett offline nutzbar – keine Werbung, keine Tracker Datenschutz & Sicherheit: • Alle Daten bleiben bei dir – keine Cloud, keine Tracking-Bibliotheken -• Unterstützung für selbstsignierte SSL-Zertifikate (Self-signed SSL) -• SHA-256 Hash des Signaturzertifikats in App und Releases sichtbar +• Unterstützung für selbstsignierte SSL-Zertifikate +• Verschlüsselte lokale Backups Synchronisation: -• Automatisch oder manuell, optimierte Performance, periodischer Sync optional -• Intelligente Konfliktlösung, Lösch-Tracking, Batch-Aktionen +• Parallele Downloads (bis zu 5 gleichzeitig) +• Live Sync-Fortschritt mit Phasen-Anzeige +• Intelligente Konfliktlösung, Server-Löschungs-Erkennung +• Post-Update Changelog-Dialog UI & Design: • Moderne Jetpack Compose Oberfläche • Material Design 3, Dynamic Colors, Dark Mode -• Animationen und Live Sync-Status +• Notiz- und Checklisten-Sortierung (Titel, Datum, Farbe, alphabetisch) Mehrsprachig: • Deutsch und Englisch, automatische Erkennung, App-Sprachauswahl diff --git a/fastlane/metadata/android/en-US/changelogs/1.txt b/fastlane/metadata/android/en-US/changelogs/1.txt new file mode 100644 index 0000000..6f81b1f --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/1.txt @@ -0,0 +1,8 @@ +• Material Design 3 with Dynamic Colors +• Swipe-to-Delete with confirmation dialog +• Server Backup & Restore feature +• Improved Empty State view +• German localization +• Splash Screen Support (Android 12+) +• Performance improvements +• Bug fixes diff --git a/fastlane/metadata/android/en-US/changelogs/2.txt b/fastlane/metadata/android/en-US/changelogs/2.txt new file mode 100644 index 0000000..11b94f7 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/2.txt @@ -0,0 +1,5 @@ +• Configurable sync interval (15/30/60 minutes) +• Transparent battery usage display (measured: 0.4%/day at 30min) +• Doze Mode optimizations for more reliable background syncs +• About section with app information and GitHub links +• Various bugfixes and performance improvements diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index 166ee44..893be46 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -1,29 +1,31 @@ Simple Notes Sync is a minimalist note-taking app with WebDAV sync and modern features. Key Features: -• Text notes and checklists (tap-to-check, drag & drop) -• NEW: Grid view for notes +• Text notes and checklists (tap-to-check, drag & drop, sorting) +• Grid and list view with note color support +• Homescreen widgets (quick-note, checklist with interactive checkboxes) • Multi-device sync (phone, tablet, desktop) • WebDAV sync with your own server (Nextcloud, ownCloud, etc.) • Markdown export/import for desktop editors (Obsidian, VS Code) -• NEW: WiFi-only sync, VPN support, encryption for local backups +• WiFi-only sync, VPN support, parallel downloads • Configurable sync triggers: onSave, onResume, WiFi, periodic, boot -• Fully usable offline -• No ads, no trackers +• Fully usable offline – no ads, no trackers Privacy & Security: • Your data stays with you – no cloud, no tracking libraries • Support for self-signed SSL certificates -• SHA-256 hash of signing certificate shown in app and releases +• Encrypted local backups Synchronization: -• Automatic or manual, optimized performance, optional periodic sync -• Smart conflict resolution, deletion tracking, batch actions +• Parallel downloads (up to 5 simultaneous) +• Live sync progress with phase indicators +• Smart conflict resolution, server deletion detection +• Post-update changelog dialog UI & Design: • Modern Jetpack Compose interface • Material Design 3, dynamic colors, dark mode -• Animations and live sync status +• Note & checklist sorting (title, date, color, alphabetical) Multilingual: • English and German, automatic detection, in-app language selector