Open holmesworcester opened 2 years ago
Questions:
Goals:
Notes on Whatsapp research:
I realized after doing some research that we already added notifications to community settings, Channel settings, and DM settings. The options are currently as follows:
Get notifications for:
This allows global and local (channel/DM) controls. We also have promos that will tell you to enable your device notifications if they are not enabled.
Unless we want to add more controls, I’m not sure this needs any design.
The synchronization strategy is up to Holmes and the Engineers. The goal is to sync, keeping track of the last-read message per user across all devices, and making sure to update devices accordingly.
We also need some sort of ‘presence detection’ to determine if the user is actively using the desktop so we can mute mobile notifications. If the user has been active on mobile, and then switches to desktop (and vice versa), we should delay notifications for a short period to allow for synchronizing. Delay time TBD in experiments, but likely 2-5 seconds is good.
Some answers from the research:
do channel-specific mutes sync across both? (probably yes!)
Yes, based on telegram research.
how does muting interact with badges
Badges should continue to be shown, unless we add a controls for that.
how does it interact with a telegram-style unread counter: https://www.figma.com/file/MVmy9OPUkP2E7Bl4v9lTVA/Receive-new-(but-old)-messages?type=design&node-id=7-2510&mode=design&t=vjW22lV9qW1o9RP4-0 (does reading on mobile make the unread on desktop go away? i think so?)
Yes, based on telegram research
I also found out in my telegram research we can detect if user has notifications turned off on MacOS and prompt them to turn them on. I added a note to the previous spec where we we're previously unsure.
Some other notes from our call:
Updated the issue description to reflect all of this.
Messaging apps have quite a lot of features that users take for granted, when it comes to syncing read/unread messages, notifications, and notification settings between platforms.
Requirements
Implications for how notification settings are stored:
We must store a user's read/unread information and notification settings in the community state, so that all of their devices can sync it efficiently.
We don't need to store it forever, and shouldn't.
We should encrypt the information so that only the user's devices can access it. For example, Bob should not be able to tell if Alice has muted him.
Implications for iOS push notifications:
iOS clients must sync all notification settings updates when receiving a push notification, before choosing whether to display it. Otherwise, they will show notifications the user has turned off, which will be annoying.
An iOS app should ideally be able to silence notifications when the user is active in another app, otherwise they will receive unwanted notifications, which will be annoying. This will require permission from Apple.
An alternative approach would be to let users to share a "can silence" token with their other devices, so that those devices can tell the push notification service to suppress notifications to their iOS devices whenever they are active.
See below for more research and discussion.