mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-05 05:51:42 +00:00
Various UI fixes
This commit is contained in:
parent
4150d20eb0
commit
339bc3c472
@ -494,6 +494,7 @@ class CallListCallItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
|
||||
if let editableControlSizeAndApply = editableControlSizeAndApply {
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
if strongSelf.editableControlNode == nil {
|
||||
let editableControlNode = editableControlSizeAndApply.1()
|
||||
editableControlNode.tapped = {
|
||||
@ -504,11 +505,12 @@ class CallListCallItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
strongSelf.editableControlNode = editableControlNode
|
||||
strongSelf.addSubnode(editableControlNode)
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
editableControlNode.frame = editableControlFrame
|
||||
transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY))
|
||||
editableControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: editableControlNode, alpha: 1.0)
|
||||
} else {
|
||||
strongSelf.editableControlNode?.frame = editableControlFrame
|
||||
}
|
||||
} else if let editableControlNode = strongSelf.editableControlNode {
|
||||
var editableControlFrame = editableControlNode.frame
|
||||
|
||||
@ -38,6 +38,7 @@ final class ChangePhoneNumberController: ViewController {
|
||||
|
||||
super.init(navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData))
|
||||
|
||||
self.supportedOrientations = ViewControllerSupportedOrientations(regularSize: .all, compactSize: .portrait)
|
||||
self.statusBar.statusBarStyle = self.presentationData.theme.rootController.statusBar.style.style
|
||||
|
||||
self.title = self.presentationData.strings.ChangePhoneNumberNumber_Title
|
||||
|
||||
@ -188,19 +188,21 @@ final class ChangePhoneNumberControllerNode: ASDisplayNode {
|
||||
}
|
||||
|
||||
func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
let insets = layout.insets(options: [.statusBar, .input])
|
||||
var insets = layout.insets(options: [.statusBar, .input])
|
||||
insets.left = layout.safeInsets.left
|
||||
insets.right = layout.safeInsets.right
|
||||
|
||||
let countryButtonHeight: CGFloat = 44.0
|
||||
let inputFieldsHeight: CGFloat = 44.0
|
||||
|
||||
let titleSize = self.titleNode.measure(CGSize(width: layout.size.width - 28.0, height: CGFloat.greatestFiniteMagnitude))
|
||||
let noticeSize = self.noticeNode.measure(CGSize(width: layout.size.width - 28.0, height: CGFloat.greatestFiniteMagnitude))
|
||||
let titleSize = self.titleNode.measure(CGSize(width: layout.size.width - 28.0 - insets.left - insets .right, height: CGFloat.greatestFiniteMagnitude))
|
||||
let noticeSize = self.noticeNode.measure(CGSize(width: layout.size.width - 28.0 - insets.left - insets.right, height: CGFloat.greatestFiniteMagnitude))
|
||||
|
||||
let navigationHeight: CGFloat = 97.0 + insets.top + navigationBarHeight
|
||||
|
||||
let inputHeight = countryButtonHeight + inputFieldsHeight
|
||||
|
||||
transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: 15.0, y: navigationHeight - titleSize.height - 8.0), size: titleSize))
|
||||
transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: 15.0 + insets.left, y: navigationHeight - titleSize.height - 8.0), size: titleSize))
|
||||
|
||||
transition.updateFrame(node: self.countryButton, frame: CGRect(origin: CGPoint(x: 0.0, y: navigationHeight), size: CGSize(width: layout.size.width, height: 44.0 + 6.0)))
|
||||
transition.updateFrame(node: self.phoneBackground, frame: CGRect(origin: CGPoint(x: 0.0, y: navigationHeight + 44.0), size: CGSize(width: layout.size.width, height: 44.0)))
|
||||
@ -214,7 +216,7 @@ final class ChangePhoneNumberControllerNode: ASDisplayNode {
|
||||
transition.updateFrame(node: self.phoneInputNode.countryCodeField, frame: countryCodeFrame.offsetBy(dx: -phoneInputFrame.minX, dy: -phoneInputFrame.minY))
|
||||
transition.updateFrame(node: self.phoneInputNode.numberField, frame: numberFrame.offsetBy(dx: -phoneInputFrame.minX, dy: -phoneInputFrame.minY))
|
||||
|
||||
transition.updateFrame(node: self.noticeNode, frame: CGRect(origin: CGPoint(x: 15.0, y: navigationHeight + inputHeight + 8.0), size: noticeSize))
|
||||
transition.updateFrame(node: self.noticeNode, frame: CGRect(origin: CGPoint(x: 15.0 + insets.left, y: navigationHeight + inputHeight + 8.0), size: noticeSize))
|
||||
}
|
||||
|
||||
func activateInput() {
|
||||
|
||||
@ -89,6 +89,8 @@ final class ChangePhoneNumberIntroController: ViewController {
|
||||
|
||||
super.init(navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData))
|
||||
|
||||
self.supportedOrientations = ViewControllerSupportedOrientations(regularSize: .all, compactSize: .portrait)
|
||||
|
||||
self.statusBar.statusBarStyle = self.presentationData.theme.rootController.statusBar.style.style
|
||||
|
||||
self.title = phoneNumber
|
||||
|
||||
@ -350,7 +350,7 @@ private final class ChatTextLinkEditAlertContentNode: AlertContentNode {
|
||||
|
||||
override func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) -> CGSize {
|
||||
var size = size
|
||||
size.width = min(size.width , 270.0)
|
||||
size.width = min(size.width, 270.0)
|
||||
let measureSize = CGSize(width: size.width - 16.0 * 2.0, height: CGFloat.greatestFiniteMagnitude)
|
||||
|
||||
let hadValidLayout = self.validLayout != nil
|
||||
|
||||
@ -163,8 +163,8 @@ private struct CreatePollControllerOption: Equatable {
|
||||
|
||||
private struct CreatePollControllerState: Equatable {
|
||||
var text: String = ""
|
||||
var options: [CreatePollControllerOption] = [CreatePollControllerOption(text: "", id: 0)]
|
||||
var nextOptionId: Int = 1
|
||||
var options: [CreatePollControllerOption] = [CreatePollControllerOption(text: "", id: 0), CreatePollControllerOption(text: "", id: 1)]
|
||||
var nextOptionId: Int = 2
|
||||
var focusOptionId: Int?
|
||||
var optionIdWithRevealControls: Int?
|
||||
}
|
||||
|
||||
@ -555,6 +555,7 @@ class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNode {
|
||||
}
|
||||
|
||||
if let editableControlSizeAndApply = editableControlSizeAndApply {
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
if strongSelf.editableControlNode == nil {
|
||||
let editableControlNode = editableControlSizeAndApply.1()
|
||||
editableControlNode.tapped = {
|
||||
@ -565,11 +566,12 @@ class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNode {
|
||||
}
|
||||
strongSelf.editableControlNode = editableControlNode
|
||||
strongSelf.insertSubnode(editableControlNode, aboveSubnode: strongSelf.avatarNode)
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
editableControlNode.frame = editableControlFrame
|
||||
transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY))
|
||||
editableControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: editableControlNode, alpha: 1.0)
|
||||
} else {
|
||||
strongSelf.editableControlNode?.frame = editableControlFrame
|
||||
}
|
||||
strongSelf.editableControlNode?.isHidden = !item.editing.editable
|
||||
} else if let editableControlNode = strongSelf.editableControlNode {
|
||||
|
||||
@ -292,6 +292,7 @@ class ItemListRecentSessionItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
|
||||
if let editableControlSizeAndApply = editableControlSizeAndApply {
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
if strongSelf.editableControlNode == nil {
|
||||
let editableControlNode = editableControlSizeAndApply.1()
|
||||
editableControlNode.tapped = {
|
||||
@ -302,11 +303,12 @@ class ItemListRecentSessionItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
strongSelf.editableControlNode = editableControlNode
|
||||
strongSelf.insertSubnode(editableControlNode, aboveSubnode: strongSelf.titleNode)
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
editableControlNode.frame = editableControlFrame
|
||||
transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY))
|
||||
editableControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: editableControlNode, alpha: 1.0)
|
||||
} else {
|
||||
strongSelf.editableControlNode?.frame = editableControlFrame
|
||||
}
|
||||
strongSelf.editableControlNode?.isHidden = !item.editable
|
||||
} else if let editableControlNode = strongSelf.editableControlNode {
|
||||
|
||||
@ -395,6 +395,7 @@ class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
|
||||
if let editableControlSizeAndApply = editableControlSizeAndApply {
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
if strongSelf.editableControlNode == nil {
|
||||
let editableControlNode = editableControlSizeAndApply.1()
|
||||
editableControlNode.tapped = {
|
||||
@ -405,11 +406,12 @@ class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
strongSelf.editableControlNode = editableControlNode
|
||||
strongSelf.insertSubnode(editableControlNode, aboveSubnode: strongSelf.imageNode)
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
editableControlNode.frame = editableControlFrame
|
||||
transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY))
|
||||
editableControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: editableControlNode, alpha: 1.0)
|
||||
} else {
|
||||
strongSelf.editableControlNode?.frame = editableControlFrame
|
||||
}
|
||||
strongSelf.editableControlNode?.isHidden = !item.editing.editable
|
||||
} else if let editableControlNode = strongSelf.editableControlNode {
|
||||
@ -427,11 +429,11 @@ class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode {
|
||||
let reorderControlNode = reorderControlSizeAndApply.1(false)
|
||||
strongSelf.reorderControlNode = reorderControlNode
|
||||
strongSelf.addSubnode(reorderControlNode)
|
||||
let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderControlSizeAndApply.0.width, y: 0.0), size: reorderControlSizeAndApply.0)
|
||||
reorderControlNode.frame = reorderControlFrame
|
||||
reorderControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: reorderControlNode, alpha: 1.0)
|
||||
}
|
||||
let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderControlSizeAndApply.0.width, y: 0.0), size: reorderControlSizeAndApply.0)
|
||||
strongSelf.reorderControlNode?.frame = reorderControlFrame
|
||||
} else if let reorderControlNode = strongSelf.reorderControlNode {
|
||||
strongSelf.reorderControlNode = nil
|
||||
transition.updateAlpha(node: reorderControlNode, alpha: 0.0, completion: { [weak reorderControlNode] _ in
|
||||
|
||||
@ -289,6 +289,7 @@ class ItemListWebsiteItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
|
||||
if let editableControlSizeAndApply = editableControlSizeAndApply {
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
if strongSelf.editableControlNode == nil {
|
||||
let editableControlNode = editableControlSizeAndApply.1()
|
||||
editableControlNode.tapped = {
|
||||
@ -299,11 +300,12 @@ class ItemListWebsiteItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
strongSelf.editableControlNode = editableControlNode
|
||||
strongSelf.insertSubnode(editableControlNode, aboveSubnode: strongSelf.titleNode)
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
editableControlNode.frame = editableControlFrame
|
||||
transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY))
|
||||
editableControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: editableControlNode, alpha: 1.0)
|
||||
} else {
|
||||
strongSelf.editableControlNode?.frame = editableControlFrame
|
||||
}
|
||||
strongSelf.editableControlNode?.isHidden = false
|
||||
} else if let editableControlNode = strongSelf.editableControlNode {
|
||||
|
||||
@ -273,6 +273,7 @@ class LocalizationListItemNode: ItemListRevealOptionsItemNode {
|
||||
transition.updateFrame(node: strongSelf.subtitleNode, frame: CGRect(origin: CGPoint(x: editingOffset + revealOffset + leftInset, y: 31.0), size: subtitleLayout.size))
|
||||
|
||||
if let editableControlSizeAndApply = editableControlSizeAndApply {
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
if strongSelf.editableControlNode == nil {
|
||||
let editableControlNode = editableControlSizeAndApply.1()
|
||||
editableControlNode.tapped = {
|
||||
@ -283,11 +284,12 @@ class LocalizationListItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
strongSelf.editableControlNode = editableControlNode
|
||||
strongSelf.addSubnode(editableControlNode)
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
editableControlNode.frame = editableControlFrame
|
||||
transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY))
|
||||
editableControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: editableControlNode, alpha: 1.0)
|
||||
} else {
|
||||
strongSelf.editableControlNode?.frame = editableControlFrame
|
||||
}
|
||||
strongSelf.editableControlNode?.isHidden = !item.editing.editable
|
||||
} else if let editableControlNode = strongSelf.editableControlNode {
|
||||
|
||||
@ -231,11 +231,6 @@ private func notificationPeerExceptionEntries(presentationData: PresentationData
|
||||
entries.append(.soundModernHeader(index: index, theme: presentationData.theme, title: presentationData.strings.Notifications_AlertTones))
|
||||
index += 1
|
||||
|
||||
if state.selectedSound == .default {
|
||||
var bp:Int = 0
|
||||
bp += 1
|
||||
}
|
||||
|
||||
entries.append(.default(index: index, section: .soundModern, theme: presentationData.theme, text: localizedPeerNotificationSoundString(strings: presentationData.strings, sound: .default, default: state.defaultSound), selected: state.selectedSound == .default))
|
||||
index += 1
|
||||
|
||||
|
||||
@ -302,6 +302,7 @@ class ProxySettingsServerItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
|
||||
if let editableControlSizeAndApply = editableControlSizeAndApply {
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
if strongSelf.editableControlNode == nil {
|
||||
let editableControlNode = editableControlSizeAndApply.1()
|
||||
editableControlNode.tapped = {
|
||||
@ -312,11 +313,12 @@ class ProxySettingsServerItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
strongSelf.editableControlNode = editableControlNode
|
||||
strongSelf.insertSubnode(editableControlNode, aboveSubnode: strongSelf.titleNode)
|
||||
let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0)
|
||||
editableControlNode.frame = editableControlFrame
|
||||
transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY))
|
||||
editableControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: editableControlNode, alpha: 1.0)
|
||||
} else {
|
||||
strongSelf.editableControlNode?.frame = editableControlFrame
|
||||
}
|
||||
strongSelf.editableControlNode?.isHidden = !item.editing.editable
|
||||
} else if let editableControlNode = strongSelf.editableControlNode {
|
||||
@ -334,11 +336,11 @@ class ProxySettingsServerItemNode: ItemListRevealOptionsItemNode {
|
||||
let reorderControlNode = reorderControlSizeAndApply.1(false)
|
||||
strongSelf.reorderControlNode = reorderControlNode
|
||||
strongSelf.addSubnode(reorderControlNode)
|
||||
let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderControlSizeAndApply.0.width, y: 0.0), size: reorderControlSizeAndApply.0)
|
||||
reorderControlNode.frame = reorderControlFrame
|
||||
reorderControlNode.alpha = 0.0
|
||||
transition.updateAlpha(node: reorderControlNode, alpha: 1.0)
|
||||
}
|
||||
let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderControlSizeAndApply.0.width, y: 0.0), size: reorderControlSizeAndApply.0)
|
||||
strongSelf.reorderControlNode?.frame = reorderControlFrame
|
||||
} else if let reorderControlNode = strongSelf.reorderControlNode {
|
||||
strongSelf.reorderControlNode = nil
|
||||
transition.updateAlpha(node: reorderControlNode, alpha: 0.0, completion: { [weak reorderControlNode] _ in
|
||||
|
||||
@ -12,11 +12,6 @@ private final class SampleBufferLayerImpl: AVSampleBufferDisplayLayer {
|
||||
override func action(forKey event: String) -> CAAction? {
|
||||
return SampleBufferLayerImplNullAction()
|
||||
}
|
||||
|
||||
deinit {
|
||||
var bp:Int = 0
|
||||
bp += 1
|
||||
}
|
||||
}
|
||||
|
||||
final class SampleBufferLayer {
|
||||
|
||||
@ -55,8 +55,6 @@ final class SoftwareVideoLayerFrameManager {
|
||||
|
||||
func tick(timestamp: Double) {
|
||||
applyQueue.async {
|
||||
|
||||
|
||||
if self.baseTimestamp == nil && !self.frames.isEmpty {
|
||||
self.baseTimestamp = timestamp
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry {
|
||||
case accentColor(PresentationTheme, String, Int32)
|
||||
case autoNightTheme(PresentationTheme, String, String)
|
||||
case themeListHeader(PresentationTheme, String)
|
||||
case themeItem(PresentationTheme, PresentationStrings, [PresentationBuiltinThemeReference], PresentationBuiltinThemeReference)
|
||||
case themeItem(PresentationTheme, PresentationStrings, [PresentationBuiltinThemeReference], PresentationBuiltinThemeReference, UIColor?)
|
||||
case iconHeader(PresentationTheme, String)
|
||||
case iconItem(PresentationTheme, PresentationStrings, [PresentationAppIcon], String?)
|
||||
case otherHeader(PresentationTheme, String)
|
||||
@ -159,8 +159,8 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry {
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
case let .themeItem(lhsTheme, lhsStrings, lhsThemes, lhsCurrentTheme):
|
||||
if case let .themeItem(rhsTheme, rhsStrings, rhsThemes, rhsCurrentTheme) = rhs, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsThemes == rhsThemes, lhsCurrentTheme == rhsCurrentTheme {
|
||||
case let .themeItem(lhsTheme, lhsStrings, lhsThemes, lhsCurrentTheme, lhsThemeAccentColor):
|
||||
if case let .themeItem(rhsTheme, rhsStrings, rhsThemes, rhsCurrentTheme, rhsThemeAccentColor) = rhs, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsThemes == rhsThemes, lhsCurrentTheme == rhsCurrentTheme, lhsThemeAccentColor == rhsThemeAccentColor {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
@ -246,8 +246,8 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry {
|
||||
})
|
||||
case let .themeListHeader(theme, text):
|
||||
return ItemListSectionHeaderItem(theme: theme, text: text, sectionId: self.section)
|
||||
case let .themeItem(theme, strings, themes, currentTheme):
|
||||
return ThemeSettingsThemeItem(theme: theme, strings: strings, sectionId: self.section, themes: themes.map { ($0, .white) }, currentTheme: currentTheme, updated: { theme in
|
||||
case let .themeItem(theme, strings, themes, currentTheme, themeAccentColor):
|
||||
return ThemeSettingsThemeItem(theme: theme, strings: strings, sectionId: self.section, themes: themes.map { ($0, $0 == .day ? themeAccentColor : nil) }, currentTheme: currentTheme, updated: { theme in
|
||||
arguments.selectTheme(theme.rawValue)
|
||||
})
|
||||
case let .iconHeader(theme, text):
|
||||
@ -283,7 +283,7 @@ private func themeSettingsControllerEntries(presentationData: PresentationData,
|
||||
|
||||
entries.append(.themeListHeader(presentationData.theme, strings.Appearance_ColorTheme.uppercased()))
|
||||
if case let .builtin(theme) = theme.name {
|
||||
entries.append(.themeItem(presentationData.theme, presentationData.strings, [.dayClassic, .day, .nightAccent, .nightGrayscale], theme.reference))
|
||||
entries.append(.themeItem(presentationData.theme, presentationData.strings, [.dayClassic, .day, .nightAccent, .nightGrayscale], theme.reference, themeAccentColor != nil ? UIColor(rgb: UInt32(bitPattern: themeAccentColor!)) : nil))
|
||||
}
|
||||
|
||||
if theme.name == .builtin(.day) {
|
||||
@ -354,9 +354,9 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The
|
||||
} else {
|
||||
switch index {
|
||||
case 1:
|
||||
wallpaper = .color(0xffffff)
|
||||
case 2:
|
||||
wallpaper = .color(0x000000)
|
||||
case 2:
|
||||
wallpaper = .color(0xffffff)
|
||||
case 3:
|
||||
wallpaper = .color(0x18222d)
|
||||
default:
|
||||
|
||||
@ -31,7 +31,7 @@ private func generateBorderImage(theme: PresentationTheme, bordered: Bool, selec
|
||||
})?.stretchableImage(withLeftCapWidth: 15, topCapHeight: 15)
|
||||
}
|
||||
|
||||
private func generateThemeIconImage(theme: PresentationBuiltinThemeReference) -> UIImage {
|
||||
private func generateThemeIconImage(theme: PresentationBuiltinThemeReference, accentColor: UIColor?) -> UIImage {
|
||||
return generateImage(CGSize(width: 98.0, height: 62.0), rotatedContext: { size, context in
|
||||
let bounds = CGRect(origin: CGPoint(), size: size)
|
||||
|
||||
@ -46,7 +46,11 @@ private func generateThemeIconImage(theme: PresentationBuiltinThemeReference) ->
|
||||
case .day:
|
||||
background = .white
|
||||
incomingBubble = UIColor(rgb: 0xd5dde6)
|
||||
outgoingBubble = UIColor(rgb: 0x007aff)
|
||||
if let accentColor = accentColor {
|
||||
outgoingBubble = accentColor
|
||||
} else {
|
||||
outgoingBubble = UIColor(rgb: 0x007aff)
|
||||
}
|
||||
case .nightGrayscale:
|
||||
background = UIColor(rgb: 0x000000)
|
||||
incomingBubble = UIColor(rgb: 0x1f1f1f)
|
||||
@ -83,12 +87,12 @@ class ThemeSettingsThemeItem: ListViewItem, ItemListItem {
|
||||
|
||||
let theme: PresentationTheme
|
||||
let strings: PresentationStrings
|
||||
let themes: [(PresentationBuiltinThemeReference, UIColor)]
|
||||
let themes: [(PresentationBuiltinThemeReference, UIColor?)]
|
||||
let currentTheme: PresentationBuiltinThemeReference
|
||||
let updated: (PresentationBuiltinThemeReference) -> Void
|
||||
let tag: ItemListItemTag?
|
||||
|
||||
init(theme: PresentationTheme, strings: PresentationStrings, sectionId: ItemListSectionId, themes: [(PresentationBuiltinThemeReference, UIColor)], currentTheme: PresentationBuiltinThemeReference, updated: @escaping (PresentationBuiltinThemeReference) -> Void, tag: ItemListItemTag? = nil) {
|
||||
init(theme: PresentationTheme, strings: PresentationStrings, sectionId: ItemListSectionId, themes: [(PresentationBuiltinThemeReference, UIColor?)], currentTheme: PresentationBuiltinThemeReference, updated: @escaping (PresentationBuiltinThemeReference) -> Void, tag: ItemListItemTag? = nil) {
|
||||
self.theme = theme
|
||||
self.strings = strings
|
||||
self.themes = themes
|
||||
@ -297,7 +301,7 @@ class ThemeSettingsThemeItemNode: ListViewItemNode, ItemListItemNode {
|
||||
var nodeOffset = nodeInset
|
||||
|
||||
var i = 0
|
||||
for (theme, color) in item.themes {
|
||||
for (theme, accentColor) in item.themes {
|
||||
let imageNode: ThemeSettingsThemeItemIconNode
|
||||
if strongSelf.nodes.count > i {
|
||||
imageNode = strongSelf.nodes[i]
|
||||
@ -308,8 +312,7 @@ class ThemeSettingsThemeItemNode: ListViewItemNode, ItemListItemNode {
|
||||
}
|
||||
|
||||
let selected = theme == item.currentTheme
|
||||
|
||||
var name = "Theme"
|
||||
let name: String
|
||||
switch theme {
|
||||
case .dayClassic:
|
||||
name = item.strings.Appearance_ThemeCarouselClassic
|
||||
@ -321,7 +324,7 @@ class ThemeSettingsThemeItemNode: ListViewItemNode, ItemListItemNode {
|
||||
name = item.strings.Appearance_ThemeCarouselNightBlue
|
||||
}
|
||||
|
||||
imageNode.setup(theme: item.theme, icon: generateThemeIconImage(theme: theme), title: NSAttributedString(string: name, font: textFont, textColor: selected ? item.theme.list.itemAccentColor : item.theme.list.itemPrimaryTextColor, paragraphAlignment: .center), bordered: true, selected: selected, action: {
|
||||
imageNode.setup(theme: item.theme, icon: generateThemeIconImage(theme: theme, accentColor: accentColor), title: NSAttributedString(string: name, font: textFont, textColor: selected ? item.theme.list.itemAccentColor : item.theme.list.itemPrimaryTextColor, paragraphAlignment: .center), bordered: true, selected: selected, action: {
|
||||
item.updated(theme)
|
||||
})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user