Skip to content

Commit 391c7e5

Browse files
committed
Merge branch 'feature/v1.8.2-stability-fixes' into main
Release v1.8.2 — Stability & Polish Major stability release with 26 improvements and bug fixes: Sync Reliability: - Fixed sync deadlock (IMPL_01, IMPL_13) - SSL certificates in release builds (IMPL_02) - Markdown sync stability (IMPL_08) - Better cross-device conflict detection (IMPL_12) - Silent download failure prevention (IMPL_18) Editor Improvements: - Checklist edits now persist on app switch (IMPL_17) - Cross-separator drag continuity (IMPL_26) - Smoother scrolling without jumps (IMPL_10, IMPL_11) - Auto-scroll to cursor (IMPL_07) - Auto-capitalization (IMPL_05) - Enter key navigation (IMPL_16) Widget Polish: - Scrollable text in medium widgets (IMPL_04) - Better spacing and margins (IMPL_03, IMPL_19) Performance: - ProGuard R8 optimizations (IMPL_03) All 26 issues implemented, tested, and verified. Build: assembleDebug ✅ lintStandardDebug ✅ detekt ✅
2 parents 5764e8c + 6259c1f commit 391c7e5

23 files changed

Lines changed: 815 additions & 194 deletions

CHANGELOG.de.md

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

99
---
1010

11+
## [1.8.2] - 2026-02-16
12+
13+
### 🔧 Stabilität, Editor- & Widget-Verbesserungen
14+
15+
Großes Stabilitäts-Release mit 26 behobenen Problemen — Sync-Deadlocks, Datenverlust-Prävention, SSL-Zertifikate, Markdown-Sync-Loop, stille Download-Fehler, Editor-UX-Verbesserungen, Widget-Polish und APK-Größenoptimierung.
16+
17+
### 🐛 Fehlerbehebungen
18+
19+
**Sync blockiert dauerhaft bei "Bereits aktiv"** *(IMPL_01)* ([a62ab78](https://github.com/inventory69/simple-notes-sync/commit/a62ab78))
20+
- 5 Code-Pfade in SyncWorker behoben, bei denen `tryStartSync()` aufgerufen wurde, aber der State nie zurückgesetzt wurde
21+
- Early Returns rufen nun `SyncStateManager.reset()` auf
22+
- CancellationException-Handler setzt State jetzt zurück statt ihn im SYNCING-Zustand zu belassen
23+
- Ursache: SyncStateManager blieb dauerhaft im SYNCING-State
24+
25+
**Selbstsignierte SSL-Zertifikate in Release-Builds** *(IMPL_02)* ([b3f4915](https://github.com/inventory69/simple-notes-sync/commit/b3f4915))
26+
- `<certificates src="user" />` zur Netzwerk-Sicherheitskonfiguration hinzugefügt
27+
- User-installierte CA-Zertifikate funktionieren jetzt auch in Release-Builds
28+
29+
**Text-Notizen nicht scrollbar in mittleren Widgets** *(IMPL_04)* ([8429306](https://github.com/inventory69/simple-notes-sync/commit/8429306))
30+
- NARROW_MED und WIDE_MED Widget-Größenklassen nutzen jetzt `TextNoteFullView` (scrollbar)
31+
- 2x1- und 4x1-Widgets zeigen jetzt scrollbaren Textinhalt
32+
33+
**Tastatur Auto-Großschreibung** *(IMPL_05)* ([d93b439](https://github.com/inventory69/simple-notes-sync/commit/d93b439))
34+
- Titel: `KeyboardCapitalization.Words`, Inhalt/Checklisten: `KeyboardCapitalization.Sentences`
35+
36+
**Dokumentation: Sortieroption-Benennung** *(IMPL_06)* ([465bd9c](https://github.com/inventory69/simple-notes-sync/commit/465bd9c))
37+
- "color"/"Farbe" zu "type"/"Typ" in README-Dateien und F-Droid-Metadaten geändert
38+
39+
**Tastatur-Auto-Scroll für Text-Notizen** *(IMPL_07)* ([bc266b9](https://github.com/inventory69/simple-notes-sync/commit/bc266b9))
40+
- TextNoteContent von `TextFieldValue`-API zu `TextFieldState`-API migriert
41+
- Scrollt automatisch zur Cursor-Position wenn Tastatur öffnet
42+
43+
**Checklisten-Scroll-Sprung beim Tippen** *(IMPL_10)* ([974ef13](https://github.com/inventory69/simple-notes-sync/commit/974ef13))
44+
- Fehlerhafte Auto-Scroll-Logik aus v1.8.1 durch Viewport-aware Scroll ersetzt
45+
- Scrollt nur wenn Item tatsächlich unter den sichtbaren Bereich ragt
46+
47+
**Visueller Glitch beim schnellen Scrollen in Checklisten** *(IMPL_11)* ([82e8972](https://github.com/inventory69/simple-notes-sync/commit/82e8972))
48+
- `isDragConfirmed`-State verhindert versehentliche Drag-Aktivierung beim Scrollen
49+
- Ursache: `Modifier.animateItem()` verursachte Fade-Animationen beim Scrolling
50+
51+
**Checklisten-Drag am Separator unterbrochen** *(IMPL_26)* ([8828391](https://github.com/inventory69/simple-notes-sync/commit/8828391))
52+
- Drag über die Erledigt/Offen-Trennlinie hinaus bricht nicht mehr ab
53+
- Item bleibt im aktiven Drag während der Haken nahtlos gesetzt/entfernt wird
54+
- Ursache: Getrennte `itemsIndexed`-Blöcke zerstörten die Composition beim Grenzübertritt — zu einheitlichem `items`-Block zusammengeführt
55+
56+
**SyncMutex-Deadlock durch clearSessionCache()-Exception** *(IMPL_13)* ([99f451b](https://github.com/inventory69/simple-notes-sync/commit/99f451b))
57+
- `clearSessionCache()` in try-catch gewrappt im `finally`-Block
58+
- Verhindert, dass Mutex dauerhaft gesperrt bleibt
59+
60+
**Falscher Error-Banner bei Sync-Abbruch** *(IMPL_14)* ([1c45680](https://github.com/inventory69/simple-notes-sync/commit/1c45680))
61+
- CancellationException zeigt keinen Error-Banner mehr
62+
- Doppelte State-Resets in SyncWorker catch-Blöcken entfernt
63+
64+
**Socket-Leak in isServerReachable()** *(IMPL_15)* ([fac54d7](https://github.com/inventory69/simple-notes-sync/commit/fac54d7))
65+
- Socket wird jetzt in allen Code-Pfaden korrekt geschlossen
66+
67+
**CancellationException in ParallelDownloader verschluckt** *(IMPL_16)* ([4c34746](https://github.com/inventory69/simple-notes-sync/commit/4c34746))
68+
- CancellationException wird jetzt weitergeworfen statt gefangen und erneut versucht
69+
- Verhindert Endlosschleife wenn WorkManager Sync abbricht
70+
71+
**Checklisten-Datenverlust bei onResume** *(IMPL_17)* ([b436623](https://github.com/inventory69/simple-notes-sync/commit/b436623))
72+
- Checklisten-Änderungen bleiben erhalten beim Zurückkehren aus Benachrichtigungsleiste
73+
- Ursache: `onResume()` lud Notiz aus Datenbank neu, verwarf ungespeicherte Änderungen
74+
75+
**Doppelter Stale-Sync Cleanup** *(IMPL_18)* ([71ae747](https://github.com/inventory69/simple-notes-sync/commit/71ae747))
76+
- Copy-Paste-Duplikat in `SimpleNotesApplication.onCreate()` entfernt
77+
78+
**NotesStorage-Shadow + Download-Abbruch** *(IMPL_19)* ([ede429c](https://github.com/inventory69/simple-notes-sync/commit/ede429c), [50ae9d8](https://github.com/inventory69/simple-notes-sync/commit/50ae9d8))
79+
- Shadow-`NotesStorage`-Instanz in `hasUnsyncedChanges()` entfernt (19a)
80+
- `runBlocking` durch `coroutineScope` ersetzt für korrekte Abbruch-Propagation (19b)
81+
- Read-Timeout zu OkHttpClient-Instanzen hinzugefügt (19c)
82+
83+
**Stille Download-Fehler als Erfolg gemeldet** *(IMPL_21)* ([371d5e3](https://github.com/inventory69/simple-notes-sync/commit/371d5e3))
84+
- Download-Exceptions werden jetzt propagiert statt still verschluckt
85+
- Sync meldet korrekt Fehler wenn Downloads fehlschlagen
86+
87+
**PENDING-Notizen nicht erkannt** *(IMPL_22)* ([20de019](https://github.com/inventory69/simple-notes-sync/commit/20de019))
88+
- `hasUnsyncedChanges()` prüft jetzt auf Notizen mit PENDING-Sync-Status
89+
- Behebt Problem beim Server-Wechsel
90+
91+
**E-Tag/Timestamp Download-Reihenfolge** *(IMPL_23)* ([68dbb4e](https://github.com/inventory69/simple-notes-sync/commit/68dbb4e))
92+
- E-Tag-Vergleich läuft jetzt vor Timestamp-Check (übersprang geänderte Notizen)
93+
- Behebt Cross-Device-Sync wo Timestamps stimmten aber Inhalt sich unterschied
94+
95+
**Silent Sync zu sichtbarem Sync** *(IMPL_24)* ([940a494](https://github.com/inventory69/simple-notes-sync/commit/940a494))
96+
- Pull-to-Refresh während Hintergrund-Sync zeigt jetzt Sync-Banner statt "bereits aktiv"-Fehler
97+
98+
**Markdown-Sync Feedback-Loop** *(IMPL_25)* ([74194d4](https://github.com/inventory69/simple-notes-sync/commit/74194d4))
99+
- 5 Ursachen behoben die einen endlosen Export→Import→Re-Export-Zyklus verursachten
100+
- UUID-Normalisierung, Server-mtime-Erhaltung, Zeitzonen-Vergleich, Pfad-Sanitierung, Inhaltstyp-Vergleich
101+
102+
### ✨ Neue Features
103+
104+
**Enter-Taste: Navigation von Titel zu Inhalt** *(IMPL_09)* ([81b9aca](https://github.com/inventory69/simple-notes-sync/commit/81b9aca))
105+
- Titel-Feld ist jetzt einzeilig mit `ImeAction.Next`
106+
- Enter/Weiter springt zum Inhaltsfeld oder erstem Checklisten-Item
107+
108+
### 🔄 Verbesserungen
109+
110+
**Widget-Inhalts-Padding** *(IMPL_08)* ([2ae5ce5](https://github.com/inventory69/simple-notes-sync/commit/2ae5ce5))
111+
- Einheitliches Padding für alle Widget-Ansichten: 12dp horizontal, 4dp oben, 12dp unten
112+
113+
**Widget-Eintrags-Abstände** *(IMPL_12)* ([c3d4b33](https://github.com/inventory69/simple-notes-sync/commit/c3d4b33))
114+
- Erhöhte Abstände in Checklisten- und Text-Widgets für bessere Lesbarkeit
115+
116+
**Sync-State-Timeout**
117+
- 5-Minuten-Timeout für verwaiste Sync-States in `SyncStateManager`
118+
- Verhindert dauerhaften Deadlock selbst wenn alle anderen Schutzmaßnahmen versagen
119+
120+
**Kaltstart State-Cleanup**
121+
- `SimpleNotesApplication.onCreate()` setzt jetzt verwaiste SYNCING-States zurück
122+
123+
**APK-Größenoptimierung** *(IMPL_03)* ([7867894](https://github.com/inventory69/simple-notes-sync/commit/7867894))
124+
- Breite ProGuard-Regel durch granulare Regeln ersetzt — behält nur was Reflection braucht
125+
126+
**Versionsanhebung**
127+
- versionCode: 21 → 22
128+
- versionName: 1.8.1 → 1.8.2
129+
130+
---
131+
11132
## [1.8.1] - 2026-02-11
12133

13134
### 🛠️ Bugfix & Polish Release

CHANGELOG.md

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

99
---
1010

11+
## [1.8.2] - 2026-02-16
12+
13+
### 🔧 Stability, Editor & Widget Improvements
14+
15+
Major stability release fixing 26 issues — sync deadlocks, data loss prevention, SSL certificates, markdown sync loop, silent download failures, editor UX improvements, widget polish, and APK size optimization.
16+
17+
### 🐛 Bug Fixes
18+
19+
**Sync Stuck in "Already in Progress"** *(IMPL_01)* ([a62ab78](https://github.com/inventory69/simple-notes-sync/commit/a62ab78))
20+
- Fixed 5 code paths in SyncWorker where `tryStartSync()` was called but state was never reset
21+
- Early returns (no changes, gate blocked, server unreachable) now call `SyncStateManager.reset()`
22+
- CancellationException handler now resets state instead of leaving it in SYNCING
23+
- Generic Exception handler now calls `markError()` to properly transition state
24+
- Root cause: SyncStateManager stayed in SYNCING state permanently, blocking all future syncs
25+
26+
**Self-Signed SSL Certificates in Release Builds** *(IMPL_02)* ([b3f4915](https://github.com/inventory69/simple-notes-sync/commit/b3f4915))
27+
- Added `<certificates src="user" />` to network security base config
28+
- User-installed CA certificates now work in release builds (previously debug-only)
29+
- Required for self-hosted WebDAV servers with self-signed SSL certificates
30+
31+
**Text Notes Not Scrollable in Medium Widgets** *(IMPL_04)* ([8429306](https://github.com/inventory69/simple-notes-sync/commit/8429306))
32+
- Changed NARROW_MED and WIDE_MED widget size classes to use `TextNoteFullView` (scrollable)
33+
- Previously used `TextNotePreview` which was truncated and non-scrollable
34+
- 2x1 and 4x1 widgets now show scrollable text content
35+
- Removed unused `TextNotePreview` function and related constants
36+
37+
**Keyboard Auto-Capitalization** *(IMPL_05)* ([d93b439](https://github.com/inventory69/simple-notes-sync/commit/d93b439))
38+
- Title field now uses `KeyboardCapitalization.Words`
39+
- Content field now uses `KeyboardCapitalization.Sentences`
40+
- Checklist items now use `KeyboardCapitalization.Sentences`
41+
42+
**Documentation: Sort Option Naming** *(IMPL_06)* ([465bd9c](https://github.com/inventory69/simple-notes-sync/commit/465bd9c))
43+
- Changed "color"/"Farbe" to "type"/"Typ" in README files
44+
- Updated F-Droid metadata descriptions (de-DE and en-US)
45+
46+
**Keyboard Auto-Scroll for Text Notes** *(IMPL_07)* ([bc266b9](https://github.com/inventory69/simple-notes-sync/commit/bc266b9))
47+
- Migrated TextNoteContent from `TextFieldValue` API to `TextFieldState` API
48+
- Added external `scrollState` parameter to `OutlinedTextField`
49+
- Auto-scrolls to cursor position when keyboard opens
50+
51+
**Checklist Scroll Jump When Typing** *(IMPL_10)* ([974ef13](https://github.com/inventory69/simple-notes-sync/commit/974ef13))
52+
- Replaced faulty auto-scroll logic from v1.8.1 with viewport-aware scroll
53+
- Only scrolls if item actually extends below viewport
54+
55+
**Checklist Visual Glitch During Fast Scrolling** *(IMPL_11)* ([82e8972](https://github.com/inventory69/simple-notes-sync/commit/82e8972))
56+
- Added `isDragConfirmed` state to prevent accidental drag activation during scroll
57+
- Scoped `animateItem()` to confirmed drag operations only
58+
- Root cause: `Modifier.animateItem()` caused fade-in/out animations when items entered/left viewport
59+
60+
**Checklist Drag Interrupted at Separator** *(IMPL_26)* ([8828391](https://github.com/inventory69/simple-notes-sync/commit/8828391))
61+
- Dragging a checklist item across the checked/unchecked separator no longer drops the item
62+
- Item stays in active drag while its checked state toggles seamlessly
63+
- Root cause: Separate `itemsIndexed` blocks destroyed Composition on boundary crossing — unified into single `items` block
64+
65+
**SyncMutex Deadlock via clearSessionCache() Exception** *(IMPL_13)* ([99f451b](https://github.com/inventory69/simple-notes-sync/commit/99f451b))
66+
- Wrapped `clearSessionCache()` in try-catch inside `finally` block
67+
- Prevents Mutex from staying locked when cache cleanup throws
68+
69+
**False Error Banner on Sync Cancellation** *(IMPL_14)* ([1c45680](https://github.com/inventory69/simple-notes-sync/commit/1c45680))
70+
- CancellationException no longer shows error banner to user
71+
- Removed duplicate state resets in SyncWorker catch blocks
72+
73+
**Socket Leak in isServerReachable()** *(IMPL_15)* ([fac54d7](https://github.com/inventory69/simple-notes-sync/commit/fac54d7))
74+
- Socket now properly closed in all code paths (was leaking on successful connect)
75+
76+
**CancellationException Swallowed in ParallelDownloader** *(IMPL_16)* ([4c34746](https://github.com/inventory69/simple-notes-sync/commit/4c34746))
77+
- CancellationException now re-thrown instead of caught and retried
78+
- Prevents infinite retry loop when WorkManager cancels sync
79+
80+
**Checklist Data Loss on onResume** *(IMPL_17)* ([b436623](https://github.com/inventory69/simple-notes-sync/commit/b436623))
81+
- Checklist edits now persist when returning from notification shade or app switcher
82+
- Root cause: `onResume()` reloaded note from database, discarding unsaved in-memory changes
83+
84+
**Duplicate Stale-Sync Cleanup** *(IMPL_18)* ([71ae747](https://github.com/inventory69/simple-notes-sync/commit/71ae747))
85+
- Removed copy-paste duplicate reset block in `SimpleNotesApplication.onCreate()`
86+
87+
**NotesStorage Shadow + Download Cancellation** *(IMPL_19)* ([ede429c](https://github.com/inventory69/simple-notes-sync/commit/ede429c), [50ae9d8](https://github.com/inventory69/simple-notes-sync/commit/50ae9d8))
88+
- Removed shadow `NotesStorage` instance in `hasUnsyncedChanges()` (19a)
89+
- Replaced `runBlocking` with `coroutineScope` in `downloadRemoteNotes()` for proper cancellation (19b)
90+
- Added read timeout to OkHttpClient instances (19c)
91+
92+
**Silent Download Failures Reported as Success** *(IMPL_21)* ([371d5e3](https://github.com/inventory69/simple-notes-sync/commit/371d5e3))
93+
- Download exceptions now propagate instead of being silently caught
94+
- Sync correctly reports failure when downloads fail
95+
96+
**PENDING Notes Not Detected** *(IMPL_22)* ([20de019](https://github.com/inventory69/simple-notes-sync/commit/20de019))
97+
- `hasUnsyncedChanges()` now checks for notes with PENDING sync status
98+
- Fixes issue where switching servers left notes unsynced
99+
100+
**E-Tag/Timestamp Download Order** *(IMPL_23)* ([68dbb4e](https://github.com/inventory69/simple-notes-sync/commit/68dbb4e))
101+
- E-Tag comparison now runs before timestamp check (was skipping changed notes)
102+
- Fixes cross-device sync where timestamps matched but content differed
103+
104+
**Silent Sync Promote to Visible** *(IMPL_24)* ([940a494](https://github.com/inventory69/simple-notes-sync/commit/940a494))
105+
- Pull-to-refresh during background sync now shows sync banner instead of "already in progress" error
106+
107+
**Markdown Sync Feedback Loop** *(IMPL_25)* ([74194d4](https://github.com/inventory69/simple-notes-sync/commit/74194d4))
108+
- Fixed 5 root causes creating an infinite export→import→re-export cycle
109+
- UUID normalization, server-mtime preservation, timezone-aware comparison, path sanitization, content-type-aware comparison
110+
111+
### ✨ New Features
112+
113+
**Enter-Key Navigation from Title to Content** *(IMPL_09)* ([81b9aca](https://github.com/inventory69/simple-notes-sync/commit/81b9aca))
114+
- Title field is now single-line with `ImeAction.Next`
115+
- Pressing Enter/Next jumps to content field or first checklist item
116+
117+
### 🔄 Improvements
118+
119+
**Widget Content Padding** *(IMPL_08)* ([2ae5ce5](https://github.com/inventory69/simple-notes-sync/commit/2ae5ce5))
120+
- Unified padding for all widget views: 12dp horizontal, 4dp top, 12dp bottom
121+
122+
**Widget Entry Spacing** *(IMPL_12)* ([c3d4b33](https://github.com/inventory69/simple-notes-sync/commit/c3d4b33))
123+
- Increased checklist and text widget spacing for better readability
124+
125+
**Sync State Timeout**
126+
- Added 5-minute timeout for stale sync states in `SyncStateManager`
127+
- `tryStartSync()` auto-resets if existing sync is older than 5 minutes
128+
129+
**Cold Start State Cleanup**
130+
- `SimpleNotesApplication.onCreate()` now resets orphaned SYNCING state
131+
132+
**APK Size Optimization** *(IMPL_03)* ([7867894](https://github.com/inventory69/simple-notes-sync/commit/7867894))
133+
- Replaced broad ProGuard rule with granular rules — keeps only what reflection actually needs
134+
135+
**Version Bump**
136+
- versionCode: 21 → 22
137+
- versionName: 1.8.1 → 1.8.2
138+
139+
---
140+
11141
## [1.8.1] - 2026-02-11
12142

13143
### 🛠️ Bugfix & Polish Release

README.de.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ alt="Get it on F-Droid" align="center" height="80" /></a>
6868
-**Checklisten** – Tap-to-Check, Drag & Drop
6969
- 🔄 **Konfigurierbare Sync-Trigger** – onSave, onResume, WiFi, periodisch (15/30/60 Min), Boot
7070
- 📌 **Widgets** – Home-Screen Quick-Note und Notizlisten-Widget
71-
- 🔀 **Smartes Sortieren** – Nach Titel, Änderungsdatum, Erstelldatum, Farbe
71+
- 🔀 **Smartes Sortieren** – Nach Titel, Änderungsdatum, Erstelldatum, Typ
7272
-**Paralleler Sync** – Lädt bis zu 5 Notizen gleichzeitig herunter
7373
- 🌍 **Mehrsprachig** – Deutsch/Englisch mit Sprachauswahl
7474
- 🔒 **Self-hosted** – Deine Daten bleiben bei dir (WebDAV)
@@ -140,6 +140,6 @@ MIT License – siehe [LICENSE](LICENSE)
140140
<div align="center">
141141
<br /><br />
142142

143-
**v1.8.1** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3
143+
**v1.8.2** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3
144144

145145
</div>

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ alt="Get it on F-Droid" align="center" height="80" /></a>
6868
-**Checklists** - Tap-to-check, drag & drop
6969
- 🔄 **Configurable sync triggers** - onSave, onResume, WiFi-connect, periodic (15/30/60 min), boot
7070
- 📌 **Widgets** - Home screen quick-note and note list widgets
71-
- 🔀 **Smart sorting** - By title, date modified, date created, color
71+
- 🔀 **Smart sorting** - By title, date modified, date created, type
7272
-**Parallel sync** - Downloads up to 5 notes simultaneously
7373
- 🌍 **Multilingual** - English/German with language selector
7474
- 🔒 **Self-hosted** - Your data stays with you (WebDAV)
@@ -150,6 +150,6 @@ MIT License - see [LICENSE](LICENSE)
150150
<div align="center">
151151
<br /><br />
152152

153-
**v1.8.1** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3
153+
**v1.8.2** · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3
154154

155155
</div>

android/app/build.gradle.kts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ android {
2020
applicationId = "dev.dettmer.simplenotes"
2121
minSdk = 24
2222
targetSdk = 36
23-
versionCode = 21 // 🐛 v1.8.1: Checklist Fixes, Widget Sorting, ProGuard Audit
24-
versionName = "1.8.1" // 🐛 v1.8.1: Bugfix & Polish Release
23+
versionCode = 22 // 🔧 v1.8.2: Sync-Stuck Fix, SSL Certs, APK Size, Widget Scroll, Keyboard
24+
versionName = "1.8.2" // 🔧 v1.8.2: Stability & Polish Release
2525

2626
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2727
}
@@ -94,7 +94,7 @@ android {
9494
}
9595

9696
buildFeatures {
97-
viewBinding = true
97+
viewBinding = false
9898
buildConfig = true // Enable BuildConfig generation
9999
compose = true // v1.5.0: Jetpack Compose für Settings Redesign
100100
}
@@ -123,7 +123,6 @@ dependencies {
123123
implementation(libs.androidx.appcompat)
124124
implementation(libs.material)
125125
implementation(libs.androidx.activity)
126-
implementation(libs.androidx.constraintlayout)
127126

128127
// Splash Screen API (Android 12+)
129128
implementation("androidx.core:core-splashscreen:1.0.1")

0 commit comments

Comments
 (0)