Threaded notifications (#4644)

* implemented grouping

* implemented presenting the thread

* improved the implementation by reusing the presentation action

* add Thread group to DMs to differentiate from non threaded messages of the same DM

* name for a threaded notification in group room

* focus event when tapping on a notification

* pr suggestions

* document
This commit is contained in:
Mauro
2025-10-23 15:28:45 +02:00
committed by GitHub
parent 66f0ff0fdf
commit 7a1d4a08fb
16 changed files with 166 additions and 62 deletions
@@ -395,7 +395,10 @@ class TimelineTableViewController: UIViewController {
guard let self else { return }
if let kvPair = timelineItemsDictionary.first(where: { $0.value.identifier.eventID == eventID }),
let indexPath = dataSource?.indexPath(for: kvPair.key) {
tableView.scrollToRow(at: indexPath, at: .middle, animated: animated)
// Scrolling to the middle created a small bump in the timeline
// Using top, which is bottom in the reversed timeline helps with rendering
// in full long messages and images
tableView.scrollToRow(at: indexPath, at: .top, animated: animated)
coordinator.send(viewAction: .scrolledToFocussedItem)
// Ensure VoiceOver focus happens after the scroll animation (if any)
DispatchQueue.main.asyncAfter(deadline: .now() + (animated ? 0.5 : 0.0)) {