Notification copy that honours the three privacy modes #24
Labels
No Label
P0
P1
P2
release-blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Privacy-Period-Tracker#24
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Nothing sends a notification yet.
NotificationPrivacyis stored, defaults toDISCREET, and is chosen during onboarding — and no code has ever read it.PRODUCT_PLAN.md §28 gives three modes and, for each, what may appear on a lock screen versus inside the app:
Build the copy selection as a pure function — privacy mode plus notification kind plus the day count in, title/text/visibility out — so it is testable without an emulator and without Robolectric. That matters more here than anywhere else in the app: this is the one surface where a mistake is visible to somebody who is not the user.
The traps:
visibilityon the notification, andVISIBILITY_PRIVATEshows the public version of the notification, which you must supply. Setting the private text and forgettingsetPublicVersionleaks the private text.Verify: a pure unit test asserts that for every notification kind, the lock-screen text in Discreet and Maximum privacy contains none of the words "period", "fertile", "ovulation" or "cycle", and that Direct is the only mode that does; plus a test that every kind supplies a public version.