• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

akvo / akvo-mis / #717
89%

Build:
DEFAULT BRANCH: main
Ran 12 Jul 2026 10:43PM UTC
Jobs 1
Files 110
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Jul 2026 10:36PM UTC coverage: 88.443% (+0.01%) from 88.432%
#717

push

coveralls-python

web-flow
[#254] Add dismissible "Later" action to the app update dialog (#256)

* [#254] Add dismissible "Later" action to the app update dialog

The update dialog on Home was unconditionally blocking: the backdrop was a
no-op, the Android back button was swallowed by a BackHandler, and "Update"
was the only action. A field worker who was online but could not install the
APK right then was locked out of data collection entirely.

- Add a "Later" button that closes the dialog and suppresses the automatic
  check for 24 hours, persisted across restarts
- Route hardware back and backdrop press through the same handler; RNEUI's
  Dialog does not self-close on back, so simply unblocking it would have
  navigated away with the dialog still mounted
- Check the skip window before calling /apk/version/:appVersion, so a
  dismissed user spends no bandwidth on a metered connection
- Gate the window on the silent path only: the manual check in About always
  reports its result
- Close the dialog before persisting; a failed write reports to Sentry rather
  than re-trapping the user in the dialog this change exists to remove

Storage is a new nullable config.updateSkippedUntil column (migration 07,
DATABASE_VERSION 6 -> 7) rather than expo-secure-store or AsyncStorage. Both
are native modules that would gate this branch behind a fresh EAS build;
expo-sqlite is already open app-wide and config already holds device
preferences of the same kind.

Design and decision log: doc/design/APP-254-dismissible-update-dialog.md

No automated tests: app/__mocks__/expo-sqlite.js still mocks the pre-SDK-53
openDatabase().transaction API and exports no useSQLiteContext, so a hook test
would exercise the mocks rather than the hook. Refreshing those fixtures is
tracked as a follow-up in the design doc.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [#254] Make update dialog dismissible only via "Later" button

Change the upda... (continued)

5661 of 6569 branches covered (86.18%)

Branch coverage included in aggregate %.

10670 of 11896 relevant lines covered (89.69%)

0.9 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #717.1 12 Jul 2026 10:43PM UTC 110
88.44
Source Files on build #717
  • Tree
  • List 110
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 8e84e78b on github
  • Prev Build on main
  • Next Build on main
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc