mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix gift story editing
This commit is contained in:
parent
ed12e35f18
commit
3ac9d2d9a4
@ -345,7 +345,11 @@ public class DrawingStickerEntityView: DrawingEntityView {
|
||||
} else {
|
||||
imageView = UIImageView()
|
||||
imageView.contentMode = .scaleAspectFit
|
||||
self.addSubview(imageView)
|
||||
if let _ = self.animationNode {
|
||||
self.insertSubview(imageView, at: 0)
|
||||
} else {
|
||||
self.addSubview(imageView)
|
||||
}
|
||||
self.animatedImageView = imageView
|
||||
}
|
||||
imageView.image = image
|
||||
@ -754,11 +758,16 @@ public class DrawingStickerEntityView: DrawingEntityView {
|
||||
|
||||
self.updateAnimationColor()
|
||||
|
||||
if case .message = self.stickerEntity.content, self.animatedImageView == nil {
|
||||
let image = self.isNightTheme ? self.stickerEntity.secondaryRenderImage : self.stickerEntity.renderImage
|
||||
if let image {
|
||||
self.setupWithImage(image)
|
||||
switch self.stickerEntity.content {
|
||||
case .message, .gift:
|
||||
if self.animatedImageView == nil {
|
||||
let image = self.isNightTheme ? self.stickerEntity.secondaryRenderImage : self.stickerEntity.renderImage
|
||||
if let image {
|
||||
self.setupWithImage(image)
|
||||
}
|
||||
}
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
||||
self.updateMirroring(animated: animated)
|
||||
|
@ -31,8 +31,13 @@ extension MediaEditorScreenImpl {
|
||||
let filteredEntities = self.node.entitiesView.entities.filter { entity in
|
||||
if entity is DrawingMediaEntity {
|
||||
return false
|
||||
} else if let entity = entity as? DrawingStickerEntity, case .message = entity.content {
|
||||
return false
|
||||
} else if let entity = entity as? DrawingStickerEntity {
|
||||
switch entity.content {
|
||||
case .message, .gift:
|
||||
return false
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
@ -46,6 +51,8 @@ extension MediaEditorScreenImpl {
|
||||
return false
|
||||
} else if case .message = subject, !filteredValues.hasChanges && filteredEntities.isEmpty && caption.string.isEmpty {
|
||||
return false
|
||||
} else if case .gift = subject, !filteredValues.hasChanges && filteredEntities.isEmpty && caption.string.isEmpty {
|
||||
return false
|
||||
} else if case .empty = subject, !self.node.hasAnyChanges && !self.node.drawingView.internalState.canUndo {
|
||||
return false
|
||||
} else if case .videoCollage = subject {
|
||||
|
@ -3151,9 +3151,15 @@ public final class MediaEditorScreenImpl: ViewController, MediaEditorScreen, UID
|
||||
var effectiveSubject = subject
|
||||
if case let .draft(draft, _ ) = subject {
|
||||
for entity in draft.values.entities {
|
||||
if case let .sticker(sticker) = entity, case let .message(ids, _, _, _, _) = sticker.content {
|
||||
effectiveSubject = .message(ids)
|
||||
break
|
||||
if case let .sticker(sticker) = entity {
|
||||
switch sticker.content {
|
||||
case let .message(ids, _, _, _, _):
|
||||
effectiveSubject = .message(ids)
|
||||
case let .gift(gift, _):
|
||||
effectiveSubject = .gift(gift)
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3173,11 +3179,7 @@ public final class MediaEditorScreenImpl: ViewController, MediaEditorScreen, UID
|
||||
case .image, .video:
|
||||
isSavingAvailable = !controller.isEmbeddedEditor
|
||||
isFromCamera = true
|
||||
case .draft:
|
||||
isSavingAvailable = true
|
||||
case .message:
|
||||
isSavingAvailable = true
|
||||
case .gift:
|
||||
case .draft, .message,. gift:
|
||||
isSavingAvailable = true
|
||||
default:
|
||||
isSavingAvailable = false
|
||||
@ -3454,11 +3456,14 @@ public final class MediaEditorScreenImpl: ViewController, MediaEditorScreen, UID
|
||||
let renderer = DrawingMessageRenderer(context: self.context, messages: messages, parentView: self.view, isGift: isGift, wallpaperDayColor: wallpaperColors.0, wallpaperNightColor: wallpaperColors.1)
|
||||
renderer.render(completion: { result in
|
||||
if case .draft = subject, let existingEntityView = self.entitiesView.getView(where: { entityView in
|
||||
if let stickerEntityView = entityView as? DrawingStickerEntityView, case .message = (stickerEntityView.entity as! DrawingStickerEntity).content {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
if let stickerEntityView = entityView as? DrawingStickerEntityView {
|
||||
if case .message = (stickerEntityView.entity as! DrawingStickerEntity).content {
|
||||
return true
|
||||
} else if case .gift = (stickerEntityView.entity as! DrawingStickerEntity).content {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}) as? DrawingStickerEntityView {
|
||||
existingEntityView.isNightTheme = isNightTheme
|
||||
let messageEntity = existingEntityView.entity as! DrawingStickerEntity
|
||||
@ -6416,7 +6421,7 @@ public final class MediaEditorScreenImpl: ViewController, MediaEditorScreen, UID
|
||||
}
|
||||
|
||||
fileprivate func checkPostingAvailability() {
|
||||
guard self.postingAvailabilityDisposable == nil else {
|
||||
guard self.postingAvailabilityDisposable == nil && !self.isEditingStory else {
|
||||
return
|
||||
}
|
||||
self.postingAvailabilityDisposable = (self.postingAvailabilityPromise.get()
|
||||
|
Loading…
x
Reference in New Issue
Block a user