Skip to content

[Mobile] Notification settings give false assurance: iOS toggles are write-only, failed-push banner is dismissible forever #3143

Description

@ToddHebebrand

Description

Two residuals from #3118 (PR #3125 fixed the Android unsupported case), same false-assurance class — the UI asserts notification behavior the app doesn't deliver:

  1. iOS Notifications / Critical-only toggles are write-only. The toggles in apps/mobile/src/screens/chat/components/SettingsSheet.tsx persist their state to AsyncStorage, but nothing consumes those keys — no code path filters or suppresses pushes based on them. Turning "Critical only" on changes nothing; turning Notifications off changes nothing.
  2. The failed push-registration banner is dismissible per session. When registration status is failed, ApprovalGate shows a banner the user can dismiss; after dismissal the Notifications toggle (ON) is the only remaining signal, which is wrong — pushes are not arriving.

Proposed Fix

  1. Either wire the toggles to real behavior (respect them at notification display/registration time, or send them server-side to filter dispatch) or remove/disable them until they do something.
  2. For failed status, give the Notifications row the same status-aware treatment fix(mobile): stop Settings asserting push works when registration is unsupported (#3118) #3125 added for unsupported (disabled/explanatory state), so the truth survives banner dismissal.

Affected Files

  • apps/mobile/src/screens/chat/components/SettingsSheet.tsx
  • apps/mobile/src/services/notifications.ts
  • ApprovalGate banner logic (dismissal state)

Reported By

Review findings on #3125; follow-up to #3118

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions