User story
As a privacy conscious person, I want the ability to customize the activity tab or turn it off completely, so that my reading history is not shown prominently in the App.
Background
The team is testing an activity tab that would add reading insights to existing history tab with the goal of deepening engagement and increasing retention of readers. We want to ensure users have the ability to turn certain modules on and off.
Requirements
- ✅Add the ability to customize which modules display in the Activity tab
- Users should be able to turn on and off
- ✅ Time spent reading
- ✅ Reading Insights
- Editing Insights
- ✅ Timeline of Behavior
- "last in app donation" will be added later when we build the module T399754
- ✅ Add entry point through the overflow menu, by logged-in and logged-out users
- Upon first install / view, the default state for logged-out users should be: -✅ "Timeline of behavior" should default to ON
- ✅ All other modules should be OFF by default
- ✅ If a logged-out user turns off "Timeline of behavior", their history should be hidden from the logged-out view
- Upon first install / view, the default state for logged-in users:
- ✅ All modules default ON
- ✅ If a logged-out user logs in, their settings should all update to the logged-in defaults unless have already made any changes while logged out. Any user-made changes should be reflected
- ✅ If a logged-in user logs out, their settings should all update to the logged-out defaults unless have already made any changes while logged-in. Any user-made changes should be reflected
- ✅ There should be a description letting users know how the data is calculated
- Modules should be able to be instrumented so that we can understand which modules were turned off and on (by name)
- ✅ Show empty state for users who have all modules off
- ✅ "Switch them on" leads to the customize screen
- ✅ If a logged-out user tries to switch on an activity tab module other than "Timeline", show a toast
Boilerplate requirements
- Should lay out well with long translations. Truncate, wrap text, or scroll where necessary.
- Should change colors according to multiple themes
- Should navigate easily and have understandable accessibility labels for Voice Over
- Should lay out well on larger font sizes. Truncate, wrap text, or scroll where necessary.
Designs
Logged-in users with all modules on: https://www.figma.com/design/2ShBsmgWuzsDAeTafyKzg6/iOS---%3E-Activity-Tab?node-id=355-4457&t=6yDaEjY3fNexhMqA-4
Empty state with modules off: https://www.figma.com/design/2ShBsmgWuzsDAeTafyKzg6/iOS---%3E-Activity-Tab?node-id=355-1794&t=AgNtmUPGd1BDt8k0-4
Reference
Android implementation: T399737
Engineering notes
Testing notes
Can be tested starting in Wikipedia 7.8.9 (5911).