Skip to content

Offline read mode + offline banner #124

@fboucher

Description

@fboucher

Parent PRD

#110

Depends on

#123 (online-first data layer must exist)

Summary

Implement the offline read path in OfflineDataService and add the persistent offline banner. When offline, all reads route to local SQLite. Mark-as-read works offline (queued). Search by name and filter by read/unread status work from local cache. Settings accessible offline.

OfflineDataService — offline path

  • Detect Connectivity.NetworkAccess != NetworkAccess.Internet
  • All read operations delegate to ILocalDataService
  • Mark-as-read sets IsPendingSync = true locally

Offline banner

  • Persistent banner at top of app when offline
  • Clearly labels offline state
  • Disappears when connectivity restored

Offline search + filter

  • Text search filters local post list by name in real time
  • Read/unread filter applies to local cache

Acceptance Criteria

  • OfflineDataService routes reads to SQLite when offline
  • Offline banner visible whenever Connectivity.NetworkAccess != Internet
  • Banner disappears when back online
  • Mark-as-read works offline (queued via IsPendingSync)
  • Search and read/unread filter work from local cache
  • Settings page accessible offline
  • Summary list accessible offline (from local cache)

Stories from PRD

User stories 2, 3, 6, 9, 12, 13, 14, 15, 16

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Backlog

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions