mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 00:52:43 +02:00
Navigate to thread view for search results in threads
This commit is contained in:
@@ -143,6 +143,31 @@
|
||||
return ThemeService.shared.theme.statusBarStyle;
|
||||
}
|
||||
|
||||
- (void)selectEvent:(MXEvent *)event
|
||||
{
|
||||
ThreadParameters *threadParameters = nil;
|
||||
if (event.threadId)
|
||||
{
|
||||
threadParameters = [[ThreadParameters alloc] initWithThreadId:event.threadId
|
||||
stackRoomScreen:NO];
|
||||
}
|
||||
else if ([self.mainSession.threadingService isEventThreadRoot:event])
|
||||
{
|
||||
threadParameters = [[ThreadParameters alloc] initWithThreadId:event.eventId
|
||||
stackRoomScreen:NO];
|
||||
}
|
||||
|
||||
ScreenPresentationParameters *screenParameters = [[ScreenPresentationParameters alloc] initWithRestoreInitialDisplay:NO
|
||||
stackAboveVisibleViews:YES];
|
||||
|
||||
RoomNavigationParameters *parameters = [[RoomNavigationParameters alloc] initWithRoomId:event.roomId
|
||||
eventId:event.eventId
|
||||
mxSession:self.mainSession
|
||||
threadParameters:threadParameters
|
||||
presentationParameters:screenParameters];
|
||||
[[LegacyAppDelegate theDelegate] showRoomWithParameters:parameters];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)setRoomDataSource:(MXKRoomDataSource *)roomDataSource
|
||||
@@ -294,48 +319,6 @@
|
||||
[self updateSearch];
|
||||
}
|
||||
|
||||
#pragma mark - Navigation
|
||||
|
||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
|
||||
{
|
||||
[super prepareForSegue:segue sender:sender];
|
||||
|
||||
if ([[segue identifier] isEqualToString:@"showTimeline"])
|
||||
{
|
||||
// Check whether an event has been selected from messages or files search tab
|
||||
MXEvent *selectedSearchEvent = messagesSearchViewController.selectedEvent;
|
||||
MXSession *selectedSearchEventSession = messagesSearchDataSource.mxSession;
|
||||
if (!selectedSearchEvent)
|
||||
{
|
||||
selectedSearchEvent = filesSearchViewController.selectedEvent;
|
||||
selectedSearchEventSession = filesSearchDataSource.mxSession;
|
||||
}
|
||||
|
||||
if (selectedSearchEvent)
|
||||
{
|
||||
RoomViewController *roomViewController = segue.destinationViewController;
|
||||
|
||||
[RoomDataSource loadRoomDataSourceWithRoomId:selectedSearchEvent.roomId
|
||||
initialEventId:selectedSearchEvent.eventId
|
||||
threadId:selectedSearchEvent.threadId
|
||||
andMatrixSession:selectedSearchEventSession
|
||||
onComplete:^(RoomDataSource *roomDataSource) {
|
||||
|
||||
[roomDataSource finalizeInitialization];
|
||||
roomDataSource.markTimelineInitialEvent = YES;
|
||||
|
||||
[roomViewController displayRoom:roomDataSource];
|
||||
roomViewController.hasRoomDataSourceOwnership = YES;
|
||||
|
||||
roomViewController.navigationItem.leftItemsSupplementBackButton = YES;
|
||||
}];
|
||||
}
|
||||
|
||||
// Hide back button title
|
||||
self.navigationItem.backBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Search
|
||||
|
||||
// Update search results under the currently selected tab
|
||||
|
||||
Reference in New Issue
Block a user