1.4.0
What's Changed
- feat: add export/share functionality for bridge message logs by @easyhooon in #28
- Share a single message inline as text, or export full logs as JSON/CSV
- Save to file via SAF with format-specific MIME types
- Split top-bar actions into share/save dropdowns
- chore: add ktlint and detekt static analysis by @easyhooon in #29
- Wire up ktlint + detekt with a Gradle pre-commit hook
- feat: add shake-to-open gesture support by @easyhooon in #30
- Toggle from the new settings bottom sheet; persisted via DataStore
- Haptic feedback on trigger; skip re-opening when DariActivity is already visible
- refactor: replace legacy date APIs with java.time by @easyhooon in #31
- feat: time-based message retention policy (TTL) by @easyhooon in #34
- feat: dark theme support by @easyhooon in #35
- System / Light / Dark segmented picker, persisted via DataStore
- Theme-aware top bar, tabs, status bar, and MessageStatus color roles
- feat: mark dari-core models as Compose Stable + replace deprecated Compose APIs by @easyhooon in #36
- feat: add message status filter chips by @easyhooon in #37
- Theme-aware chips with filter-aware empty state
- feat: declutter message list top bar by @easyhooon in #39
Full Changelog: 1.3.3...1.4.0