tchapgouv / tchap-ios

A Matrix client for iOS
https://apps.apple.com/fr/app/tchap/id1446253779
Apache License 2.0
60 stars 17 forks source link

Notifications persistantes hors fil de discussion #1101

Open Delphgateau opened 3 days ago

Delphgateau commented 3 days ago

Il semblerait qu'il y ait des notifications persistantes sur la 2.8.0, bien qu'aucun fil de discussions n'aient été créés depuis une session web sur les salons concernés. Bug remonté sur ce salon: https://app-v4.prod.lab.tchap.incubateur.net/index.html#/room/!fqnIzvoUUENjqmvGPq:agent.dinum.tchap.gouv.fr

NicolasBuquet commented 7 hours ago

La pastille de notification non-lu est affiché si le roomSummary.localUnreadEventCount de cette room est différent de 0. -> https://github.com/tchapgouv/tchap-ios/blob/49a0406083a230ee253076f951e2b329b5d6a423/Riot/Modules/MatrixKit/Models/RoomList/MXKRecentCellData.m#L66

Note dans le code source a propos de cette propriété :

/**
 The number of unread events wrote in the store which have their type listed in the MXSession.unreadEventType.

 @discussion: The returned count is relative to the local storage. The actual unread messages
 for a room may be higher than the returned value.
 * 

Si la pastille est affichée, elel va chercher sa valeur dans la propriété roomSummary.notificationCount. -> https://github.com/tchapgouv/tchap-ios/blob/49a0406083a230ee253076f951e2b329b5d6a423/Riot/Modules/Common/Recents/Model/RecentCellData.m#L56

Note dans le code source a propos de cette propriété :

/**
 The number of unread messages that match the push notification rules.
 It is based on the notificationCount field in /sync response.
 */

La valeur du nombre de messages non-lus d'un salon est donc déterminé et renvoyé par le backend. Par contre, il semble traité différemment en fonction du client. Sur un même compte avec une connexion iOS et une connexion web simultanées, l'affichage des non-lus est différent :

Screenshot 2024-10-14 at 11 55 49
NicolasBuquet commented 6 hours ago

Réactiver le code de gestion des threads testé sur iOS ne change rien à l'affichage. (#878 )

Consulter les threads d'un salon contenant des threads permet de faire baisser le nombre de messages non-lu. Ces messages de threads sont donc bien pris en compte :

Screenshot 2024-10-14 at 11 56 03 Screenshot 2024-10-14 at 11 56 51

Les non-lus du salon peuvent alors être marqués comme lus :

Simulator Screenshot - iPhone 15 - 2024-10-14 at 11 57 26