Various Fixes

This commit is contained in:
Ilya Laktyushin 2021-07-27 17:14:36 +03:00
parent 9413744c4a
commit f0f340fdc5
4 changed files with 80 additions and 6 deletions

View File

@ -6,6 +6,12 @@
@end
@interface TGCameraSmallFlipButton : TGModernButton
- (void)setHidden:(bool)hidden animated:(bool)animated;
@end
@interface TGCameraCancelButton : TGModernButton
- (void)setHidden:(bool)hidden animated:(bool)animated;

View File

@ -455,7 +455,9 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus
}
[_autorotationCorrectionView addSubview:_interfaceView];
[_autorotationCorrectionView addSubview:_cornersView];
if ((int)self.view.frame.size.width > 320 || [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
[_autorotationCorrectionView addSubview:_cornersView];
}
_photoSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
_photoSwipeGestureRecognizer.delegate = self;
@ -2660,6 +2662,8 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus
default:
{
if (widescreenWidth == 926.0f)
return CGRectMake(0, 154, screenSize.width, screenSize.height - 154 - 249);
if (widescreenWidth == 896.0f)
return CGRectMake(0, 121, screenSize.width, screenSize.height - 121 - 223);
else if (widescreenWidth == 844.0f)

View File

@ -64,6 +64,53 @@
@end
@implementation TGCameraSmallFlipButton
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self != nil)
{
self.exclusiveTouch = true;
UIImage *image = TGTintedImage(TGComponentsImageNamed(@"CameraFlipButton"), [UIColor whiteColor]);
[self setImage:image forState:UIControlStateNormal];
}
return self;
}
- (void)setHidden:(BOOL)hidden
{
self.alpha = hidden ? 0.0f : 1.0f;
super.hidden = hidden;
}
- (void)setHidden:(bool)hidden animated:(bool)animated
{
if (animated)
{
super.hidden = false;
self.userInteractionEnabled = false;
[UIView animateWithDuration:0.25f animations:^
{
self.alpha = hidden ? 0.0f : 1.0f;
} completion:^(BOOL finished)
{
self.userInteractionEnabled = true;
if (finished)
self.hidden = hidden;
}];
}
else
{
self.alpha = hidden ? 0.0f : 1.0f;
super.hidden = hidden;
}
}
@end
@implementation TGCameraCancelButton

View File

@ -64,7 +64,8 @@
UIView *_videoLandscapePanelView;
TGCameraFlashControl *_flashControl;
TGCameraFlashActiveView *_flashActiveView;
TGCameraSmallFlipButton *_topFlipButton;
bool _hasResults;
@ -295,6 +296,11 @@
_flashControl = [[TGCameraFlashControl alloc] initWithFrame:CGRectMake(3.0, 0, TGCameraFlashControlHeight, TGCameraFlashControlHeight)];
[_topPanelView addSubview:_flashControl];
_topFlipButton = [[TGCameraSmallFlipButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
_topFlipButton.hidden = true;
[_topFlipButton addTarget:self action:@selector(flipButtonPressed) forControlEvents:UIControlEventTouchUpInside];
[_topPanelView addSubview:_topFlipButton];
_timecodeView = [[TGCameraTimeCodeView alloc] initWithFrame:CGRectMake((frame.size.width - 120) / 2, 12, 120, 28)];
_timecodeView.alpha = 0.0;
_timecodeView.requestedRecordingDuration = ^NSTimeInterval
@ -394,13 +400,15 @@
if (results.count == 0)
{
_hasResults = false;
_topFlipButton.hidden = true;
_flipButton.hidden = false;
_doneButton.hidden = true;
}
else
{
_hasResults = true;
_flipButton.hidden = false;
_topFlipButton.hidden = _modeControl.cameraMode == PGCameraModePhotoScan;
_flipButton.hidden = true;
_doneButton.hidden = false;
if (_modeControl.cameraMode == PGCameraModePhotoScan) {
_modeControl.hidden = true;
@ -585,7 +593,8 @@
_modeControl.hidden = false;
_cancelButton.hidden = false;
_flashControl.hidden = false;
_flipButton.hidden = false;
_flipButton.hidden = hasDoneButton;
_topFlipButton.hidden = !hasDoneButton;
_bottomPanelBackgroundView.hidden = false;
}
@ -601,6 +610,7 @@
_cancelButton.alpha = alpha;
_flashControl.alpha = alpha;
_flipButton.alpha = alpha;
_topFlipButton.alpha = alpha;
_bottomPanelBackgroundView.alpha = alpha;
if (hasDoneButton)
@ -612,7 +622,8 @@
_modeControl.hidden = hidden;
_cancelButton.hidden = hidden;
_flashControl.hidden = hidden;
_flipButton.hidden = hidden;
_flipButton.hidden = hidden || hasDoneButton;
_topFlipButton.hidden = hidden || !hasDoneButton;
_bottomPanelBackgroundView.hidden = hidden;
if (hasDoneButton)
@ -631,8 +642,10 @@
_cancelButton.alpha = alpha;
_flashControl.hidden = hidden;
_flashControl.alpha = alpha;
_flipButton.hidden = hidden;
_flipButton.hidden = hidden || hasDoneButton;
_flipButton.alpha = alpha;
_topFlipButton.hidden = hidden || !hasDoneButton;
_topFlipButton.alpha = alpha;
_bottomPanelBackgroundView.hidden = hidden;
_bottomPanelBackgroundView.alpha = alpha;
@ -675,6 +688,7 @@
_zoomModeView.interfaceOrientation = orientation;
_timecodeView.interfaceOrientation = orientation;
_zoomWheelView.interfaceOrientation = orientation;
_topFlipButton.transform = CGAffineTransformMakeRotation(TGRotationForInterfaceOrientation(orientation));
} completion:^(__unused BOOL finished)
{
if (_modeControl.cameraMode == PGCameraModeVideo)
@ -706,6 +720,7 @@
_zoomModeView.interfaceOrientation = orientation;
_timecodeView.interfaceOrientation = orientation;
_zoomWheelView.interfaceOrientation = orientation;
_topFlipButton.transform = CGAffineTransformMakeRotation(TGRotationForInterfaceOrientation(orientation));
[self _layoutTopPanelSubviewsForInterfaceOrientation:orientation];
}
@ -799,6 +814,8 @@
_flipButton.frame = CGRectMake(self.frame.size.width - _flipButton.frame.size.width - 20.0f, round(_shutterButton.center.y - _flipButton.frame.size.height / 2.0f), _flipButton.frame.size.width, _flipButton.frame.size.height);
_topFlipButton.frame = CGRectMake(self.frame.size.width - _topFlipButton.frame.size.width - 4.0f, 0.0f, _topFlipButton.frame.size.width, _topFlipButton.frame.size.height);
_toastView.frame = CGRectMake(0, self.frame.size.height - _bottomPanelHeight - _bottomPanelOffset - 32 - 16, self.frame.size.width, 32);
CGFloat photosViewSize = TGPhotoThumbnailSizeForCurrentScreen().height + 4 * 2;