From 4000760cf79078147568aa608aeefb22c9ff2664 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Tue, 24 Oct 2017 15:47:19 -0700 Subject: [PATCH 1/2] Fix "back button count" flash. Only call once. This affects returning from message info or when leaving conversation settings. // FREEBIE --- .../ConversationViewController.m | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index 69b885409..bae229924 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -474,6 +474,7 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { [self createScrollButtons]; [self createHeaderViews]; + [self createBackButton]; [self addNotificationListeners]; } @@ -964,26 +965,25 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; - [self dismissKeyBoard]; - [self startReadTimer]; + [ProfileFetcherJob runWithThread:self.thread networkManager:self.networkManager]; + [self markVisibleMessagesAsRead]; + [self startReadTimer]; + [self updateNavigationBarSubtitleLabel]; [self updateBackButtonUnreadCount]; - [self.inputToolbar endEditing:YES]; + if (!self.viewHasEverAppeared) { + [self.inputToolbar endEditing:YES]; - if (_composeOnOpen && !self.inputToolbar.hidden) { - [self popKeyBoard]; - _composeOnOpen = NO; - } - if (_callOnOpen) { - [self callAction]; - _callOnOpen = NO; + if (_composeOnOpen && !self.inputToolbar.hidden) { + [self popKeyBoard]; + _composeOnOpen = NO; + } + if (_callOnOpen) { + [self callAction]; + _callOnOpen = NO; + } } - [self updateNavigationBarSubtitleLabel]; - [ProfileFetcherJob runWithThread:self.thread networkManager:self.networkManager]; - - [self markVisibleMessagesAsRead]; - self.viewHasEverAppeared = YES; } @@ -1099,8 +1099,7 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { return 16; } -- (void)setBarButtonItemsForDisappearingMessagesConfiguration: - (OWSDisappearingMessagesConfiguration *)disappearingMessagesConfiguration +- (void)createBackButton { UIBarButtonItem *backItem = [self createOWSBackButton]; // This method gets called multiple times, so it's important we re-layout the unread badge @@ -1126,7 +1125,11 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { [self updateBackButtonUnreadCount]; self.navigationItem.leftBarButtonItem = backItem; +} +- (void)setBarButtonItemsForDisappearingMessagesConfiguration: + (OWSDisappearingMessagesConfiguration *)disappearingMessagesConfiguration +{ // We want to leave space for the "back" button, the "timer" button, and the "call" // button, and all of the whitespace around these views. There // isn't a convenient way to calculate these in a navigation bar, so we just leave From cd291e19ffa6f66e2eb8e9c4bf2f6e3406ac9e7f Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Wed, 25 Oct 2017 11:37:04 -0700 Subject: [PATCH 2/2] We conceivably want to to initiate calls more than once without leaving the conversation view. e.g. from Contacts.app // FREEBIE --- .../ConversationViewController.m | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index bae229924..0cbc03645 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -972,17 +972,17 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { [self updateNavigationBarSubtitleLabel]; [self updateBackButtonUnreadCount]; + if (_composeOnOpen && !self.inputToolbar.hidden) { + [self popKeyBoard]; + _composeOnOpen = NO; + } + if (_callOnOpen) { + [self callAction]; + _callOnOpen = NO; + } + if (!self.viewHasEverAppeared) { [self.inputToolbar endEditing:YES]; - - if (_composeOnOpen && !self.inputToolbar.hidden) { - [self popKeyBoard]; - _composeOnOpen = NO; - } - if (_callOnOpen) { - [self callAction]; - _callOnOpen = NO; - } } self.viewHasEverAppeared = YES; }