Releases: IT-BAER/hado
Releases · IT-BAER/hado
v1.1.3
Added
- Drag-to-reorder lists in the main app: long-press any list chip to pick it up and drag left or right to change the order; order is persisted across sessions
- Drag-to-reorder lists in widget settings: long-press the drag handle (⠿) on any list row to pick it up and drag to a new position; widget renders lists in the saved order
v1.1.2
Added
- Optional due and overdue item notifications with per-list filtering, configurable lead time, repeat cadence, and quick actions for Later and Done
- In-app language picker with Android per-app locale support for all supported HAdo languages
- Completed translation coverage for the latest notification, language, and MDI icon strings across every supported locale
Changed
- Home overview header now uses a tighter compact layout with clearer done and overdue status pills
- The add-item editor no longer applies top-bar padding when launched without the top app bar, keeping full-screen widget launches properly aligned
Fixed
- Logging out now cancels scheduled reminder work, and signing in or switching to Local Mode reschedules it cleanly
- Notification list filters now self-heal when available to-do lists change, preventing stale saved selections from breaking reminder settings
v1.1.1
Fixed
- Due date off-by-one error: The date picker now correctly handles UTC/Local time conversions so selected dates no longer shift by a day in certain timezones
- Login "www. error" toast: Replaced raw network exception messages (like "www.host: Unable to resolve host") with user-friendly descriptions and added URL validation to catch malformed addresses early
v1.1.0
Added
- New list icon picker with direct typed
mdi:*search, live preview, inline suggestions, and native MDI defaults; compatible emoji and MDI choices can sync upstream while custom images remain local-only - Pull-to-refresh on every list editor: swipe down to force a fresh fetch from Home Assistant (or local store in local mode)
- Scroll animation fix: items no longer appear to reorder or shuffle when scrolling fast through a list — enter animations now only play for truly new items
Changed
- The inline add row now stays above active items, and newly added items are inserted at the top in both the app editor and widget editor
- Newly added Home Assistant items are now moved to the top immediately after creation, so the refreshed persisted order matches the optimistic UI order
- Rapid check/uncheck taps on the same item are now debounced (350 ms) and coalesced — only the settled state is sent to Home Assistant, eliminating out-of-order API races
- Toggling an item now reverts its optimistic state if the Home Assistant API call fails, instead of leaving the item in a wrong state
- The widget editor now shows the list icon and list name directly in the top app bar, freeing more vertical space for items and the add row
- List icons now use a shared fixed-size preview across the editor, home overview, app settings, and widget settings so emoji and custom image icons stay visually aligned
Fixed
- Expired or revoked Home Assistant sessions now clear saved auth state and return cleanly to the login screen instead of bouncing between screens in a 401 loop
- Tapping a list chip in the home editor now moves the horizontal pager to that list again; chip taps and swipes stay in sync
- Newly added items now animate existing rows downward instead of snapping when the optimistic temporary row is replaced by the confirmed item
- The Local Mode button on the login screen now uses a readable high-contrast style instead of a barely visible outline treatment
- Custom list images are now center-cropped before being stored and render as proper circular icons instead of malformed stretched thumbnails
- Non-admin Home Assistant accounts now fall back cleanly to local-only custom icons and show a note instead of attempting admin-only entity icon updates
- Reopening the list icon picker now shows the active MDI or emoji selection again, inline icon suggestions no longer dismiss the keyboard, and restoring the default icon now returns to the native
mdi:clipboard-listlist icon
Security
- Updated Glance widget library from 1.1.0 to 1.1.1 to address CVE-2024-7254 (protobuf vulnerability in transitive dependencies
glance-appwidget-protoandglance-appwidget-external-protobuf)
v1.0.5
Added
- The currently open list now refreshes in the background about every 5 seconds while the home screen is visible, so changes from other users show up much faster
- New opt-in widget setting “Focus add field on open”: tapping a list title on the widget can now automatically focus the new-item input and open the keyboard
- Main app header now includes a purple heart support action that opens an optional external support dialog for Buy Me a Coffee and PayPal
- Widget settings now end with a
"💜 Support"section that links to the same optional external support pages
Changed
- Home list loading now uses a per-list cache and deduplicated item requests instead of letting each embedded page fetch on its own
Fixed
- Swiping between lists no longer triggers duplicate
todo.get_itemsbursts that could hit Home Assistant 429 rate limits - Short
Retry-Afterrate-limit responses are now retried once while the existing cached list stays visible - Swiping between home lists now auto-scrolls the selected list chip into view so the active list stays visible
v1.0.4
Added
- Widget settings now include a global switch to show or hide list title icons
Changed
- Widget settings redraw immediately from cached widget state while a background refresh still updates live Home Assistant data
Fixed
- Widget loading placeholder now uses a centered, rounded card style instead of a bright white overlay
- Widget list headers now fall back to the default list icon when custom icon data is missing or stale
v1.0.3
Added
- Inline home list editing with drag-to-reorder, long-press item details, shared editor behavior, and horizontal swiping between lists
- Home overview now shows resolved list icons, and the editor reclaims vertical space while typing by hiding the overview strip
- Per-widget item height control and a dedicated widget loading placeholder during startup
- Extended translations for the new app and widget UI copy across all supported locales
Changed
- Refreshed the app UI across login, home, settings, and Material 3 theme tokens, shapes, and spacing
- Widget refresh interval is now configured per widget instance instead of globally, and widget schedules are created and cancelled per widget
- Widget title area now opens the app directly while the refresh action stays refresh-only
Fixed
- While adding items inline, the active field stays visible after Enter and a second Back after closing the keyboard restores the full layout instead of exiting the app
- Widget toggles are now optimistic across widget instances, show a pending state while syncing, and revert cleanly if Home Assistant update fails
- Build support and warning cleanup for
compileSdk 35, including AGP 8.7.3, Gradle 8.9, deprecated UI API cleanup, and preserved debug symbols forlibdatastore_shared_counter.so
v1.0.2
Changed
- Widget settings: back gesture/button now saves changes instead of discarding them
Added
- Full i18n support for 10 languages: English, German, Spanish, French, Portuguese (Brazil), Dutch, Russian, Japanese, Korean, Chinese (Simplified)
v1.0.1
Fixed
- Release build: added ProGuard keep rules for widget data classes (
WidgetListData,WidgetSettings,RefreshTokenResponse) that R8 was obfuscating, breaking Gson serialization - Release build: extracted local
SimpleStateclasses to shared model package covered by existing keep rules, fixing HA API state parsing - Release build: added
@SerializedNamefield preservation rule for R8 full mode (default in AGP 8.5+) - Release build: added
android:usesCleartextTraffic="true"to allow HTTP connections to local Home Assistant instances - Added ProGuard keep rules for LocalTodoStore inner classes and Gson TypeToken