mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Various improvements
This commit is contained in:
@@ -67,7 +67,9 @@ final class StickerPackPreviewGridItemNode: GridItemNode {
|
||||
private var animationNode: AnimatedStickerNode?
|
||||
private var placeholderNode: StickerShimmerEffectNode
|
||||
|
||||
private var lockBackground: UIImageView?
|
||||
private var lockBackground: UIVisualEffectView?
|
||||
private var lockTintView: UIView?
|
||||
private var lockIconNode: ASImageNode?
|
||||
|
||||
private var theme: PresentationTheme?
|
||||
|
||||
@@ -167,21 +169,43 @@ final class StickerPackPreviewGridItemNode: GridItemNode {
|
||||
self.isLocked = isLocked
|
||||
|
||||
if isLocked {
|
||||
let lockBackground: UIImageView
|
||||
if let currentBackground = self.lockBackground {
|
||||
let lockBackground: UIVisualEffectView
|
||||
let lockIconNode: ASImageNode
|
||||
if let currentBackground = self.lockBackground, let currentIcon = self.lockIconNode {
|
||||
lockBackground = currentBackground
|
||||
lockIconNode = currentIcon
|
||||
} else {
|
||||
lockBackground = UIImageView()
|
||||
let effect: UIBlurEffect
|
||||
if #available(iOS 10.0, *) {
|
||||
effect = UIBlurEffect(style: .regular)
|
||||
} else {
|
||||
effect = UIBlurEffect(style: .light)
|
||||
}
|
||||
lockBackground = UIVisualEffectView(effect: effect)
|
||||
lockBackground.clipsToBounds = true
|
||||
lockBackground.isUserInteractionEnabled = false
|
||||
lockBackground.image = PresentationResourcesChat.chatInputMediaStickerGridPremiumIcon(theme)
|
||||
lockIconNode = ASImageNode()
|
||||
lockIconNode.displaysAsynchronously = false
|
||||
lockIconNode.image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Stickers/Lock"), color: .white)
|
||||
|
||||
let lockTintView = UIView()
|
||||
lockTintView.backgroundColor = UIColor(rgb: 0x000000, alpha: 0.15)
|
||||
lockBackground.contentView.addSubview(lockTintView)
|
||||
|
||||
self.lockBackground = lockBackground
|
||||
self.lockTintView = lockTintView
|
||||
self.lockIconNode = lockIconNode
|
||||
|
||||
self.view.addSubview(lockBackground)
|
||||
self.addSubnode(lockIconNode)
|
||||
}
|
||||
} else if let lockBackground = self.lockBackground {
|
||||
} else if let lockBackground = self.lockBackground, let lockTintView = self.lockTintView, let lockIconNode = self.lockIconNode {
|
||||
self.lockBackground = nil
|
||||
self.lockTintView = nil
|
||||
self.lockIconNode = nil
|
||||
lockBackground.removeFromSuperview()
|
||||
lockTintView.removeFromSuperview()
|
||||
lockIconNode.removeFromSupernode()
|
||||
}
|
||||
|
||||
if let stickerItem = stickerItem {
|
||||
@@ -290,10 +314,18 @@ final class StickerPackPreviewGridItemNode: GridItemNode {
|
||||
self.placeholderNode.update(backgroundColor: theme.list.itemBlocksBackgroundColor, foregroundColor: theme.list.mediaPlaceholderColor, shimmeringColor: theme.list.itemBlocksBackgroundColor.withAlphaComponent(0.4), data: item.file.immediateThumbnailData, size: placeholderFrame.size)
|
||||
}
|
||||
|
||||
if let lockBackground = self.lockBackground {
|
||||
let lockSize = CGSize(width: 32.0, height: 32.0)
|
||||
if let lockBackground = self.lockBackground, let lockTintView = self.lockTintView, let lockIconNode = self.lockIconNode {
|
||||
let lockSize = CGSize(width: 30.0, height: 30.0)
|
||||
let lockBackgroundFrame = CGRect(origin: CGPoint(x: floorToScreenPixels((bounds.width - lockSize.width) / 2.0), y: bounds.height - lockSize.height - 6.0), size: lockSize)
|
||||
lockBackground.frame = lockBackgroundFrame
|
||||
lockBackground.layer.cornerRadius = lockSize.width / 2.0
|
||||
if #available(iOS 13.0, *) {
|
||||
lockBackground.layer.cornerCurve = .circular
|
||||
}
|
||||
lockTintView.frame = CGRect(origin: CGPoint(), size: lockBackgroundFrame.size)
|
||||
if let icon = lockIconNode.image {
|
||||
lockIconNode.frame = CGRect(origin: CGPoint(x: lockBackgroundFrame.minX + floorToScreenPixels((lockBackgroundFrame.width - icon.size.width) / 2.0), y: lockBackgroundFrame.minY + floorToScreenPixels((lockBackgroundFrame.height - icon.size.height) / 2.0)), size: icon.size)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ public final class StickerPreviewPeekContentNode: ASDisplayNode, PeekControllerC
|
||||
}
|
||||
|
||||
if let dimensitons = self.item.file.dimensions {
|
||||
let textSpacing: CGFloat = 10.0
|
||||
let textSpacing: CGFloat = 50.0
|
||||
let textSize = self.textNode.measure(CGSize(width: 100.0, height: 100.0))
|
||||
|
||||
let imageSize = dimensitons.cgSize.aspectFitted(boundingSize)
|
||||
|
||||
Reference in New Issue
Block a user