From a47c3777e697c27358e36e8df608b41d98051f64 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Thu, 18 Feb 2021 01:47:34 +0400 Subject: [PATCH] Various Fixes --- .../Sources/TGMediaPickerCaptionInputPanel.m | 16 +----- .../Sources/TGPhotoEditorHUDView.h | 2 +- .../Sources/TGPhotoEditorHUDView.m | 51 ++++++++++++++++--- .../Sources/TGPhotoToolsController.m | 4 +- 4 files changed, 48 insertions(+), 25 deletions(-) diff --git a/submodules/LegacyComponents/Sources/TGMediaPickerCaptionInputPanel.m b/submodules/LegacyComponents/Sources/TGMediaPickerCaptionInputPanel.m index dbf7f8f746..fab9ac16ad 100644 --- a/submodules/LegacyComponents/Sources/TGMediaPickerCaptionInputPanel.m +++ b/submodules/LegacyComponents/Sources/TGMediaPickerCaptionInputPanel.m @@ -230,7 +230,7 @@ static void setViewFrame(UIView *view, CGRect frame) if (_inputField.internalTextView.isFirstResponder) [TGHacks applyCurrentKeyboardAutocorrectionVariant]; - NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithAttributedString:_inputField.text == nil ? [[NSAttributedString alloc] initWithString:@""] : _inputField.attributedText]; //[[NSMutableAttributedString alloc] initWithString:_inputField.text == nil ? @"" : _inputField.text]; + NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithAttributedString:_inputField.text == nil ? [[NSAttributedString alloc] initWithString:@""] : _inputField.attributedText]; NSMutableString *usualString = [text.string mutableCopy]; int textLength = (int)text.length; for (int i = 0; i < textLength; i++) @@ -247,21 +247,7 @@ static void setViewFrame(UIView *view, CGRect frame) else break; } - - for (int i = textLength - 1; i >= 0; i--) - { - unichar c = [usualString characterAtIndex:i]; - if (c == ' ' || c == '\t' || c == '\n') - { - [text deleteCharactersInRange:NSMakeRange(i, 1)]; - [usualString deleteCharactersInRange:NSMakeRange(i, 1)]; - textLength--; - } - else - break; - } - _inputField.internalTextView.attributedText = text; __autoreleasing NSArray *entities = nil; diff --git a/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.h b/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.h index 097b7fd84a..c22aac6f4d 100644 --- a/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.h +++ b/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.h @@ -3,6 +3,6 @@ @interface TGPhotoEditorHUDView : UIView - (void)setText:(NSString *)text; -- (void)setAttributedText:(NSAttributedString *)text; +- (void)setTitle:(NSString *)title value:(NSString *)value; @end diff --git a/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.m b/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.m index dc6bfce8a3..f8b7f74300 100644 --- a/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.m +++ b/submodules/LegacyComponents/Sources/TGPhotoEditorHUDView.m @@ -9,6 +9,7 @@ { UIImageView *_backgroundView; UILabel *_label; + UILabel *_valueLabel; } @end @@ -41,12 +42,37 @@ _backgroundView.image = background; [self addSubview:_backgroundView]; + UIFont *font; + + if (iosMajorVersion() >= 13) { + UIFontDescriptor *fontDescriptor = [UIFont systemFontOfSize:14.0f weight:UIFontWeightMedium].fontDescriptor; + NSArray *monospacedSetting = @[@{UIFontFeatureTypeIdentifierKey: @(kNumberSpacingType), + UIFontFeatureSelectorIdentifierKey: @(kMonospacedNumbersSelector)}]; + UIFontDescriptor *updatedDescriptor = [fontDescriptor fontDescriptorByAddingAttributes:@{ + UIFontDescriptorFeatureSettingsAttribute: monospacedSetting + }]; + if (updatedDescriptor != nil) { + font = [UIFont fontWithDescriptor:updatedDescriptor size:14.0]; + } else { + font = [UIFont systemFontOfSize:14]; + } + } else { + font = [UIFont systemFontOfSize:14]; + } + _label = [[UILabel alloc] initWithFrame:CGRectZero]; _label.backgroundColor = [UIColor clearColor]; - _label.font = TGSystemFontOfSize(14); - _label.textAlignment = NSTextAlignmentCenter; + _label.font = [UIFont systemFontOfSize:14]; + _label.textAlignment = NSTextAlignmentLeft; _label.textColor = [UIColor whiteColor]; [_backgroundView addSubview:_label]; + + _valueLabel = [[UILabel alloc] initWithFrame:CGRectZero]; + _valueLabel.backgroundColor = [UIColor clearColor]; + _valueLabel.font = font; + _valueLabel.textAlignment = NSTextAlignmentRight; + _valueLabel.textColor = [TGPhotoEditorInterfaceAssets accentColor]; + [_backgroundView addSubview:_valueLabel]; } return self; } @@ -62,22 +88,27 @@ _label.text = text; [_label sizeToFit]; + _valueLabel.hidden = true; + [self setNeedsLayout]; [self setHidden:false animated:true]; } -- (void)setAttributedText:(NSAttributedString *)text +- (void)setTitle:(NSString *)title value:(NSString *)value { - if (text.length == 0) + if (title.length == 0) { [self setHidden:true animated:true]; return; } - _label.attributedText = text; + _label.text = title; [_label sizeToFit]; + _valueLabel.text = value; + [_valueLabel sizeToFit]; + [self setNeedsLayout]; [self setHidden:false animated:true]; @@ -104,7 +135,15 @@ _label.frame = CGRectMake(padding, 6.0f, CGCeil(_label.frame.size.width), CGCeil(_label.frame.size.height)); - CGFloat width = _label.frame.size.width + 2.0f * padding; + CGFloat width; + if (_valueLabel.isHidden) { + width = _label.frame.size.width + 2.0f * padding; + } else { + width = 2.0f * padding + _label.frame.size.width + 50.0f + 3.0f; + } + + _valueLabel.frame = CGRectMake(width - padding - 50.0f, 6.0f, 50.0f, CGCeil(_valueLabel.frame.size.height)); + _backgroundView.frame = CGRectMake((self.frame.size.width - width) / 2, 15, width, 30); } diff --git a/submodules/LegacyComponents/Sources/TGPhotoToolsController.m b/submodules/LegacyComponents/Sources/TGPhotoToolsController.m index ab13e98dd0..ac04824727 100644 --- a/submodules/LegacyComponents/Sources/TGPhotoToolsController.m +++ b/submodules/LegacyComponents/Sources/TGPhotoToolsController.m @@ -336,9 +336,7 @@ const CGFloat TGPhotoEditorToolsLandscapePanelSize = TGPhotoEditorToolsPanelSize return; } - NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ %@", tool.title, [tool stringValue:true]] attributes:@{NSFontAttributeName: TGMediumSystemFontOfSize(14.0f), NSForegroundColorAttributeName: [TGPhotoEditorInterfaceAssets accentColor]}]; - [text addAttributes:@{NSFontAttributeName: TGSystemFontOfSize(14.0f), NSForegroundColorAttributeName: [UIColor whiteColor]} range:NSMakeRange(0, tool.title.length)]; - [_hudView setAttributedText:text]; + [_hudView setTitle:tool.title value:[tool stringValue:true]]; } #pragma mark - Transition