Skip to content

Commit 099bb2d

Browse files
committed
docs: update v1.10.0 changelogs with Part 2 features
Add all Part 2 changes to CHANGELOG.md, CHANGELOG.de.md and both F-Droid changelogs (24.txt EN/DE). Entries cover share/export, FAB redesign, delete-from-editor with bottom sheet and undo, auto-save on back, batch deletion progress, adaptive layouts, WorkManager reliability, and determinate sync progress bars.
1 parent c83aae3 commit 099bb2d

4 files changed

Lines changed: 159 additions & 45 deletions

File tree

CHANGELOG.de.md

Lines changed: 68 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,58 @@ Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
88

99
---
1010

11-
## [1.10.0] - 2026-02-27
11+
## [1.10.0] - 2026-03-01
1212

13-
### ✏️ Editor-Qualität & Sync-Polish
13+
### ✏️ Editor-Überarbeitung, Teilen / Export & Sync-Zuverlässigkeit
1414

15-
Feature-Release mit Rückgängig/Wiederherstellen, konfigurierbarem Verbindungs-Timeout, Speichern beim Zurücknavigieren, Autosave-Fixes, sanfteren Sync-Banner-Animationen und einem Pre-Download-Filter für fremde JSON-Dateien.
15+
Großes Release mit PDF-Export, Text- und Kalender-Teilen, überarbeitetem FAB-Menü, Löschen aus dem Editor mit Rückgängig, Batch-Serverlöschung mit Fortschrittsanzeige, adaptiven Tablet-Layouts, WorkManager-Zuverlässigkeitsverbesserungen und echten deterministischen Fortschrittsbalken für alle Sync-Phasen.
1616

1717
### ✨ Neue Features
1818

19+
**Teilen & Exportieren aus dem Editor** ([e2b9f79](https://github.com/inventory69/simple-notes-sync/commit/e2b9f79), [2aca873](https://github.com/inventory69/simple-notes-sync/commit/2aca873), [57c4e96](https://github.com/inventory69/simple-notes-sync/commit/57c4e96))
20+
- Neues Überlaufmenü (⋮) in der Editor-Toolbar: Als Text teilen, Als PDF teilen, In Kalender exportieren
21+
- PDF nativ über `PdfDocument`-API erstellt — keine Drittanbieter-Bibliothek erforderlich
22+
- Teilen via `FileProvider` für sichere Freigabe mit beliebigen PDF-Viewern
23+
- Kalender-Export füllt Titel, ganztägiges Startdatum (heute) und Notizinhalt als Beschreibung vor
24+
25+
**Aufklappendes FAB-Menü** ([85d68c4](https://github.com/inventory69/simple-notes-sync/commit/85d68c4), [61788e3](https://github.com/inventory69/simple-notes-sync/commit/61788e3))
26+
- FAB durch Speed-Dial ersetzt: Tippen auf `+` zeigt animierte Sub-Action-Buttons für Text-Notiz und Checkliste
27+
- `+`-Icon rotiert zu `×` beim Aufklappen; Sub-Actions gleiten mit gestaffelter Feder-Animation ein
28+
- Transparentes Dismiss-Overlay schließt das Menü beim Tippen außerhalb
29+
- Sub-Action-Buttons und Label-Pills nutzen `secondaryContainer`-Farbe als visuelle Einheit
30+
- Stärkere Schatten-Elevation (8–10 dp) für klare visuelle Trennung vom Notiz-Grid in hellem und dunklem Theme
31+
32+
**Notiz aus Editor löschen mit Rückgängig** ([f3fd806](https://github.com/inventory69/simple-notes-sync/commit/f3fd806))
33+
- Löschaktion von blockierendem Dialog auf ein Bottom Sheet umgestellt
34+
- Nach Bestätigung schließt der Editor und der Hauptscreen zeigt eine timed Rückgängig-Snackbar
35+
- Rückgängig stellt die Notiz wieder her und bricht eine geplante Server-Löschung ab
36+
37+
**Batch-Serverlöschung mit Fortschrittsanzeige** ([39a873f](https://github.com/inventory69/simple-notes-sync/commit/39a873f))
38+
- Neue `DELETING`-Sync-Phase im Banner beim Batch-Löschen mehrerer Notizen vom Server
39+
- Fortschrittsbalken zeigt `aktuell / gesamt` mit dem aktuellen Notiz-Titel
40+
- Phase wechselt sanft zu `COMPLETED` mit einer Ergebnis-Meldung
41+
42+
**Adaptive Layouts für Tablets & Querformat** ([a117cbe](https://github.com/inventory69/simple-notes-sync/commit/a117cbe))
43+
- Editor-Inhalt auf maximal 720 dp Breite begrenzt und auf breiten Bildschirmen zentriert
44+
- Einstellungs-Screens auf maximal 600 dp Breite begrenzt und zentriert
45+
- Haupt-Grid nutzt `Adaptive(180 dp)` Spalten — auf Tablets und im Querformat erscheinen automatisch mehr Spalten
46+
- Vorbereitung für Android 16 (targetSdk 36), das `screenOrientation`-Locks auf Displays ≥ 600 dp ignoriert
47+
1948
**Rückgängig/Wiederherstellen im Notiz-Editor** ([484bf3a](https://github.com/inventory69/simple-notes-sync/commit/484bf3a))
2049
- Vollständige Undo/Redo-Unterstützung für Text-Notizen und Checklisten via Toolbar-Buttons
2150
- Debounced Snapshots: schnelles Tippen wird zu einem einzelnen Undo-Schritt gruppiert (500 ms Fenster)
22-
- Stack auf 50 Einträge begrenzt; wird beim Notizwechsel geleert um Cross-Note-Undo zu verhindern
51+
- Stack auf 50 Einträge begrenzt; wird beim Notizwechsel geleert
2352
- Wiederhergestellte Snapshots aktualisieren die Cursor-Position korrekt
2453

2554
**Konfigurierbarer WebDAV-Verbindungs-Timeout** ([b1aebc4](https://github.com/inventory69/simple-notes-sync/commit/b1aebc4))
2655
- Neuer Settings-Slider (1–30 s, Standard 8 s) zur Konfiguration des WebDAV-Timeouts
2756
- Wird auf alle OkHttpClient-Instanzen angewendet (Connect, Read, Write)
28-
- Einheitliche, nutzerfreundliche Fehlermeldungen für Timeout, Auth-Fehler, Nicht gefunden und Server-Fehler
57+
- Einheitliche Fehlermeldungen für Timeout, Auth-Fehler, Nicht gefunden und Server-Fehler
2958

3059
**Markdown-Auto-Sync Timeout-Schutz** ([7f74ae9](https://github.com/inventory69/simple-notes-sync/commit/7f74ae9))
3160
- Aktivierung von Markdown-Auto-Sync hat jetzt einen 10-s-Timeout für den initialen Export
3261
- UI-Toggle aktualisiert optimistisch und kehrt bei Fehler oder Timeout zurück
33-
- Verhindert, dass der Einstellungs-Screen bei unerreichbaren Servern endlos hängt
62+
- Verhindert, dass der Einstellungs-Screen bei unerreichbaren Servern hängt
3463

3564
**Speichern beim Zurücknavigieren** ([402382c](https://github.com/inventory69/simple-notes-sync/commit/402382c))
3665
- Ungespeicherte Notizen werden beim Verlassen des Editors automatisch gespeichert (System-Zurück + Toolbar-Zurück)
@@ -39,18 +68,43 @@ Feature-Release mit Rückgängig/Wiederherstellen, konfigurierbarem Verbindungs-
3968

4069
### 🐛 Fehlerbehebungen
4170

71+
**Download-Fortschritt immer indeterminate** ([c83aae3](https://github.com/inventory69/simple-notes-sync/commit/c83aae3))
72+
- `ParallelDownloader` trackte `abgeschlossen / gesamt` intern korrekt, aber `syncNotes()` hat `total = 0` hardcodiert
73+
- Behoben: `total` wird jetzt korrekt weitergegeben → DOWNLOADING-Phase zeigt einen echten `LinearProgressIndicator`
74+
- `importMarkdownFiles()` meldet jetzt ebenfalls Datei-für-Datei-Fortschritt: Banner zeigt `X / Y dateiname.md` mit determiniertem Balken
75+
76+
**FGS-Timeout auf Android 15+** ([1e6eb64](https://github.com/inventory69/simple-notes-sync/commit/1e6eb64))
77+
- `ensureActive()`-Checkpoints in der Download-Schleife und beim Markdown-Import von `WebDavSyncService` hinzugefügt, damit Coroutines bei WorkManager-Abbruch auf targetSdk 35+ sofort reagieren
78+
- `CancellationException`-Handler in `SyncWorker` loggt jetzt den Stop-Grund (API 31+)
79+
80+
**WorkManager-Quota / Standby-Stops nicht sichtbar** ([3d66a19](https://github.com/inventory69/simple-notes-sync/commit/3d66a19))
81+
- Detailliertes Stop-Reason-Logging: 16 WorkManager-Stop-Codes auf lesbare Namen gemappt
82+
- Wenn ein Sync durch JobScheduler-Quota oder App-Standby gestoppt wird, erscheint beim nächsten App-Start ein Info-Banner
83+
84+
**Konsistente Position des Editor-Überlaufmenüs** ([242ece3](https://github.com/inventory69/simple-notes-sync/commit/242ece3))
85+
- Überlaufmenü (⋮) ist jetzt am ``-Button verankert, auch bei Checklisten-Notizen
86+
- Zuvor war das Menü an der äußeren Actions-`Row` verankert und erschien bei Checklisten zu weit links
87+
88+
**Markdown-Import: Inhalt vor Überschrift verloren** ([e33ac23](https://github.com/inventory69/simple-notes-sync/commit/e33ac23))
89+
- Inhalt vor dem ersten `#`-Heading wurde beim Markdown-Import still verworfen
90+
- Checklisten-Erkennung verbessert: mehr Item-Muster werden jetzt erkannt
91+
92+
**Checklisten-Autosave nicht bei Item-Änderungen ausgelöst** ([5401df3](https://github.com/inventory69/simple-notes-sync/commit/5401df3))
93+
- Löschen, Hinzufügen und Verschieben von Checklisten-Items markiert die Notiz jetzt korrekt als geändert und löst Autosave aus
94+
95+
**Minimales Scrollen beim Hinzufügen neuer Checklisten-Items** ([c2fbe0b](https://github.com/inventory69/simple-notes-sync/commit/c2fbe0b))
96+
- Neue Checklisten-Items scrollen nur so weit, dass das Item sichtbar wird, statt zur Listenoberseite zu springen
97+
4298
**Falsches Autosave beim Tippen in Checkliste** ([9ea7089](https://github.com/inventory69/simple-notes-sync/commit/9ea7089))
4399
- Antippen eines Checklisten-Items zum Platzieren des Cursors löst kein falsches Autosave mehr aus
44-
- No-Op-Guards in `updateChecklistItemText()` und `updateChecklistItemChecked()` — nur dirty markieren wenn sich der Wert tatsächlich geändert hat
100+
- No-Op-Guards in `updateChecklistItemText()` und `updateChecklistItemChecked()`
45101

46102
**Undo auf Originalzustand löste trotzdem Autosave aus** ([cf5027b](https://github.com/inventory69/simple-notes-sync/commit/cf5027b))
47103
- Rückgängig-Machen aller Änderungen zum letzten Speicherzustand setzt `isDirty` jetzt korrekt zurück und bricht das ausstehende Autosave ab
48-
- Neues `savedSnapshot`-Property erfasst den Zustand beim Laden und nach jedem Speichern
49-
- `applySnapshot()` vergleicht gegen `savedSnapshot` um den Dirty-State zu bestimmen
104+
- Neues `savedSnapshot`-Property erfasst den Zustand beim Laden und nach jedem expliziten Speichern
50105

51106
**Fremde JSON-Dateien unnötig heruntergeladen** ([c409243](https://github.com/inventory69/simple-notes-sync/commit/c409243))
52107
- Nicht-Notiz-JSON-Dateien (z.B. `google-services.json`) werden jetzt vor dem Download via UUID-Format-Check gefiltert
53-
- Zuvor: Datei wurde heruntergeladen, geparst und nach ID-Mismatch verworfen — verschwendete Bandbreite und kurzes Aufblitzen im Sync-Banner
54108

55109
**Notiz-Anzahl-Strings nicht korrekt pluralisiert** ([8ca8df3](https://github.com/inventory69/simple-notes-sync/commit/8ca8df3))
56110
- Notiz-Anzahl-Strings in korrekte Android-Pluralformen konvertiert (EN + DE)
@@ -62,7 +116,10 @@ Feature-Release mit Rückgängig/Wiederherstellen, konfigurierbarem Verbindungs-
62116
- Banner-Ausblendung: fadeOut + shrinkVertically (300/400 ms, EaseInCubic)
63117
- Phasen-Übergänge nutzen AnimatedContent-Crossfade (250 ms) für Textwechsel
64118
- Mindest-Anzeigedauer pro aktiver Phase (400 ms) verhindert unlesbare Blitze
65-
- Auto-Hide-Job vom Flow-Collector entkoppelt — garantierte Mindest-Anzeigedauer für Abgeschlossen/Fehler/Info-States
119+
- Auto-Hide-Job vom Flow-Collector entkoppelt — garantierte Mindest-Anzeigedauer
120+
121+
**Markdown-Ordner in Sync-Einstellungen erwähnt** ([a8bb80c](https://github.com/inventory69/simple-notes-sync/commit/a8bb80c))
122+
- Sync-Ordner-Hinweis erwähnt jetzt explizit das `notes-md/`-Unterverzeichnis, das für Markdown-Auto-Sync verwendet wird
66123

67124
---
68125

CHANGELOG.md

Lines changed: 73 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,48 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
88

99
---
1010

11-
## [1.10.0] - 2026-02-27
11+
## [1.10.0] - 2026-03-01
1212

13-
### ✏️ Editor Quality & Sync Polish
13+
### ✏️ Editor Overhaul, Share / Export & Sync Reliability
1414

15-
Feature release adding undo/redo, configurable connection timeout, save-on-back, autosave fixes, smoother sync banner animations, and a pre-download filter for foreign JSON files.
15+
Major release adding PDF export, text and calendar sharing, a redesigned FAB menu, delete-from-editor with undo, batch server deletion with progress, adaptive tablet layouts, WorkManager reliability improvements, and real determinate progress bars for all sync phases.
1616

1717
### ✨ New Features
1818

19+
**Share & Export from Editor** ([e2b9f79](https://github.com/inventory69/simple-notes-sync/commit/e2b9f79), [2aca873](https://github.com/inventory69/simple-notes-sync/commit/2aca873), [57c4e96](https://github.com/inventory69/simple-notes-sync/commit/57c4e96))
20+
- New overflow menu (⋮) in the editor toolbar: Share as Text, Share as PDF, Export to Calendar
21+
- PDF generated natively via `PdfDocument` API — no third-party library required
22+
- Shared via `FileProvider` for secure, permission-free sharing with any PDF viewer
23+
- Calendar export pre-fills title, all-day start date (today), and note content as description
24+
25+
**Expandable FAB Menu** ([85d68c4](https://github.com/inventory69/simple-notes-sync/commit/85d68c4), [61788e3](https://github.com/inventory69/simple-notes-sync/commit/61788e3))
26+
- FAB replaced with an expanding speed-dial: tap `+` to reveal animated sub-action buttons for Text Note and Checklist
27+
- `+` icon rotates to `×` when expanded; sub-actions slide in with staggered spring animation
28+
- Transparent dismiss overlay closes the menu on outside tap
29+
- Sub-action buttons and label pills use `secondaryContainer` colour, forming a visual unit
30+
- Stronger shadow elevation (8–10 dp) ensures the FAB visually floats above note cards in both light and dark theme
31+
32+
**Delete Note from Editor with Undo** ([f3fd806](https://github.com/inventory69/simple-notes-sync/commit/f3fd806))
33+
- Delete action moved from a blocking dialog to a bottom sheet confirmation
34+
- After confirming, the editor closes and the main screen shows a timed undo snackbar
35+
- Undo restores the note from the deleted state and cancels any scheduled server deletion
36+
37+
**Batch Server Deletion with Progress** ([39a873f](https://github.com/inventory69/simple-notes-sync/commit/39a873f))
38+
- New `DELETING` sync phase shown in the banner when deleting multiple notes from the server
39+
- Progress bar shows `current / total` with the current note title
40+
- Phase transitions smoothly to `COMPLETED` with a result message
41+
42+
**Adaptive Layouts for Tablets & Landscape** ([a117cbe](https://github.com/inventory69/simple-notes-sync/commit/a117cbe))
43+
- Editor content capped at 720 dp width, centred on wide screens
44+
- Settings screens capped at 600 dp width, centred
45+
- Main screen grid uses `Adaptive(180 dp)` columns — more columns appear automatically on tablets and in landscape
46+
- Prepares for Android 16 (targetSdk 36) which ignores `screenOrientation` locks on displays ≥ 600 dp
47+
1948
**Undo/Redo in Note Editor** ([484bf3a](https://github.com/inventory69/simple-notes-sync/commit/484bf3a))
2049
- Full undo/redo support for text notes and checklists via toolbar buttons
21-
- Debounced snapshots: rapid keystrokes are grouped into a single undo step (500 ms window)
50+
- Debounced snapshots: rapid keystrokes grouped into a single undo step (500 ms window)
2251
- Stack limited to 50 entries; cleared on note switch to prevent cross-note undo
23-
- Restoring a snapshot correctly updates the text field cursor position
52+
- Restoring a snapshot correctly updates the cursor position
2453

2554
**Configurable WebDAV Connection Timeout** ([b1aebc4](https://github.com/inventory69/simple-notes-sync/commit/b1aebc4))
2655
- New Settings slider (1–30 s, default 8 s) to configure the WebDAV connection timeout
@@ -30,39 +59,67 @@ Feature release adding undo/redo, configurable connection timeout, save-on-back,
3059
**Markdown Auto-Sync Timeout Protection** ([7f74ae9](https://github.com/inventory69/simple-notes-sync/commit/7f74ae9))
3160
- Enabling Markdown auto-sync now has a 10 s timeout for the initial export
3261
- UI toggle updates optimistically and reverts if the export fails or times out
33-
- Prevents the Settings screen from hanging indefinitely on unreachable servers
62+
- Prevents the Settings screen from hanging on unreachable servers
3463

3564
**Save on Back Navigation** ([402382c](https://github.com/inventory69/simple-notes-sync/commit/402382c))
3665
- Dirty notes are saved automatically when navigating back from the editor (system back + toolbar back)
3766
- Only active when autosave is enabled; synchronous save without triggering sync
38-
- Autosave toggle description updated to mention this behavior
67+
- Autosave toggle description updated to mention this behaviour
3968

4069
### 🐛 Bug Fixes
4170

71+
**Download Progress Always Indeterminate** ([c83aae3](https://github.com/inventory69/simple-notes-sync/commit/c83aae3))
72+
- `ParallelDownloader` already tracked `completed / total` internally but `syncNotes()` hardcoded `total = 0`
73+
- Fixed: `total` is now passed through → DOWNLOADING phase shows a real `LinearProgressIndicator`
74+
- `importMarkdownFiles()` also reports per-file progress: banner shows `X / Y filename.md` with a determinate bar
75+
76+
**FGS Timeout on Android 15+** ([1e6eb64](https://github.com/inventory69/simple-notes-sync/commit/1e6eb64))
77+
- Added `ensureActive()` checkpoints in `WebDavSyncService` download loop and markdown import so coroutines respond promptly to WorkManager cancellation on targetSdk 35+
78+
- `CancellationException` handler in `SyncWorker` now logs the stop reason (API 31+)
79+
80+
**WorkManager Quota / Standby Stops Not Surfaced** ([3d66a19](https://github.com/inventory69/simple-notes-sync/commit/3d66a19))
81+
- Added detailed stop reason logging: 16 WorkManager stop codes mapped to human-readable names
82+
- When a sync is stopped due to JobScheduler quota or app standby, an info banner is shown next time the app comes to foreground
83+
84+
**Consistent Editor Overflow Menu Position** ([242ece3](https://github.com/inventory69/simple-notes-sync/commit/242ece3))
85+
- Overflow menu (⋮) is now anchored to the `` button in both text and checklist note types
86+
- Previously the menu anchored to the outer actions `Row`, appearing too far left on checklist notes
87+
88+
**Markdown Import: Pre-Heading Content Lost** ([e33ac23](https://github.com/inventory69/simple-notes-sync/commit/e33ac23))
89+
- Content before the first `#` heading was silently discarded during Markdown import
90+
- Checklist detection improved: more item patterns are now recognised
91+
92+
**Checklist Autosave Not Triggered on Item Changes** ([5401df3](https://github.com/inventory69/simple-notes-sync/commit/5401df3))
93+
- Deleting, adding, and reordering checklist items now correctly marks the note as dirty and triggers autosave
94+
95+
**Minimal Scroll When Adding New Checklist Items** ([c2fbe0b](https://github.com/inventory69/simple-notes-sync/commit/c2fbe0b))
96+
- New checklist items scroll just enough to become visible instead of jumping to the top
97+
4298
**False Autosave on Checklist Cursor Tap** ([9ea7089](https://github.com/inventory69/simple-notes-sync/commit/9ea7089))
43-
- Tapping a checklist item to place the cursor no longer triggers a false autosave
44-
- No-op guards added to `updateChecklistItemText()` and `updateChecklistItemChecked()` — only mark dirty if the value actually changed
99+
- Tapping a checklist item to position the cursor no longer triggers a false autosave
100+
- No-op guards added to `updateChecklistItemText()` and `updateChecklistItemChecked()`
45101

46102
**Undo to Saved State Still Triggered Autosave** ([cf5027b](https://github.com/inventory69/simple-notes-sync/commit/cf5027b))
47-
- Undoing all changes back to the last saved state now correctly resets `isDirty` and cancels the pending autosave
48-
- New `savedSnapshot` property captures state at load time and after every save
49-
- `applySnapshot()` compares against `savedSnapshot` to determine dirty state
103+
- Undoing all changes back to the last saved state now resets `isDirty` and cancels the pending autosave
104+
- New `savedSnapshot` property captures state at load time and after every explicit save
50105

51106
**Foreign JSON Files Downloaded Unnecessarily** ([c409243](https://github.com/inventory69/simple-notes-sync/commit/c409243))
52-
- Non-note JSON files (e.g. `google-services.json`) are now filtered before download via UUID format check
53-
- Previously: file was downloaded, parsed, then discarded after ID mismatch — wasting bandwidth and causing a brief flash in the sync banner
107+
- Non-note JSON files (e.g. `google-services.json`) filtered before download via UUID format check
54108

55109
**Note Count Strings Not Pluralized Correctly** ([8ca8df3](https://github.com/inventory69/simple-notes-sync/commit/8ca8df3))
56110
- Note count strings converted to proper Android plural forms (EN + DE)
57111

58112
### 🎨 UI Improvements
59113

60114
**Smooth Sync Banner Animations** ([c409243](https://github.com/inventory69/simple-notes-sync/commit/c409243))
61-
- Banner enter: fadeIn (300 ms, EaseOutCubic) — no more abrupt "push from top"
115+
- Banner enter: fadeIn (300 ms, EaseOutCubic) — no more abrupt push from top
62116
- Banner exit: fadeOut + shrinkVertically (300/400 ms, EaseInCubic)
63117
- Phase transitions use AnimatedContent crossfade (250 ms) for text changes
64118
- Minimum display duration per active phase (400 ms) prevents unreadable flashes
65-
- Auto-hide job decoupled from flow collector — guaranteed minimum display time for completed/error/info states
119+
- Auto-hide job decoupled from flow collector — guaranteed minimum display time
120+
121+
**Markdown Folder Mentioned in Sync Settings** ([a8bb80c](https://github.com/inventory69/simple-notes-sync/commit/a8bb80c))
122+
- Sync folder hint now explicitly mentions the `notes-md/` subdirectory used for Markdown auto-sync
66123

67124
---
68125

0 commit comments

Comments
 (0)