Update Notification Status On Devices Once Read

One thing I’ve noticed is everytime I read a new message, the new message notification remains on other devices. You think there are new messages but actually you already read them. It would be great if the notifications could be updated so that they are removed from all the devices once the message was read.
In my case this is for iOS but I guess this happens cross platform.

Update:

Feature request

Cheers

2 Likes

Hi @RbDev,

Could you share which version of Mattermost server you have installed as well as which devices you’re seeing the issue on? Also, did you download the app from AppStore?

It might be that the device-specific settings for the app need to be changed on your device in order for this to happen.

I actually have noticed the same thing. An example would be I am away on my desktop and a notification is sent to mobile. Before interacting with my mobile device again I read the item on my desktop but the notification is still displayed on my mobile device. Any other app using push notifications would have had this removed when it was views on any other device.

I am running server v4.5.0
Desktop macOS 10.13.3 running the desktop app v3.7.1
iOS app 1.5.2 (from appstore)

Hi Lindy,

All the latest versions. Server 4.6.0 and latest from appstore.

I believe this hasnt been implemented yet.

Cheers.

Hi @RbDev @nlb_smg

Quick question…

Do either of you have high availability mode enabled?

Are you talking about redundant servers? I don’t have one.

Just updated to 4.6.0 to see if anything changed but it didn’t. I don’t see an option for ‘High Availability’ in the config file so my assumption is no. Reading the documentation on this feature though seems to indicate the use of a cluster which I don’t have as well. I am running off of a single server.

It seems there is a request already made for this feature. I have added at the header post.

Hi @RbDev @nlb_smg

Thank you for the feedback,

According to our mobile engineer, this has already been implemented and should work so I’m going to ask him to take a look at this issue to see if he has any ideas.

We did have a bug where a race condition was preventing notifications from clearing but this was happening only while using high availability.

Hi guys,

I’ll try and explain how this works and why is actually working as expected.

Normally a push notification is sent to the device whenever you get a mention in any channel being public, private or in a group message channel, and you get a notification for every message in a Direct message channel.

In Android every push notification is grouped by the channel id where the mention was originated and that let us use the stack notifications functionality found in Android, then when you read the messages in the channel that dispatched those notifications we send another push notification to clear those that belong to the channel and voilá notifications get cleared.

iOS is a little bit different there is no way to stack notifications per channel that means that each notification is treated as unique and cannot be grouped by channel as we do in Android, yes is true that iOS has a way to clear every notification individually but the problem here is that we are not tracking the notification id for every push notification sent in every channel, so the only way they actually get dismissed from the device is when the mention count reaches zero (0) that way we sent a push notification to the device saying there are no notifications and they get cleared.

I know it can be a little annoying we have tried to come up with a solution to this but with the need to bring the app to feature parity this has fallen in priority a little bit.

We will be more than happy if someone can come up with a way an contribute the solution to the product as this will benefit the majority of the users.

Sorry but Im not getting that.

I can replicate this issue with my iphone and ipad everytime. I read all my new messages in the iphone and my ipad new message notification remains.

Could this feature be at fault on iOS?

So my understanding then is that if I get, for example, 5 notifications on my iOS device - 1 from channel a, 3 from channel b and 1 from channel c then upon checking all of those channels on my desktop then all the notifications on my iOS device should disappear?

If this is what is suppose to happen then it is not the behavior that i have been seeing.

Hi @RbDev @nlb_smg,

Thanks for your questions,

I think what @elias is saying is that there is still work that needs to be done on this feature in order for it to work exactly as expected.

I believe we’ll be making a “help wanted” ticket for this and we’ll post the link back here once available.

Is there a way by which any iOS/android developer can be asked from the Mattermost team to work on this feature idea implementation? Can we have it in the pipeline atleast? This issue seems to be affecting a lot of users, particularly more annoying for iOS users.

I am not an iOS developer, but from what I can see is that we can have an API that posts a message to all logged in devices that a particular message has been read.

Easy way:
Only if the user reads all unread messages from all channels/DMs, then in that case use this:
Have the badge count set to 0, this should clear all delivered notifications from the notification center.

Difficult way:
Have a way by which we can keep a track of individual notification IDs, and once user reads a particular channel/DM, clear only those in the notification center. This will require a good amount of design discussion and DB changes by the Mattermost team.

Hi @chughpiyush,

What server version and mobile version are you currently using?

Mattermost server (latest version): 5.4.0
iOS app: 1.13.1 (Build 151)

Hey @chughpiyush,

We have some tickets here to improve the behaviour of push notifications both for iOS and Android:

Based on this post Update Notification Status On Devices Once Read, the push notification behaviour for iOS is a little different and we are still working on figuring out further improvements.