Skip to content

Notify the user when match exactly stops running because of Doze #6835

@alyblenkin

Description

@alyblenkin

Linked #6825

Problem
Match Exactly stops syncing when the device is locked and on battery, resulting in failed downloads. The user isn't notified so they won't know it's out of date. Without battery restrictions ("Doze"), the sync would be attempted a few more times and then show a notification when it gives up.

Down the road we may want to notify the user to remove the battery restrictions, which could be done by the data collector or as part of device setup by a PM - might be something they can do using MDM?

User Story
As a data collector
When my screen is locked and a sync fails
Then I want to be clearly notified to return to the app,
So that I can refresh and ensure I'm using the updated forms

Proposed Flow

  • Device is locked
  • User gets a system notification
    "Forms failed to sync" or "Forms haven't synced recently"
  • User taps notification, unlocks the phone
  • User is taken to the "Start new Form" page and a notification card prompts the user to refresh with the last synced time
    "Forms failed to sync | Last updated on [date] at [time] | Refresh"
  • Or if the sync hasn't happened in a while, we let them know:
    " Forms haven't synced recently | Last updated on [date] at [time] | Sync now"
  • User taps to the button to sync again
  • Sync in progress indicator and percentage is shown so the user knows it's working
  • User isn't blocked while it's syncing so they can do other tasks
  • Once successful user will see
    "Forms successfully synced | Last updated on [date] at [time] | Refresh"

Figma


Future considerations

  • If the user navigates away from that page, viewing a form or whatever, it might be nice to notify them when it finishes downloading. Do we think that could be part of this story or should that be a next iteration?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    not ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions