Skip to content

CountAway v1.1.5

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Aug 19:14
b859b0c

CountAway 1.1.5

CountAway 1.1.5 is a reliability-focused release that strengthens reminders, local data handling, backups, widgets, and editor recovery without adding new permissions or network behavior.

Improved

  • Distinguish notification permission from app-level and channel-level notification availability so blocked notifications are not marked as delivered.
  • Warn when Android notification settings block delivery while preserving the user's configured reminder.
  • Reject newly created or changed reminder configurations whose scheduled date is already in the past while keeping existing historical reminders editable.
  • Preserve unsaved editor and widget-configuration state across Activity recreation.
  • Preserve pending backup-import confirmation across Activity recreation and revalidate the selected backup before replacing local data.
  • Make the widget configuration preview reflect the selected countdown's real title, icon, and countdown state, and refresh it after event edits.
  • Add direct countdown creation and supported-launcher widget pinning from About, with a more compact backup/support layout and a clearer empty state.
  • Keep missed reminders expired after their scheduled date while still allowing same-day recovery.

Hardened

  • Bound local storage and backup reads before loading the full JSON payload into memory, and reject encoded output that would exceed the same payload limit before replacing local data.
  • Reject malformed imported backups with blank or duplicate IDs/titles, excessive event counts, or oversized payloads.
  • Distinguish corrupt data from data created by a newer CountAway schema.
  • Apply compatibility-safe limits to newly imported IDs and titles without invalidating previously valid local data.
  • Keep editor and widget state available when local data cannot be read safely or storage writes fail.
  • Keep a successful backup restore successful even if a secondary widget or reminder refresh later fails.
  • Truncate backup destinations explicitly when overwriting through Android's document provider.
  • Add regression tests for storage validation, future schemas, reminder scheduling and editor behavior, widget preview content, and payload limits.