save a few ms on send, hoist async dispatch to caller, and use it for clearing draft

pull/1/head
Michael Kirk 7 years ago
parent 6764d3e754
commit f51416b2d2

@ -222,17 +222,11 @@ const CGFloat kMaxTextViewHeight = 98;
// Momentarily switch to a non-default keyboard, else reloadInputViews
// will not affect the displayed keyboard. In practice this isn't perceptable to the user.
// The alternative would be to dismiss-and-pop the keyboard, but that can cause a more pronounced animation.
//
// This is surprisingly expensive (~5ms), so we do it async, *after* the message is rendered.
dispatch_async(dispatch_get_main_queue(), ^{
[BenchManager benchWithTitle:@"toggleDefaultKeyboard" block:^{
self.inputTextView.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
[self.inputTextView reloadInputViews];
self.inputTextView.keyboardType = UIKeyboardTypeDefault;
[self.inputTextView reloadInputViews];
}];
});
}
- (void)setQuotedReply:(nullable OWSQuotedReplyModel *)quotedReply

@ -3898,10 +3898,21 @@ typedef enum : NSUInteger {
[self messageWasSent:message];
dispatch_async(dispatch_get_main_queue(), ^{
[BenchManager benchWithTitle:@"toggleDefaultKeyboard"
block:^{
if (updateKeyboardState) {
[self.inputToolbar toggleDefaultKeyboard];
}
}];
[BenchManager benchWithTitle:@"clearTextMessageAnimated"
block:^{
[self.inputToolbar clearTextMessageAnimated:YES];
}];
});
[self clearDraft];
if (didAddToProfileWhitelist) {
[self.conversationViewModel ensureDynamicInteractions];

Loading…
Cancel
Save