From 1e78d135715119044fffb68fd507ebce7e856f7c Mon Sep 17 00:00:00 2001 From: Nora Trapp Date: Sat, 5 Oct 2019 17:58:45 -0700 Subject: [PATCH] Ensure the input toolbar is visible after searching --- .../HomeView/ConversationListViewController.m | 21 ++++++++++++------- .../ConversationSplitViewController.swift | 4 ++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Signal/src/ViewControllers/HomeView/ConversationListViewController.m b/Signal/src/ViewControllers/HomeView/ConversationListViewController.m index dcd2651a8f..148deabfc3 100644 --- a/Signal/src/ViewControllers/HomeView/ConversationListViewController.m +++ b/Signal/src/ViewControllers/HomeView/ConversationListViewController.m @@ -1308,8 +1308,7 @@ NSString *const kArchiveButtonPseudoGroup = @"kArchiveButtonPseudoGroup"; { self.searchBar.text = nil; - [self.searchBar resignFirstResponder]; - OWSAssertDebug(!self.searchBar.isFirstResponder); + [self dismissSearchKeyboard]; [self updateSearchResultsVisibility]; @@ -1348,20 +1347,27 @@ NSString *const kArchiveButtonPseudoGroup = @"kArchiveButtonPseudoGroup"; [self.tableView setContentOffset:CGPointMake(0, -topInset) animated:isAnimated]; } +- (void)dismissSearchKeyboard +{ + [self.searchBar resignFirstResponder]; + OWSAssertDebug(!self.searchBar.isFirstResponder); + + // If we have a visible conversation, restore its first responder status so the input toolbar renders. + [self.conversationSplitViewController.selectedConversationViewController becomeFirstResponder]; +} + #pragma mark - UIScrollViewDelegate - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { - [self.searchBar resignFirstResponder]; - OWSAssertDebug(!self.searchBar.isFirstResponder); + [self dismissSearchKeyboard]; } #pragma mark - ConversationSearchViewDelegate - (void)conversationSearchViewWillBeginDragging { - [self.searchBar resignFirstResponder]; - OWSAssertDebug(!self.searchBar.isFirstResponder); + [self dismissSearchKeyboard]; } #pragma mark - HomeFeedTableViewCellDelegate @@ -1447,7 +1453,8 @@ NSString *const kArchiveButtonPseudoGroup = @"kArchiveButtonPseudoGroup"; { OWSLogInfo(@"%ld %ld", (long)indexPath.row, (long)indexPath.section); - [self.searchBar resignFirstResponder]; + [self dismissSearchKeyboard]; + ConversationListViewControllerSection section = (ConversationListViewControllerSection)indexPath.section; switch (section) { case ConversationListViewControllerSectionReminders: { diff --git a/Signal/src/ViewControllers/HomeView/ConversationSplitViewController.swift b/Signal/src/ViewControllers/HomeView/ConversationSplitViewController.swift index a25affb6ee..5fdc36362c 100644 --- a/Signal/src/ViewControllers/HomeView/ConversationSplitViewController.swift +++ b/Signal/src/ViewControllers/HomeView/ConversationSplitViewController.swift @@ -42,6 +42,10 @@ class ConversationSplitViewController: UISplitViewController { return Theme.isDarkThemeEnabled ? .lightContent : .default } + override var canBecomeFirstResponder: Bool { + return false + } + @objc func showNewConversationView() { conversationListVC.showNewConversationView()