mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
Various fixes
This commit is contained in:
parent
b33d7888b8
commit
452a45d71d
@ -260,7 +260,6 @@ public class ItemListInviteRequestItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
|
|
||||||
strongSelf.isExtracted = isExtracted
|
strongSelf.isExtracted = isExtracted
|
||||||
|
|
||||||
let inset: CGFloat = 0.0
|
|
||||||
if isExtracted {
|
if isExtracted {
|
||||||
strongSelf.contextSourceNode.contentNode.customHitTest = { [weak self] point in
|
strongSelf.contextSourceNode.contentNode.customHitTest = { [weak self] point in
|
||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
@ -432,7 +431,7 @@ public class ItemListInviteRequestItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
alphaTransition.updateAlpha(node: strongSelf.dismissButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
|
alphaTransition.updateAlpha(node: strongSelf.dismissButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
|
||||||
|
|
||||||
let offsetInitialSublayerTransform = strongSelf.offsetContainerNode.layer.sublayerTransform
|
let offsetInitialSublayerTransform = strongSelf.offsetContainerNode.layer.sublayerTransform
|
||||||
strongSelf.offsetContainerNode.layer.sublayerTransform = CATransform3DMakeTranslation(isExtracted ? -48.0 : 0.0, isExtracted ? extractedVerticalOffset : 0.0, 0.0)
|
strongSelf.offsetContainerNode.layer.sublayerTransform = CATransform3DMakeTranslation(isExtracted ? -64.0 : 0.0, isExtracted ? extractedVerticalOffset : 0.0, 0.0)
|
||||||
|
|
||||||
let initialExtractedBackgroundPosition = strongSelf.extractedBackgroundImageNode.position
|
let initialExtractedBackgroundPosition = strongSelf.extractedBackgroundImageNode.position
|
||||||
strongSelf.extractedBackgroundImageNode.layer.position = rect.center
|
strongSelf.extractedBackgroundImageNode.layer.position = rect.center
|
||||||
@ -464,17 +463,27 @@ public class ItemListInviteRequestItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
if isExtracted {
|
if isExtracted {
|
||||||
strongSelf.extractedBackgroundImageNode.alpha = 1.0
|
strongSelf.extractedBackgroundImageNode.alpha = 1.0
|
||||||
strongSelf.extractedBackgroundImageNode.image = generateStretchableFilledCircleImage(diameter: backgroundCornerRadius * 2.0, color: item.presentationData.theme.list.itemBlocksBackgroundColor)
|
strongSelf.extractedBackgroundImageNode.image = generateStretchableFilledCircleImage(diameter: backgroundCornerRadius * 2.0, color: item.presentationData.theme.list.itemBlocksBackgroundColor)
|
||||||
|
strongSelf.extractedBackgroundImageNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, delay: 0.1, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue)
|
||||||
|
} else {
|
||||||
|
strongSelf.extractedBackgroundImageNode.alpha = 0.0
|
||||||
|
strongSelf.extractedBackgroundImageNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, delay: 0.0, timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, removeOnCompletion: false, completion: { [weak self] _ in
|
||||||
|
if let strongSelf = self {
|
||||||
|
strongSelf.extractedBackgroundImageNode.image = nil
|
||||||
|
strongSelf.extractedBackgroundImageNode.layer.removeAllAnimations()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
transition.updateFrame(node: strongSelf.extractedBackgroundImageNode, frame: CGRect(origin: CGPoint(), size: rect.size))
|
transition.updateFrame(node: strongSelf.extractedBackgroundImageNode, frame: CGRect(origin: CGPoint(), size: rect.size))
|
||||||
|
|
||||||
transition.updateAlpha(node: strongSelf.subtitleNode, alpha: isExtracted ? 0.0 : 1.0)
|
transition.updateAlpha(node: strongSelf.subtitleNode, alpha: isExtracted ? 0.0 : 1.0)
|
||||||
transition.updateAlpha(node: strongSelf.expandedSubtitleNode, alpha: isExtracted ? 1.0 : 0.0)
|
transition.updateAlpha(node: strongSelf.expandedSubtitleNode, alpha: isExtracted ? 1.0 : 0.0)
|
||||||
|
transition.updateAlpha(node: strongSelf.dateNode, alpha: isExtracted ? 0.0 : 1.0)
|
||||||
|
|
||||||
transition.updateAlpha(node: strongSelf.addButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
|
transition.updateAlpha(node: strongSelf.addButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
|
||||||
transition.updateAlpha(node: strongSelf.dismissButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
|
transition.updateAlpha(node: strongSelf.dismissButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
|
||||||
|
|
||||||
transition.updateSublayerTransformOffset(layer: strongSelf.offsetContainerNode.layer, offset: CGPoint(x: isExtracted ? inset : 0.0, y: isExtracted ? extractedVerticalOffset : 0.0))
|
transition.updateSublayerTransformOffset(layer: strongSelf.offsetContainerNode.layer, offset: CGPoint(x: isExtracted ? -16.0 : 0.0, y: 0.0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -500,21 +509,25 @@ public class ItemListInviteRequestItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
|
|
||||||
var titleText: String
|
var titleText: String
|
||||||
var subtitleText: String
|
var subtitleText: String
|
||||||
|
var expandedSubtitleText: String
|
||||||
var dateText: String
|
var dateText: String
|
||||||
|
|
||||||
if let importer = item.importer, let peer = importer.peer.peer.flatMap({ EnginePeer($0) }) {
|
if let importer = item.importer, let peer = importer.peer.peer.flatMap({ EnginePeer($0) }) {
|
||||||
titleText = peer.displayTitle(strings: item.presentationData.strings, displayOrder: item.nameDisplayOrder)
|
titleText = peer.displayTitle(strings: item.presentationData.strings, displayOrder: item.nameDisplayOrder)
|
||||||
subtitleText = importer.about ?? ""
|
subtitleText = importer.about ?? ""
|
||||||
|
expandedSubtitleText = importer.about ?? " "
|
||||||
let timestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970)
|
let timestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970)
|
||||||
dateText = stringForRelativeTimestamp(strings: item.presentationData.strings, relativeTimestamp: importer.date, relativeTo: timestamp, dateTimeFormat: item.dateTimeFormat)
|
dateText = stringForRelativeTimestamp(strings: item.presentationData.strings, relativeTimestamp: importer.date, relativeTo: timestamp, dateTimeFormat: item.dateTimeFormat)
|
||||||
} else {
|
} else {
|
||||||
titleText = " "
|
titleText = " "
|
||||||
subtitleText = " "
|
subtitleText = " "
|
||||||
|
expandedSubtitleText = " "
|
||||||
dateText = " "
|
dateText = " "
|
||||||
}
|
}
|
||||||
|
|
||||||
let titleAttributedString = NSAttributedString(string: titleText, font: titleFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor)
|
let titleAttributedString = NSAttributedString(string: titleText, font: titleFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor)
|
||||||
let subtitleAttributedString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: item.presentationData.theme.list.itemSecondaryTextColor)
|
let subtitleAttributedString = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: item.presentationData.theme.list.itemSecondaryTextColor)
|
||||||
|
let expnadedSubtitleAttributedString = NSAttributedString(string: expandedSubtitleText, font: subtitleFont, textColor: item.presentationData.theme.list.itemSecondaryTextColor)
|
||||||
let dateAttributedString = NSAttributedString(string: dateText, font: subtitleFont, textColor: item.presentationData.theme.list.itemSecondaryTextColor)
|
let dateAttributedString = NSAttributedString(string: dateText, font: subtitleFont, textColor: item.presentationData.theme.list.itemSecondaryTextColor)
|
||||||
|
|
||||||
let leftInset: CGFloat = 62.0 + params.leftInset
|
let leftInset: CGFloat = 62.0 + params.leftInset
|
||||||
@ -523,7 +536,7 @@ public class ItemListInviteRequestItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
|
|
||||||
let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: titleAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset - 44.0, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: titleAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset - 44.0, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
||||||
let (subtitleLayout, subtitleApply) = makeSubtitleLayout(TextNodeLayoutArguments(attributedString: subtitleAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
let (subtitleLayout, subtitleApply) = makeSubtitleLayout(TextNodeLayoutArguments(attributedString: subtitleAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
||||||
let (expandedSubtitleLayout, expandedSubtitleApply) = makeExpandedSubtitleLayout(TextNodeLayoutArguments(attributedString: subtitleAttributedString, backgroundColor: nil, maximumNumberOfLines: 5, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
let (expandedSubtitleLayout, expandedSubtitleApply) = makeExpandedSubtitleLayout(TextNodeLayoutArguments(attributedString: expnadedSubtitleAttributedString, backgroundColor: nil, maximumNumberOfLines: 5, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
||||||
let (dateLayout, dateApply) = makeDateLayout(TextNodeLayoutArguments(attributedString: dateAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
let (dateLayout, dateApply) = makeDateLayout(TextNodeLayoutArguments(attributedString: dateAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
||||||
|
|
||||||
let titleSpacing: CGFloat = 1.0
|
let titleSpacing: CGFloat = 1.0
|
||||||
@ -568,14 +581,20 @@ public class ItemListInviteRequestItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
strongSelf.contextSourceNode.contentNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize)
|
strongSelf.contextSourceNode.contentNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize)
|
||||||
strongSelf.containerNode.isGestureEnabled = item.contextAction != nil
|
strongSelf.containerNode.isGestureEnabled = item.contextAction != nil
|
||||||
|
|
||||||
let nonExtractedRect = CGRect(origin: CGPoint(), size: CGSize(width: layout.contentSize.width, height: layout.contentSize.height))
|
var nonExtractedRect = CGRect(origin: CGPoint(), size: CGSize(width: layout.contentSize.width, height: layout.contentSize.height))
|
||||||
var extractedRect = CGRect(origin: CGPoint(), size: layout.contentSize).insetBy(dx: params.leftInset + 16.0, dy: 0.0)
|
if case .blocks = item.style {
|
||||||
|
nonExtractedRect = nonExtractedRect.inset(by: UIEdgeInsets(top: 0.0, left: params.leftInset, bottom: 0.0, right: params.rightInset))
|
||||||
|
}
|
||||||
|
var extractedRect = CGRect(origin: CGPoint(), size: layout.contentSize).insetBy(dx: params.leftInset, dy: 0.0)
|
||||||
var extractedHeight = extractedRect.height + expandedSubtitleLayout.size.height - subtitleLayout.size.height
|
var extractedHeight = extractedRect.height + expandedSubtitleLayout.size.height - subtitleLayout.size.height
|
||||||
var extractedVerticalOffset: CGFloat = 0.0
|
var extractedVerticalOffset: CGFloat = 0.0
|
||||||
if item.importer?.peer.peer?.smallProfileImage != nil {
|
if item.importer?.peer.peer?.smallProfileImage != nil {
|
||||||
extractedRect.size.width = min(extractedRect.width, params.availableHeight - 20.0)
|
extractedRect.size.width = min(extractedRect.width, params.availableHeight - 20.0)
|
||||||
extractedVerticalOffset = extractedRect.width
|
extractedVerticalOffset = extractedRect.width
|
||||||
extractedHeight += extractedVerticalOffset
|
extractedHeight += extractedVerticalOffset
|
||||||
|
} else {
|
||||||
|
nonExtractedRect.size.width += 16.0
|
||||||
|
extractedHeight = max(108.0, extractedHeight)
|
||||||
}
|
}
|
||||||
|
|
||||||
extractedRect.size.height = extractedHeight - 46.0
|
extractedRect.size.height = extractedHeight - 46.0
|
||||||
|
@ -780,7 +780,7 @@ public class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNo
|
|||||||
strongSelf.addSubnode(strongSelf.inputSecondClearButton!)
|
strongSelf.addSubnode(strongSelf.inputSecondClearButton!)
|
||||||
}
|
}
|
||||||
|
|
||||||
strongSelf.inputSeparator?.frame = CGRect(origin: CGPoint(x: params.leftInset + 100.0, y: 46.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 100.0, height: separatorHeight))
|
strongSelf.inputSeparator?.frame = CGRect(origin: CGPoint(x: params.leftInset + 100.0, y: 46.0), size: CGSize(width: params.width - params.leftInset - 100.0, height: separatorHeight))
|
||||||
strongSelf.inputFirstField?.frame = CGRect(origin: CGPoint(x: params.leftInset + 111.0, y: 12.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 111.0 - 36.0, height: 30.0))
|
strongSelf.inputFirstField?.frame = CGRect(origin: CGPoint(x: params.leftInset + 111.0, y: 12.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 111.0 - 36.0, height: 30.0))
|
||||||
strongSelf.inputSecondField?.frame = CGRect(origin: CGPoint(x: params.leftInset + 111.0, y: 52.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 111.0 - 36.0, height: 30.0))
|
strongSelf.inputSecondField?.frame = CGRect(origin: CGPoint(x: params.leftInset + 111.0, y: 52.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 111.0 - 36.0, height: 30.0))
|
||||||
|
|
||||||
@ -841,7 +841,7 @@ public class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNo
|
|||||||
strongSelf.addSubnode(strongSelf.inputFirstClearButton!)
|
strongSelf.addSubnode(strongSelf.inputFirstClearButton!)
|
||||||
}
|
}
|
||||||
|
|
||||||
strongSelf.inputSeparator?.frame = CGRect(origin: CGPoint(x: params.leftInset + 100.0, y: 64.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 100.0, height: separatorHeight))
|
strongSelf.inputSeparator?.frame = CGRect(origin: CGPoint(x: params.leftInset + 100.0, y: 64.0), size: CGSize(width: params.width - params.leftInset - 100.0, height: separatorHeight))
|
||||||
strongSelf.inputFirstField?.frame = CGRect(origin: CGPoint(x: params.leftInset + 111.0, y: 28.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 111.0 - 36.0, height: 35.0))
|
strongSelf.inputFirstField?.frame = CGRect(origin: CGPoint(x: params.leftInset + 111.0, y: 28.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 111.0 - 36.0, height: 35.0))
|
||||||
|
|
||||||
if let image = strongSelf.inputFirstClearButton?.image(for: []), let inputFieldFrame = strongSelf.inputFirstField?.frame {
|
if let image = strongSelf.inputFirstClearButton?.image(for: []), let inputFieldFrame = strongSelf.inputFirstField?.frame {
|
||||||
|
@ -624,11 +624,17 @@ open class ItemListControllerNode: ASDisplayNode {
|
|||||||
self.listNode.backgroundColor = transition.theme.list.plainBackgroundColor
|
self.listNode.backgroundColor = transition.theme.list.plainBackgroundColor
|
||||||
self.leftOverlayNode.backgroundColor = transition.theme.list.plainBackgroundColor
|
self.leftOverlayNode.backgroundColor = transition.theme.list.plainBackgroundColor
|
||||||
self.rightOverlayNode.backgroundColor = transition.theme.list.plainBackgroundColor
|
self.rightOverlayNode.backgroundColor = transition.theme.list.plainBackgroundColor
|
||||||
|
|
||||||
|
self.leftOverlayNode.isHidden = true
|
||||||
|
self.rightOverlayNode.isHidden = true
|
||||||
case .blocks:
|
case .blocks:
|
||||||
self.backgroundColor = transition.theme.list.blocksBackgroundColor
|
self.backgroundColor = transition.theme.list.blocksBackgroundColor
|
||||||
self.listNode.backgroundColor = transition.theme.list.blocksBackgroundColor
|
self.listNode.backgroundColor = transition.theme.list.blocksBackgroundColor
|
||||||
self.leftOverlayNode.backgroundColor = transition.theme.list.blocksBackgroundColor
|
self.leftOverlayNode.backgroundColor = transition.theme.list.blocksBackgroundColor
|
||||||
self.rightOverlayNode.backgroundColor = transition.theme.list.blocksBackgroundColor
|
self.rightOverlayNode.backgroundColor = transition.theme.list.blocksBackgroundColor
|
||||||
|
|
||||||
|
self.leftOverlayNode.isHidden = false
|
||||||
|
self.rightOverlayNode.isHidden = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -222,7 +222,7 @@ class ThemeSettingsAppIconItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
strongSelf.item = item
|
strongSelf.item = item
|
||||||
strongSelf.layoutParams = params
|
strongSelf.layoutParams = params
|
||||||
|
|
||||||
strongSelf.scrollNode.view.contentInset = UIEdgeInsets(top: 0.0, left: params.leftInset, bottom: 0.0, right: params.rightInset)
|
strongSelf.scrollNode.view.contentInset = UIEdgeInsets()
|
||||||
strongSelf.backgroundNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor
|
strongSelf.backgroundNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor
|
||||||
strongSelf.topStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor
|
strongSelf.topStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor
|
||||||
strongSelf.bottomStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor
|
strongSelf.bottomStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor
|
||||||
@ -270,7 +270,7 @@ class ThemeSettingsAppIconItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layoutSize.width, height: separatorHeight))
|
strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layoutSize.width, height: separatorHeight))
|
||||||
strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height + bottomStripeOffset), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight))
|
strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height + bottomStripeOffset), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight))
|
||||||
|
|
||||||
strongSelf.scrollNode.frame = CGRect(origin: CGPoint(x: 0.0, y: 2.0), size: CGSize(width: layoutSize.width, height: layoutSize.height))
|
strongSelf.scrollNode.frame = CGRect(origin: CGPoint(x: params.leftInset, y: 2.0), size: CGSize(width: layoutSize.width - params.leftInset - params.rightInset, height: layoutSize.height))
|
||||||
|
|
||||||
let nodeInset: CGFloat = 4.0
|
let nodeInset: CGFloat = 4.0
|
||||||
let nodeSize = CGSize(width: 80.0, height: 112.0)
|
let nodeSize = CGSize(width: 80.0, height: 112.0)
|
||||||
@ -300,18 +300,18 @@ class ThemeSettingsAppIconItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
var name = "Icon"
|
var name = "Icon"
|
||||||
var bordered = true
|
var bordered = true
|
||||||
switch icon.name {
|
switch icon.name {
|
||||||
case "Blue":
|
case "BlueIcon":
|
||||||
name = item.strings.Appearance_AppIconDefault
|
name = item.strings.Appearance_AppIconDefault
|
||||||
case "Black":
|
case "BlackIcon":
|
||||||
name = item.strings.Appearance_AppIconDefaultX
|
name = item.strings.Appearance_AppIconDefaultX
|
||||||
case "BlueClassic":
|
case "BlueClassicIcon":
|
||||||
name = item.strings.Appearance_AppIconClassic
|
name = item.strings.Appearance_AppIconClassic
|
||||||
case "BlackClassic":
|
case "BlackClassicIcon":
|
||||||
name = item.strings.Appearance_AppIconClassicX
|
name = item.strings.Appearance_AppIconClassicX
|
||||||
case "BlueFilled":
|
case "BlueFilledIcon":
|
||||||
name = item.strings.Appearance_AppIconFilled
|
name = item.strings.Appearance_AppIconFilled
|
||||||
bordered = false
|
bordered = false
|
||||||
case "BlackFilled":
|
case "BlackFilledIcon":
|
||||||
name = item.strings.Appearance_AppIconFilledX
|
name = item.strings.Appearance_AppIconFilledX
|
||||||
bordered = false
|
bordered = false
|
||||||
case "WhiteFilled":
|
case "WhiteFilled":
|
||||||
|
@ -6617,7 +6617,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate
|
|||||||
let offsetY = self.scrollNode.view.contentOffset.y
|
let offsetY = self.scrollNode.view.contentOffset.y
|
||||||
|
|
||||||
if self.isSettings, !(self.controller?.movingInHierarchy == true) {
|
if self.isSettings, !(self.controller?.movingInHierarchy == true) {
|
||||||
let bottomOffsetY = self.scrollNode.view.contentSize.height + self.scrollNode.view.contentInset.bottom - offsetY - self.scrollNode.frame.height
|
let bottomOffsetY = max(0.0, self.scrollNode.view.contentSize.height - offsetY - self.scrollNode.frame.height)
|
||||||
let backgroundAlpha: CGFloat = min(30.0, bottomOffsetY) / 30.0
|
let backgroundAlpha: CGFloat = min(30.0, bottomOffsetY) / 30.0
|
||||||
|
|
||||||
if let tabBarController = self.controller?.parent as? TabBarController {
|
if let tabBarController = self.controller?.parent as? TabBarController {
|
||||||
|
@ -366,10 +366,8 @@ public struct AutomaticThemeSwitchSetting: Codable, Equatable {
|
|||||||
self.trigger = try container.decode(AutomaticThemeSwitchTrigger.self, forKey: "trigger")
|
self.trigger = try container.decode(AutomaticThemeSwitchTrigger.self, forKey: "trigger")
|
||||||
if let themeData = try container.decodeIfPresent(AdaptedPostboxDecoder.RawObjectData.self, forKey: "theme_v2") {
|
if let themeData = try container.decodeIfPresent(AdaptedPostboxDecoder.RawObjectData.self, forKey: "theme_v2") {
|
||||||
self.theme = PresentationThemeReference(decoder: PostboxDecoder(buffer: MemoryBuffer(data: themeData.data)))
|
self.theme = PresentationThemeReference(decoder: PostboxDecoder(buffer: MemoryBuffer(data: themeData.data)))
|
||||||
} else if let legacyValue = try container.decodeIfPresent(Int32.self, forKey: "theme") {
|
|
||||||
self.theme = .builtin(PresentationBuiltinThemeReference(rawValue: legacyValue) ?? .nightAccent)
|
|
||||||
} else {
|
} else {
|
||||||
self.theme = .builtin(.nightAccent)
|
self.theme = .builtin(.night)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user