From 8561f9724209cdff8964d898670949504ca36b6e Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 2 May 2019 16:56:03 -0400 Subject: [PATCH 1/2] Make sticker keyboard more sticky. --- .../ConversationView/ConversationInputToolbar.m | 11 +++-------- .../ConversationView/ConversationViewController.m | 10 +--------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m b/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m index 2eb09936ff..d6cd34db13 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m @@ -389,7 +389,9 @@ const CGFloat kMaxTextViewHeight = 98; [self ensureTextViewHeight]; [self updateInputLinkPreview]; - [self clearStickerKeyboard]; + if (value.length > 0) { + [self clearStickerKeyboard]; + } [self ensureButtonVisibilityWithIsAnimated:isAnimated doLayout:YES]; } @@ -401,7 +403,6 @@ const CGFloat kMaxTextViewHeight = 98; - (void)clearTextMessageAnimated:(BOOL)isAnimated { - [self clearStickerKeyboard]; [self setMessageText:nil animated:isAnimated]; [self.inputTextView.undoManager removeAllActions]; self.wasLinkPreviewCancelled = NO; @@ -680,8 +681,6 @@ const CGFloat kMaxTextViewHeight = 98; { OWSAssertIsOnMainThread(); - [self clearStickerKeyboard]; - self.voiceMemoStartTime = [NSDate date]; [self.voiceMemoUI removeFromSuperview]; @@ -984,8 +983,6 @@ const CGFloat kMaxTextViewHeight = 98; { OWSAssertDebug(self.inputToolbarDelegate); - [self clearStickerKeyboard]; - [self.inputToolbarDelegate cameraButtonPressed]; } @@ -993,8 +990,6 @@ const CGFloat kMaxTextViewHeight = 98; { OWSAssertDebug(self.inputToolbarDelegate); - [self clearStickerKeyboard]; - [self.inputToolbarDelegate attachmentButtonPressed]; } diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index a1a38a6177..98d1086bba 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -1318,6 +1318,7 @@ typedef enum : NSUInteger { [self markVisibleMessagesAsRead]; [self cancelVoiceMemo]; [self.cellMediaCache removeAllObjects]; + [self.inputToolbar clearStickerKeyboard]; self.isUserScrolling = NO; } @@ -1730,8 +1731,6 @@ typedef enum : NSUInteger { - (void)showConversationSettingsAndShowVerification:(BOOL)showVerification { - [self.inputToolbar clearStickerKeyboard]; - OWSConversationSettingsViewController *settingsVC = [OWSConversationSettingsViewController new]; settingsVC.conversationSettingsViewDelegate = self; [settingsVC configureWithThread:self.thread uiDatabaseConnection:self.uiDatabaseConnection]; @@ -2423,8 +2422,6 @@ typedef enum : NSUInteger { OWSAssertDebug(conversationItem); OWSAssertDebug([conversationItem.interaction isKindOfClass:[TSMessage class]]); - [self.inputToolbar clearStickerKeyboard]; - LongTextViewController *viewController = [[LongTextViewController alloc] initWithViewItem:conversationItem]; viewController.delegate = self; [self.navigationController pushViewController:viewController animated:YES]; @@ -2437,8 +2434,6 @@ typedef enum : NSUInteger { OWSAssertDebug(conversationItem.contactShare); OWSAssertDebug([conversationItem.interaction isKindOfClass:[TSMessage class]]); - [self.inputToolbar clearStickerKeyboard]; - ContactViewController *view = [[ContactViewController alloc] initWithContactShare:conversationItem.contactShare]; [self.navigationController pushViewController:view animated:YES]; } @@ -2565,8 +2560,6 @@ typedef enum : NSUInteger { OWSAssertDebug(conversationItem); OWSAssertDebug([conversationItem.interaction isKindOfClass:[TSMessage class]]); - [self.inputToolbar clearStickerKeyboard]; - TSMessage *message = (TSMessage *)conversationItem.interaction; MessageDetailViewController *detailVC = [[MessageDetailViewController alloc] initWithViewItem:conversationItem @@ -2813,7 +2806,6 @@ typedef enum : NSUInteger { self.lastMessageSentDate = [NSDate new]; [self.conversationViewModel clearUnreadMessagesIndicator]; self.inputToolbar.quotedReply = nil; - [self.inputToolbar clearStickerKeyboard]; if (!Environment.shared.preferences.hasSentAMessage) { [Environment.shared.preferences setHasSentAMessage:YES]; From 8e88a2807cab611224ade2b4f6c387f809c4a1f1 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 3 May 2019 10:22:24 -0400 Subject: [PATCH 2/2] Remove completed TODO. --- .../ViewControllers/ConversationView/ConversationInputToolbar.m | 2 -- 1 file changed, 2 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m b/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m index d6cd34db13..18cc7e6df2 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m @@ -1032,8 +1032,6 @@ const CGFloat kMaxTextViewHeight = 98; OWSAssertIsOnMainThread(); self.isStickerKeyboardActive = NO; - // TODO: We may want to endEditingMessage, once we've reworked - // our usage of clearStickerKeyboard. } - (UIResponder *)desiredFirstResponder