diff --git a/LegacyComponents/TGMenuSheetButtonItemView.h b/LegacyComponents/TGMenuSheetButtonItemView.h index c232b2171f..148fd70f1f 100644 --- a/LegacyComponents/TGMenuSheetButtonItemView.h +++ b/LegacyComponents/TGMenuSheetButtonItemView.h @@ -22,6 +22,8 @@ typedef enum - (instancetype)initWithTitle:(NSString *)title type:(TGMenuSheetButtonType)type action:(void (^)(void))action; +- (void)setCollapsed:(bool)collapsed animated:(bool)animated; + @end extern const CGFloat TGMenuSheetButtonItemViewHeight; diff --git a/LegacyComponents/TGMenuSheetButtonItemView.m b/LegacyComponents/TGMenuSheetButtonItemView.m index b737ba76fb..bf6ddfbf4f 100644 --- a/LegacyComponents/TGMenuSheetButtonItemView.m +++ b/LegacyComponents/TGMenuSheetButtonItemView.m @@ -13,6 +13,7 @@ const CGFloat TGMenuSheetButtonItemViewHeight = 57.0f; @interface TGMenuSheetButtonItemView () { + bool _collapsed; bool _dark; bool _requiresDivider; @@ -121,9 +122,16 @@ const CGFloat TGMenuSheetButtonItemViewHeight = 57.0f; [_button setTitleColor:(type == TGMenuSheetButtonTypeDestructive) ? destructiveColor : accentColor]; } +- (void)setCollapsed:(bool)collapsed animated:(bool)animated +{ + _collapsed = collapsed; + [self _updateHeightAnimated:animated]; +} + - (CGFloat)preferredHeightForWidth:(CGFloat)__unused width screenHeight:(CGFloat)__unused screenHeight { - return TGMenuSheetButtonItemViewHeight; + _button.alpha = _collapsed ? 0.0f : 1.0f; + return _collapsed ? 0.0f : TGMenuSheetButtonItemViewHeight; } - (bool)requiresDivider diff --git a/LegacyComponents/TGMessage.mm b/LegacyComponents/TGMessage.mm index 86e7fdaf13..d480477a9f 100644 --- a/LegacyComponents/TGMessage.mm +++ b/LegacyComponents/TGMessage.mm @@ -367,7 +367,7 @@ typedef enum { + (NSArray *)textCheckingResultsForText:(NSString *)text highlightMentionsAndTags:(bool)highlightMentionsAndTags highlightCommands:(bool)highlightCommands entities:(NSArray *)entities highlightAsExternalMentionsAndHashtags:(bool)highlightAsExternalMentionsAndHashtags { - if (entities != nil || true) { + if (entities != nil) { NSMutableArray *textCheckingResults = [[NSMutableArray alloc] init]; bool hasPhoneEntities = false; @@ -451,7 +451,7 @@ typedef enum { NSError *error = nil; static NSDataDetector *dataDetector = nil; if (dataDetector == nil) - dataDetector = [NSDataDetector dataDetectorWithTypes:(int)(NSTextCheckingTypePhoneNumber | NSTextCheckingTypeDate) error:&error]; + dataDetector = [NSDataDetector dataDetectorWithTypes:(int)(NSTextCheckingTypePhoneNumber) error:&error]; [dataDetector enumerateMatchesInString:text options:0 range:NSMakeRange(0, text.length) usingBlock:^(NSTextCheckingResult *match, __unused NSMatchingFlags flags, __unused BOOL *stop) { NSTextCheckingType type = [match resultType]; @@ -459,10 +459,6 @@ typedef enum { { [textCheckingResults addObject:match]; } - if (type == NSTextCheckingTypeDate) - { - [textCheckingResults addObject:match]; - } }]; } } @@ -834,7 +830,7 @@ typedef enum { if (legacyTextCheckingResults.count > 0) return legacyTextCheckingResults; - if (_mediaAttachments.count != 0 || true) { + if (_mediaAttachments.count != 0) { bool hasPhoneEntities = false; for (TGMediaAttachment *attachment in _mediaAttachments) { diff --git a/LegacyComponents/TGViewController.h b/LegacyComponents/TGViewController.h index 600d586d61..e03b77f509 100644 --- a/LegacyComponents/TGViewController.h +++ b/LegacyComponents/TGViewController.h @@ -134,6 +134,7 @@ typedef enum { - (void)setLeftBarButtonItem:(UIBarButtonItem *)leftBarButtonItem animated:(BOOL)animated; - (void)setRightBarButtonItem:(UIBarButtonItem *)rightBarButtonItem; - (void)setRightBarButtonItem:(UIBarButtonItem *)rightBarButtonItem animated:(BOOL)animated; +- (void)setRightBarButtonItems:(NSArray *)rightBarButtonItems animated:(BOOL)animated; - (void)setTitleText:(NSString *)titleText; - (void)setTitleView:(UIView *)titleView; diff --git a/LegacyComponents/TGViewController.mm b/LegacyComponents/TGViewController.mm index 870da752ba..44393b843f 100644 --- a/LegacyComponents/TGViewController.mm +++ b/LegacyComponents/TGViewController.mm @@ -131,7 +131,7 @@ static std::set autorotationLockIds; @property (nonatomic, weak) UIViewController *targetNavigationTitleController; @property (nonatomic, strong) UIBarButtonItem *leftBarButtonItem; -@property (nonatomic, strong) UIBarButtonItem *rightBarButtonItem; +@property (nonatomic, strong) NSArray *rightBarButtonItems; @property (nonatomic, strong) NSString *titleText; @property (nonatomic, strong) UIView *titleView; @@ -1337,8 +1337,8 @@ static id _defaultContext = nil; if (targetNavigationItem != nil && updated) { [[self _currentNavigationItem] setLeftBarButtonItem:_leftBarButtonItem animated:false]; - [self _setRightBarButtonItem:_rightBarButtonItem animated:false]; - [[self _currentNavigationItem] setRightBarButtonItem:_rightBarButtonItem animated:false]; + [self _setRightBarButtonItems:_rightBarButtonItems animated:false]; + [[self _currentNavigationItem] setRightBarButtonItems:_rightBarButtonItems animated:false]; [[self _currentNavigationItem] setTitle:_titleText]; [[self _currentTitleController] setTitle:_titleText]; [[self _currentNavigationItem] setTitleView:_titleView]; @@ -1373,25 +1373,43 @@ static id _defaultContext = nil; - (void)setRightBarButtonItem:(UIBarButtonItem *)rightBarButtonItem animated:(BOOL)animated { - _rightBarButtonItem = rightBarButtonItem; + NSMutableArray *items = [[NSMutableArray alloc] init]; + if (rightBarButtonItem != nil) + [items addObject:rightBarButtonItem]; - [self _setRightBarButtonItem:rightBarButtonItem animated:animated]; + _rightBarButtonItems = items; + [self _setRightBarButtonItems:items animated:animated]; } -- (void)_setRightBarButtonItem:(UIBarButtonItem *)rightBarButtonItem animated:(BOOL)animated +- (void)setRightBarButtonItems:(NSArray *)rightBarButtonItems animated:(BOOL)animated { + _rightBarButtonItems = rightBarButtonItems; + + [self _setRightBarButtonItems:rightBarButtonItems animated:animated]; +} + +- (void)_setRightBarButtonItems:(NSArray *)rightBarButtonItems animated:(BOOL)animated { - if (iosMajorVersion() >= 11 && !TGIsPad() && rightBarButtonItem.customView != nil) + if (rightBarButtonItems.count < 2) { - UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; - spacer.width = 8.0f; - [[self _currentNavigationItem] setRightBarButtonItem:nil animated:false]; - [[self _currentNavigationItem] setRightBarButtonItems:@[spacer, rightBarButtonItem] animated:animated]; + UIBarButtonItem *rightBarButtonItem = rightBarButtonItems.firstObject; + if (iosMajorVersion() >= 11 && !TGIsPad() && rightBarButtonItem.customView != nil) + { + UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; + spacer.width = 8.0f; + [[self _currentNavigationItem] setRightBarButtonItem:nil animated:false]; + [[self _currentNavigationItem] setRightBarButtonItems:@[spacer, rightBarButtonItem] animated:animated]; + } + else + { + if (iosMajorVersion() >= 11 && !TGIsPad()) + [[self _currentNavigationItem] setRightBarButtonItems:nil animated:false]; + [[self _currentNavigationItem] setRightBarButtonItem:rightBarButtonItem animated:animated]; + } } else { - if (iosMajorVersion() >= 11 && !TGIsPad()) - [[self _currentNavigationItem] setRightBarButtonItems:nil animated:false]; - [[self _currentNavigationItem] setRightBarButtonItem:rightBarButtonItem animated:animated]; + [[self _currentNavigationItem] setRightBarButtonItem:nil animated:false]; + [[self _currentNavigationItem] setRightBarButtonItems:rightBarButtonItems animated:false]; } }