From 9e1beaef3523607cba443a501bc73196afd06779 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Thu, 10 Aug 2023 15:08:16 +0200 Subject: [PATCH] Various fixes --- .../DrawingUI/Sources/DrawingView.swift | 1 + .../Sources/PremiumLimitsListScreen.swift | 7 +++- .../Sources/MediaEditorScreen.swift | 33 ++++++++++++------- .../Sources/StoryItemLoadingEffectView.swift | 6 +++- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/submodules/DrawingUI/Sources/DrawingView.swift b/submodules/DrawingUI/Sources/DrawingView.swift index 08fadf6f8b..b307ef90ac 100644 --- a/submodules/DrawingUI/Sources/DrawingView.swift +++ b/submodules/DrawingUI/Sources/DrawingView.swift @@ -398,6 +398,7 @@ public final class DrawingView: UIView, UIGestureRecognizerDelegate, UIPencilInt if let context = DrawingContext(size: image.size, scale: 1.0, opaque: false) { context.withFlippedContext { context in + context.clear(CGRect(origin: .zero, size: image.size)) if let cgImage = image.cgImage { context.draw(cgImage, in: CGRect(origin: .zero, size: image.size)) } diff --git a/submodules/PremiumUI/Sources/PremiumLimitsListScreen.swift b/submodules/PremiumUI/Sources/PremiumLimitsListScreen.swift index 02f870ac95..98c6d0042b 100644 --- a/submodules/PremiumUI/Sources/PremiumLimitsListScreen.swift +++ b/submodules/PremiumUI/Sources/PremiumLimitsListScreen.swift @@ -811,7 +811,12 @@ public class PremiumLimitsListScreen: ViewController { let bottomInset: CGFloat = layout.intrinsicInsets.bottom > 0.0 ? layout.intrinsicInsets.bottom + 5.0 : bottomPanelPadding let panelHeight: CGFloat = bottomPanelPadding + 50.0 + bottomInset + 28.0 - return layout.size.height - layout.size.width - 178.0 - panelHeight + var additionalInset: CGFloat = 0.0 + if let order = self.controller?.order, order.count == 1 { + additionalInset = 20.0 + } + + return layout.size.height - layout.size.width - 178.0 - panelHeight + additionalInset } else { return 210.0 } diff --git a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift index 1d44f65d87..ce8453558a 100644 --- a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift +++ b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift @@ -1851,7 +1851,22 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate } self.entitiesView.add(mediaEntity, announce: false) - + + let initialValues: MediaEditorValues? + if case let .draft(draft, _) = subject { + initialValues = draft.values + + for entity in draft.values.entities { + self.entitiesView.add(entity.entity, announce: false) + } + + if let drawingData = initialValues?.drawing?.pngData() { + self.drawingView.setup(withDrawing: drawingData) + } + } else { + initialValues = nil + } + if let entityView = self.entitiesView.getView(for: mediaEntity.uuid) as? DrawingMediaEntityView { self.entitiesView.sendSubviewToBack(entityView) entityView.previewView = self.previewView @@ -1863,18 +1878,14 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate self.mediaEditor?.setCrop(offset: positionDelta, scale: scaleDelta, rotation: rotationDelta, mirroring: false) } } + + if let initialValues { + mediaEntity.position = mediaEntity.position.offsetBy(dx: initialValues.cropOffset.x, dy: initialValues.cropOffset.y) + mediaEntity.rotation = mediaEntity.rotation + initialValues.cropRotation + mediaEntity.scale = mediaEntity.scale * initialValues.cropScale + } } - let initialValues: MediaEditorValues? - if case let .draft(draft, _) = subject { - initialValues = draft.values - - for entity in draft.values.entities { - entitiesView.add(entity.entity, announce: false) - } - } else { - initialValues = nil - } let mediaEditor = MediaEditor(subject: subject.editorSubject, values: initialValues, hasHistogram: true) if let initialVideoPosition = self.controller?.initialVideoPosition { mediaEditor.seek(initialVideoPosition, andPlay: true) diff --git a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemLoadingEffectView.swift b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemLoadingEffectView.swift index 7f32b7a753..c36392cc32 100644 --- a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemLoadingEffectView.swift +++ b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemLoadingEffectView.swift @@ -18,6 +18,8 @@ final class StoryItemLoadingEffectView: UIView { private let borderContainerView: UIView private let borderMaskLayer: SimpleShapeLayer + private var didPlayOnce = false + init(effectAlpha: CGFloat, duration: Double, hasBorder: Bool, playOnce: Bool) { self.hierarchyTrackingLayer = HierarchyTrackingLayer() @@ -89,7 +91,7 @@ final class StoryItemLoadingEffectView: UIView { } private func updateAnimations(size: CGSize) { - if self.backgroundView.layer.animation(forKey: "shimmer") != nil { + if self.backgroundView.layer.animation(forKey: "shimmer") != nil || (self.playOnce && self.didPlayOnce) { return } @@ -97,6 +99,8 @@ final class StoryItemLoadingEffectView: UIView { animation.repeatCount = self.playOnce ? 1 : Float.infinity self.backgroundView.layer.add(animation, forKey: "shimmer") self.borderGradientView.layer.add(animation, forKey: "shimmer") + + self.didPlayOnce = true } func update(size: CGSize, transition: Transition) {