mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Tab fixes
This commit is contained in:
parent
e5f3d2df63
commit
7706b763e6
@ -5431,15 +5431,15 @@ Any member of this group will be able to see messages in the channel.";
|
|||||||
"ChatListFolder.CategoryGroups" = "Groups";
|
"ChatListFolder.CategoryGroups" = "Groups";
|
||||||
"ChatListFolder.CategoryChannels" = "Channels";
|
"ChatListFolder.CategoryChannels" = "Channels";
|
||||||
"ChatListFolder.CategoryMuted" = "Muted";
|
"ChatListFolder.CategoryMuted" = "Muted";
|
||||||
"ChatListFolder.CategoryRead" = "Muted";
|
"ChatListFolder.CategoryRead" = "Read";
|
||||||
"ChatListFolder.CategoryArchived" = "Archived";
|
"ChatListFolder.CategoryArchived" = "Archived";
|
||||||
"ChatListFolder.NameSectionHeader" = "FOLDER NAME";
|
"ChatListFolder.NameSectionHeader" = "FOLDER NAME";
|
||||||
"ChatListFolder.NamePlaceholder" = "Folder Name";
|
"ChatListFolder.NamePlaceholder" = "Folder Name";
|
||||||
"ChatListFolder.IncludedSectionHeader" = "INCLUDED CHATS";
|
"ChatListFolder.IncludedSectionHeader" = "INCLUDED CHATS";
|
||||||
"ChatListFolder.AddChats" = "Add Chats";
|
"ChatListFolder.AddChats" = "Add Chats";
|
||||||
"ChatListFolder.IncludeSectionInfo" = "Choose chats and types of chats that will appear in this filter.";
|
"ChatListFolder.IncludeSectionInfo" = "Choose chats and types of chats that will appear in this folder.";
|
||||||
"ChatListFolder.ExcludedSectionHeader" = "EXCLUDED CHATS";
|
"ChatListFolder.ExcludedSectionHeader" = "EXCLUDED CHATS";
|
||||||
"ChatListFolder.ExcludeSectionInfo" = "Choose chats and types of chats that will never appear in the filter.";
|
"ChatListFolder.ExcludeSectionInfo" = "Choose chats and types of chats that will never appear in the folder.";
|
||||||
"ChatListFolder.NameNonMuted" = "Not Muted";
|
"ChatListFolder.NameNonMuted" = "Not Muted";
|
||||||
"ChatListFolder.NameUnread" = "Unread";
|
"ChatListFolder.NameUnread" = "Unread";
|
||||||
"ChatListFolder.NameChannels" = "Channels";
|
"ChatListFolder.NameChannels" = "Channels";
|
||||||
|
@ -2361,10 +2361,10 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
|
|
||||||
for preset in presetList {
|
for preset in presetList {
|
||||||
let filterType = chatListFilterType(preset)
|
let filterType = chatListFilterType(preset)
|
||||||
var badge = ""
|
var badge: ContextMenuActionBadge?
|
||||||
for item in filterItems {
|
for item in filterItems {
|
||||||
if item.0.id == preset.id && item.1 != 0 {
|
if item.0.id == preset.id && item.1 != 0 {
|
||||||
badge = "\(item.1)"
|
badge = ContextMenuActionBadge(value: "\(item.1)", color: item.2 ? .accent : .inactive)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
items.append(.action(ContextMenuActionItem(text: preset.title, badge: badge, icon: { theme in
|
items.append(.action(ContextMenuActionItem(text: preset.title, badge: badge, icon: { theme in
|
||||||
|
@ -274,7 +274,7 @@ private final class ChatListContainerItemNode: ASDisplayNode {
|
|||||||
|
|
||||||
private var floatingHeaderOffset: CGFloat?
|
private var floatingHeaderOffset: CGFloat?
|
||||||
|
|
||||||
private var emptyNode: ChatListEmptyNode?
|
private(set) var emptyNode: ChatListEmptyNode?
|
||||||
var emptyShimmerEffectNode: ChatListShimmerNode?
|
var emptyShimmerEffectNode: ChatListShimmerNode?
|
||||||
let listNode: ChatListNode
|
let listNode: ChatListNode
|
||||||
|
|
||||||
@ -583,6 +583,11 @@ final class ChatListContainerNode: ASDisplayNode, UIGestureRecognizerDelegate {
|
|||||||
case .began:
|
case .began:
|
||||||
self.transitionFractionOffset = 0.0
|
self.transitionFractionOffset = 0.0
|
||||||
if let (layout, navigationBarHeight, visualNavigationHeight, cleanNavigationBarHeight, isReorderingFilters, isEditing) = self.validLayout, let itemNode = self.itemNodes[self.selectedId] {
|
if let (layout, navigationBarHeight, visualNavigationHeight, cleanNavigationBarHeight, isReorderingFilters, isEditing) = self.validLayout, let itemNode = self.itemNodes[self.selectedId] {
|
||||||
|
for (id, itemNode) in self.itemNodes {
|
||||||
|
if id != selectedId {
|
||||||
|
itemNode.emptyNode?.restartAnimation()
|
||||||
|
}
|
||||||
|
}
|
||||||
if let presentationLayer = itemNode.layer.presentation() {
|
if let presentationLayer = itemNode.layer.presentation() {
|
||||||
self.transitionFraction = presentationLayer.frame.minX / layout.size.width
|
self.transitionFraction = presentationLayer.frame.minX / layout.size.width
|
||||||
self.transitionFractionOffset = self.transitionFraction
|
self.transitionFractionOffset = self.transitionFraction
|
||||||
|
@ -68,6 +68,10 @@ final class ChatListEmptyNode: ASDisplayNode {
|
|||||||
self.updateThemeAndStrings(theme: theme, strings: strings)
|
self.updateThemeAndStrings(theme: theme, strings: strings)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func restartAnimation() {
|
||||||
|
self.animationNode.play()
|
||||||
|
}
|
||||||
|
|
||||||
func updateThemeAndStrings(theme: PresentationTheme, strings: PresentationStrings) {
|
func updateThemeAndStrings(theme: PresentationTheme, strings: PresentationStrings) {
|
||||||
let string = NSMutableAttributedString(string: self.isFilter ? strings.ChatList_EmptyChatFilterList : strings.ChatList_EmptyChatList, font: Font.medium(17.0), textColor: theme.list.itemPrimaryTextColor)
|
let string = NSMutableAttributedString(string: self.isFilter ? strings.ChatList_EmptyChatFilterList : strings.ChatList_EmptyChatList, font: Font.medium(17.0), textColor: theme.list.itemPrimaryTextColor)
|
||||||
self.textNode.attributedText = string
|
self.textNode.attributedText = string
|
||||||
|
@ -82,14 +82,26 @@ final class ContextActionNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.badgeBackgroundNode = ASImageNode()
|
self.badgeBackgroundNode = ASImageNode()
|
||||||
self.badgeBackgroundNode.image = generateStretchableFilledCircleImage(diameter: 18.0, color: presentationData.theme.contextMenu.badgeFillColor)
|
|
||||||
self.badgeBackgroundNode.isAccessibilityElement = false
|
self.badgeBackgroundNode.isAccessibilityElement = false
|
||||||
self.badgeBackgroundNode.displaysAsynchronously = false
|
self.badgeBackgroundNode.displaysAsynchronously = false
|
||||||
self.badgeBackgroundNode.displayWithoutProcessing = true
|
self.badgeBackgroundNode.displayWithoutProcessing = true
|
||||||
self.badgeBackgroundNode.isUserInteractionEnabled = false
|
self.badgeBackgroundNode.isUserInteractionEnabled = false
|
||||||
|
|
||||||
self.badgeTextNode = ImmediateTextNode()
|
self.badgeTextNode = ImmediateTextNode()
|
||||||
self.badgeTextNode.attributedText = NSAttributedString(string: action.badge, font: Font.regular(14.0), textColor: presentationData.theme.contextMenu.badgeForegroundColor)
|
if let badge = action.badge {
|
||||||
|
let badgeFillColor: UIColor
|
||||||
|
let badgeForegroundColor: UIColor
|
||||||
|
switch badge.color {
|
||||||
|
case .accent:
|
||||||
|
badgeForegroundColor = presentationData.theme.contextMenu.badgeForegroundColor
|
||||||
|
badgeFillColor = presentationData.theme.contextMenu.badgeFillColor
|
||||||
|
case .inactive:
|
||||||
|
badgeForegroundColor = presentationData.theme.contextMenu.badgeInactiveForegroundColor
|
||||||
|
badgeFillColor = presentationData.theme.contextMenu.badgeInactiveFillColor
|
||||||
|
}
|
||||||
|
self.badgeBackgroundNode.image = generateStretchableFilledCircleImage(diameter: 18.0, color: badgeFillColor)
|
||||||
|
self.badgeTextNode.attributedText = NSAttributedString(string: badge.value, font: Font.regular(14.0), textColor: badgeForegroundColor)
|
||||||
|
}
|
||||||
self.badgeTextNode.isAccessibilityElement = false
|
self.badgeTextNode.isAccessibilityElement = false
|
||||||
self.badgeTextNode.isUserInteractionEnabled = false
|
self.badgeTextNode.isUserInteractionEnabled = false
|
||||||
self.badgeTextNode.displaysAsynchronously = false
|
self.badgeTextNode.displaysAsynchronously = false
|
||||||
@ -175,7 +187,7 @@ final class ContextActionNode: ASDisplayNode {
|
|||||||
if !statusSize.width.isZero, let statusNode = self.statusNode {
|
if !statusSize.width.isZero, let statusNode = self.statusNode {
|
||||||
let verticalSpacing: CGFloat = 2.0
|
let verticalSpacing: CGFloat = 2.0
|
||||||
let combinedTextHeight = textSize.height + verticalSpacing + statusSize.height
|
let combinedTextHeight = textSize.height + verticalSpacing + statusSize.height
|
||||||
return (CGSize(width: max(textSize.width, statusSize.width) + sideInset + rightTextInset, height: verticalInset * 2.0 + combinedTextHeight), { size, transition in
|
return (CGSize(width: max(textSize.width, statusSize.width) + sideInset + rightTextInset + badgeWidthSpace, height: verticalInset * 2.0 + combinedTextHeight), { size, transition in
|
||||||
let verticalOrigin = floor((size.height - combinedTextHeight) / 2.0)
|
let verticalOrigin = floor((size.height - combinedTextHeight) / 2.0)
|
||||||
let textFrame = CGRect(origin: CGPoint(x: sideInset, y: verticalOrigin), size: textSize)
|
let textFrame = CGRect(origin: CGPoint(x: sideInset, y: verticalOrigin), size: textSize)
|
||||||
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
|
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
|
||||||
@ -194,7 +206,7 @@ final class ContextActionNode: ASDisplayNode {
|
|||||||
transition.updateFrame(node: self.buttonNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: size.width, height: size.height)))
|
transition.updateFrame(node: self.buttonNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: size.width, height: size.height)))
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
return (CGSize(width: textSize.width + sideInset + rightTextInset, height: verticalInset * 2.0 + textSize.height), { size, transition in
|
return (CGSize(width: textSize.width + sideInset + rightTextInset + badgeWidthSpace, height: verticalInset * 2.0 + textSize.height), { size, transition in
|
||||||
let verticalOrigin = floor((size.height - textSize.height) / 2.0)
|
let verticalOrigin = floor((size.height - textSize.height) / 2.0)
|
||||||
let textFrame = CGRect(origin: CGPoint(x: sideInset, y: verticalOrigin), size: textSize)
|
let textFrame = CGRect(origin: CGPoint(x: sideInset, y: verticalOrigin), size: textSize)
|
||||||
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
|
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
|
||||||
|
@ -38,16 +38,31 @@ public struct ContextMenuActionItemIconSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ContextMenuActionBadgeColor {
|
||||||
|
case accent
|
||||||
|
case inactive
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct ContextMenuActionBadge {
|
||||||
|
public var value: String
|
||||||
|
public var color: ContextMenuActionBadgeColor
|
||||||
|
|
||||||
|
public init(value: String, color: ContextMenuActionBadgeColor) {
|
||||||
|
self.value = value
|
||||||
|
self.color = color
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public final class ContextMenuActionItem {
|
public final class ContextMenuActionItem {
|
||||||
public let text: String
|
public let text: String
|
||||||
public let textColor: ContextMenuActionItemTextColor
|
public let textColor: ContextMenuActionItemTextColor
|
||||||
public let textLayout: ContextMenuActionItemTextLayout
|
public let textLayout: ContextMenuActionItemTextLayout
|
||||||
public let badge: String
|
public let badge: ContextMenuActionBadge?
|
||||||
public let icon: (PresentationTheme) -> UIImage?
|
public let icon: (PresentationTheme) -> UIImage?
|
||||||
public let iconSource: ContextMenuActionItemIconSource?
|
public let iconSource: ContextMenuActionItemIconSource?
|
||||||
public let action: (ContextController, @escaping (ContextMenuActionResult) -> Void) -> Void
|
public let action: (ContextController, @escaping (ContextMenuActionResult) -> Void) -> Void
|
||||||
|
|
||||||
public init(text: String, textColor: ContextMenuActionItemTextColor = .primary, textLayout: ContextMenuActionItemTextLayout = .twoLinesMax, badge: String = "", icon: @escaping (PresentationTheme) -> UIImage?, iconSource: ContextMenuActionItemIconSource? = nil, action: @escaping (ContextController, @escaping (ContextMenuActionResult) -> Void) -> Void) {
|
public init(text: String, textColor: ContextMenuActionItemTextColor = .primary, textLayout: ContextMenuActionItemTextLayout = .twoLinesMax, badge: ContextMenuActionBadge? = nil, icon: @escaping (PresentationTheme) -> UIImage?, iconSource: ContextMenuActionItemIconSource? = nil, action: @escaping (ContextController, @escaping (ContextMenuActionResult) -> Void) -> Void) {
|
||||||
self.text = text
|
self.text = text
|
||||||
self.textColor = textColor
|
self.textColor = textColor
|
||||||
self.textLayout = textLayout
|
self.textLayout = textLayout
|
||||||
|
@ -861,7 +861,7 @@ private final class SettingsControllerImpl: ItemListController, SettingsControll
|
|||||||
|
|
||||||
for account in other {
|
for account in other {
|
||||||
let id = account.0.id
|
let id = account.0.id
|
||||||
items.append(.action(ContextMenuActionItem(text: account.1.displayTitle(strings: strings, displayOrder: presentationData.nameDisplayOrder), badge: account.2 != 0 ? "\(account.2)" : "", icon: { _ in nil }, iconSource: ContextMenuActionItemIconSource(size: avatarSize, signal: accountIconSignal(account: account.0, peer: account.1, size: avatarSize)), action: { [weak self] _, f in
|
items.append(.action(ContextMenuActionItem(text: account.1.displayTitle(strings: strings, displayOrder: presentationData.nameDisplayOrder), badge: account.2 != 0 ? ContextMenuActionBadge(value: "\(account.2)", color: .accent) : nil, icon: { _ in nil }, iconSource: ContextMenuActionItemIconSource(size: avatarSize, signal: accountIconSignal(account: account.0, peer: account.1, size: avatarSize)), action: { [weak self] _, f in
|
||||||
guard let strongSelf = self else {
|
guard let strongSelf = self else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -523,8 +523,10 @@ public func makeDefaultDarkPresentationTheme(extendingThemeReference: Presentati
|
|||||||
primaryColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
primaryColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
||||||
secondaryColor: UIColor(rgb: 0xffffff, alpha: 0.8),
|
secondaryColor: UIColor(rgb: 0xffffff, alpha: 0.8),
|
||||||
destructiveColor: UIColor(rgb: 0xeb5545),
|
destructiveColor: UIColor(rgb: 0xeb5545),
|
||||||
badgeFillColor: UIColor(rgb: 0xeb5545),
|
badgeFillColor: UIColor(rgb: 0xffffff),
|
||||||
badgeForegroundColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
badgeForegroundColor: UIColor(rgb: 0x000000),
|
||||||
|
badgeInactiveFillColor: UIColor(rgb: 0xffffff).withAlphaComponent(0.5),
|
||||||
|
badgeInactiveForegroundColor: UIColor(rgb: 0x000000),
|
||||||
extractedContentTintColor: UIColor(rgb: 0xffffff, alpha: 1.0)
|
extractedContentTintColor: UIColor(rgb: 0xffffff, alpha: 1.0)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -772,8 +772,10 @@ public func makeDefaultDarkTintedPresentationTheme(extendingThemeReference: Pres
|
|||||||
primaryColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
primaryColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
||||||
secondaryColor: UIColor(rgb: 0xffffff, alpha: 0.8),
|
secondaryColor: UIColor(rgb: 0xffffff, alpha: 0.8),
|
||||||
destructiveColor: UIColor(rgb: 0xff6767),
|
destructiveColor: UIColor(rgb: 0xff6767),
|
||||||
badgeFillColor: UIColor(rgb: 0xff6767),
|
badgeFillColor: accentColor,
|
||||||
badgeForegroundColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
badgeForegroundColor: secondaryBadgeTextColor,
|
||||||
|
badgeInactiveFillColor: mainSecondaryTextColor.withAlphaComponent(0.4),
|
||||||
|
badgeInactiveForegroundColor: secondaryBadgeTextColor,
|
||||||
extractedContentTintColor: UIColor(rgb: 0xffffff, alpha: 1.0)
|
extractedContentTintColor: UIColor(rgb: 0xffffff, alpha: 1.0)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -734,8 +734,10 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio
|
|||||||
primaryColor: UIColor(rgb: 0x000000, alpha: 1.0),
|
primaryColor: UIColor(rgb: 0x000000, alpha: 1.0),
|
||||||
secondaryColor: UIColor(rgb: 0x000000, alpha: 0.8),
|
secondaryColor: UIColor(rgb: 0x000000, alpha: 0.8),
|
||||||
destructiveColor: UIColor(rgb: 0xff3b30),
|
destructiveColor: UIColor(rgb: 0xff3b30),
|
||||||
badgeFillColor: UIColor(rgb: 0xff3b30),
|
badgeFillColor: UIColor(rgb: 0x007ee5),
|
||||||
badgeForegroundColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
badgeForegroundColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
||||||
|
badgeInactiveFillColor: UIColor(rgb: 0xb6b6bb),
|
||||||
|
badgeInactiveForegroundColor: UIColor(rgb: 0xffffff, alpha: 1.0),
|
||||||
extractedContentTintColor: .white
|
extractedContentTintColor: .white
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -269,9 +269,11 @@ public final class PresentationThemeContextMenu {
|
|||||||
public let destructiveColor: UIColor
|
public let destructiveColor: UIColor
|
||||||
public let badgeFillColor: UIColor
|
public let badgeFillColor: UIColor
|
||||||
public let badgeForegroundColor: UIColor
|
public let badgeForegroundColor: UIColor
|
||||||
|
public let badgeInactiveFillColor: UIColor
|
||||||
|
public let badgeInactiveForegroundColor: UIColor
|
||||||
public let extractedContentTintColor: UIColor
|
public let extractedContentTintColor: UIColor
|
||||||
|
|
||||||
init(dimColor: UIColor, backgroundColor: UIColor, itemSeparatorColor: UIColor, sectionSeparatorColor: UIColor, itemBackgroundColor: UIColor, itemHighlightedBackgroundColor: UIColor, primaryColor: UIColor, secondaryColor: UIColor, destructiveColor: UIColor, badgeFillColor: UIColor, badgeForegroundColor: UIColor, extractedContentTintColor: UIColor) {
|
init(dimColor: UIColor, backgroundColor: UIColor, itemSeparatorColor: UIColor, sectionSeparatorColor: UIColor, itemBackgroundColor: UIColor, itemHighlightedBackgroundColor: UIColor, primaryColor: UIColor, secondaryColor: UIColor, destructiveColor: UIColor, badgeFillColor: UIColor, badgeForegroundColor: UIColor, badgeInactiveFillColor: UIColor, badgeInactiveForegroundColor: UIColor, extractedContentTintColor: UIColor) {
|
||||||
self.dimColor = dimColor
|
self.dimColor = dimColor
|
||||||
self.backgroundColor = backgroundColor
|
self.backgroundColor = backgroundColor
|
||||||
self.itemSeparatorColor = itemSeparatorColor
|
self.itemSeparatorColor = itemSeparatorColor
|
||||||
@ -283,11 +285,13 @@ public final class PresentationThemeContextMenu {
|
|||||||
self.destructiveColor = destructiveColor
|
self.destructiveColor = destructiveColor
|
||||||
self.badgeFillColor = badgeFillColor
|
self.badgeFillColor = badgeFillColor
|
||||||
self.badgeForegroundColor = badgeForegroundColor
|
self.badgeForegroundColor = badgeForegroundColor
|
||||||
|
self.badgeInactiveFillColor = badgeInactiveFillColor
|
||||||
|
self.badgeInactiveForegroundColor = badgeInactiveForegroundColor
|
||||||
self.extractedContentTintColor = extractedContentTintColor
|
self.extractedContentTintColor = extractedContentTintColor
|
||||||
}
|
}
|
||||||
|
|
||||||
public func withUpdated(dimColor: UIColor? = nil, backgroundColor: UIColor? = nil, itemSeparatorColor: UIColor? = nil, sectionSeparatorColor: UIColor? = nil, itemBackgroundColor: UIColor? = nil, itemHighlightedBackgroundColor: UIColor? = nil, primaryColor: UIColor? = nil, secondaryColor: UIColor? = nil, destructiveColor: UIColor? = nil) -> PresentationThemeContextMenu {
|
public func withUpdated(dimColor: UIColor? = nil, backgroundColor: UIColor? = nil, itemSeparatorColor: UIColor? = nil, sectionSeparatorColor: UIColor? = nil, itemBackgroundColor: UIColor? = nil, itemHighlightedBackgroundColor: UIColor? = nil, primaryColor: UIColor? = nil, secondaryColor: UIColor? = nil, destructiveColor: UIColor? = nil) -> PresentationThemeContextMenu {
|
||||||
return PresentationThemeContextMenu(dimColor: dimColor ?? self.dimColor, backgroundColor: backgroundColor ?? self.backgroundColor, itemSeparatorColor: itemSeparatorColor ?? self.itemSeparatorColor, sectionSeparatorColor: sectionSeparatorColor ?? self.sectionSeparatorColor, itemBackgroundColor: itemBackgroundColor ?? self.itemBackgroundColor, itemHighlightedBackgroundColor: itemHighlightedBackgroundColor ?? self.itemHighlightedBackgroundColor, primaryColor: primaryColor ?? self.primaryColor, secondaryColor: secondaryColor ?? self.secondaryColor, destructiveColor: destructiveColor ?? self.destructiveColor, badgeFillColor: self.badgeFillColor, badgeForegroundColor: self.badgeForegroundColor, extractedContentTintColor: self.extractedContentTintColor)
|
return PresentationThemeContextMenu(dimColor: dimColor ?? self.dimColor, backgroundColor: backgroundColor ?? self.backgroundColor, itemSeparatorColor: itemSeparatorColor ?? self.itemSeparatorColor, sectionSeparatorColor: sectionSeparatorColor ?? self.sectionSeparatorColor, itemBackgroundColor: itemBackgroundColor ?? self.itemBackgroundColor, itemHighlightedBackgroundColor: itemHighlightedBackgroundColor ?? self.itemHighlightedBackgroundColor, primaryColor: primaryColor ?? self.primaryColor, secondaryColor: secondaryColor ?? self.secondaryColor, destructiveColor: destructiveColor ?? self.destructiveColor, badgeFillColor: self.badgeFillColor, badgeForegroundColor: self.badgeForegroundColor, badgeInactiveFillColor: self.badgeInactiveFillColor, badgeInactiveForegroundColor: self.badgeInactiveForegroundColor, extractedContentTintColor: self.extractedContentTintColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1637,6 +1637,8 @@ extension PresentationThemeContextMenu: Codable {
|
|||||||
case destructive
|
case destructive
|
||||||
case badgeFill
|
case badgeFill
|
||||||
case badgeForeground
|
case badgeForeground
|
||||||
|
case badgeInactiveFill
|
||||||
|
case badgeInactiveForeground
|
||||||
case extractedTint
|
case extractedTint
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1656,6 +1658,8 @@ extension PresentationThemeContextMenu: Codable {
|
|||||||
destructiveColor: destructiveColor,
|
destructiveColor: destructiveColor,
|
||||||
badgeFillColor: (try? decodeColor(values, .badgeFill)) ?? destructiveColor,
|
badgeFillColor: (try? decodeColor(values, .badgeFill)) ?? destructiveColor,
|
||||||
badgeForegroundColor: (try? decodeColor(values, .badgeForeground)) ?? backgroundColor,
|
badgeForegroundColor: (try? decodeColor(values, .badgeForeground)) ?? backgroundColor,
|
||||||
|
badgeInactiveFillColor: (try? decodeColor(values, .badgeInactiveFill)) ?? destructiveColor,
|
||||||
|
badgeInactiveForegroundColor: (try? decodeColor(values, .badgeInactiveForeground)) ?? backgroundColor,
|
||||||
extractedContentTintColor: (try? decodeColor(values, .extractedTint)) ?? backgroundColor
|
extractedContentTintColor: (try? decodeColor(values, .extractedTint)) ?? backgroundColor
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user