mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-13 20:24:56 +00:00
Display only first emoji of two in small avatar views
This commit is contained in:
parent
7c0c64d037
commit
9334e164b9
@ -14,6 +14,7 @@ static_library(
|
|||||||
"//submodules/AnimationUI:AnimationUI",
|
"//submodules/AnimationUI:AnimationUI",
|
||||||
"//submodules/AppBundle:AppBundle",
|
"//submodules/AppBundle:AppBundle",
|
||||||
"//submodules/AccountContext:AccountContext",
|
"//submodules/AccountContext:AccountContext",
|
||||||
|
"//submodules/Emoji:Emoji",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
|||||||
@ -15,6 +15,7 @@ swift_library(
|
|||||||
"//submodules/AnimationUI:AnimationUI",
|
"//submodules/AnimationUI:AnimationUI",
|
||||||
"//submodules/AppBundle:AppBundle",
|
"//submodules/AppBundle:AppBundle",
|
||||||
"//submodules/AccountContext:AccountContext",
|
"//submodules/AccountContext:AccountContext",
|
||||||
|
"//submodules/Emoji:Emoji",
|
||||||
],
|
],
|
||||||
visibility = [
|
visibility = [
|
||||||
"//visibility:public",
|
"//visibility:public",
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import TelegramPresentationData
|
|||||||
import AnimationUI
|
import AnimationUI
|
||||||
import AppBundle
|
import AppBundle
|
||||||
import AccountContext
|
import AccountContext
|
||||||
|
import Emoji
|
||||||
|
|
||||||
private let deletedIcon = UIImage(bundleImageName: "Avatar/DeletedIcon")?.precomposed()
|
private let deletedIcon = UIImage(bundleImageName: "Avatar/DeletedIcon")?.precomposed()
|
||||||
private let savedMessagesIcon = generateTintedImage(image: UIImage(bundleImageName: "Avatar/SavedMessagesIcon"), color: .white)
|
private let savedMessagesIcon = generateTintedImage(image: UIImage(bundleImageName: "Avatar/SavedMessagesIcon"), color: .white)
|
||||||
@ -522,7 +523,11 @@ public final class AvatarNode: ASDisplayNode {
|
|||||||
context.draw(archivedChatsIcon.cgImage!, in: CGRect(origin: CGPoint(x: floor((bounds.size.width - archivedChatsIcon.size.width) / 2.0), y: floor((bounds.size.height - archivedChatsIcon.size.height) / 2.0)), size: archivedChatsIcon.size))
|
context.draw(archivedChatsIcon.cgImage!, in: CGRect(origin: CGPoint(x: floor((bounds.size.width - archivedChatsIcon.size.width) / 2.0), y: floor((bounds.size.height - archivedChatsIcon.size.height) / 2.0)), size: archivedChatsIcon.size))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let letters = parameters.letters
|
var letters = parameters.letters
|
||||||
|
if letters.count == 2 && letters[0].isSingleEmoji && letters[1].isSingleEmoji {
|
||||||
|
letters = [letters[0]]
|
||||||
|
}
|
||||||
|
|
||||||
let string = letters.count == 0 ? "" : (letters[0] + (letters.count == 1 ? "" : letters[1]))
|
let string = letters.count == 0 ? "" : (letters[0] + (letters.count == 1 ? "" : letters[1]))
|
||||||
let attributedString = NSAttributedString(string: string, attributes: [NSAttributedString.Key.font: parameters.font, NSAttributedString.Key.foregroundColor: UIColor.white])
|
let attributedString = NSAttributedString(string: string, attributes: [NSAttributedString.Key.font: parameters.font, NSAttributedString.Key.foregroundColor: UIColor.white])
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,7 @@ import WalletUI
|
|||||||
import PhoneNumberFormat
|
import PhoneNumberFormat
|
||||||
import AccountUtils
|
import AccountUtils
|
||||||
import AuthTransferUI
|
import AuthTransferUI
|
||||||
|
import Emoji
|
||||||
|
|
||||||
private let avatarFont = avatarPlaceholderFont(size: 13.0)
|
private let avatarFont = avatarPlaceholderFont(size: 13.0)
|
||||||
|
|
||||||
@ -789,21 +790,6 @@ private final class SettingsControllerImpl: ItemListController, SettingsControll
|
|||||||
//self.contextValue.set(.single(context))
|
//self.contextValue.set(.single(context))
|
||||||
}
|
}
|
||||||
|
|
||||||
/*func presentTabBarPreviewingController(sourceNodes: [ASDisplayNode]) {
|
|
||||||
guard let (maybePrimary, other) = self.accountsAndPeersValue, let primary = maybePrimary else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let controller = TabBarAccountSwitchController(sharedContext: self.sharedContext, accounts: (primary, other), canAddAccounts: other.count + 1 < maximumNumberOfAccounts, switchToAccount: { [weak self] id in
|
|
||||||
self?.switchToAccount?(id)
|
|
||||||
}, addAccount: { [weak self] in
|
|
||||||
self?.addAccount?()
|
|
||||||
}, sourceNodes: sourceNodes)
|
|
||||||
self.sharedContext.mainWindow?.present(controller, on: .root)
|
|
||||||
}
|
|
||||||
|
|
||||||
func updateTabBarPreviewingControllerPresentation(_ update: TabBarContainedControllerPresentationUpdate) {
|
|
||||||
}*/
|
|
||||||
|
|
||||||
override public func tabBarItemContextAction(sourceNode: ContextExtractedContentContainingNode, gesture: ContextGesture) {
|
override public func tabBarItemContextAction(sourceNode: ContextExtractedContentContainingNode, gesture: ContextGesture) {
|
||||||
guard let (maybePrimary, other) = self.accountsAndPeersValue, let primary = maybePrimary else {
|
guard let (maybePrimary, other) = self.accountsAndPeersValue, let primary = maybePrimary else {
|
||||||
return
|
return
|
||||||
@ -834,7 +820,10 @@ private final class SettingsControllerImpl: ItemListController, SettingsControll
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let peerId = peer.id
|
let peerId = peer.id
|
||||||
let displayLetters = peer.displayLetters
|
var displayLetters = peer.displayLetters
|
||||||
|
if displayLetters.count == 2 && displayLetters[0].isSingleEmoji && displayLetters[1].isSingleEmoji {
|
||||||
|
displayLetters = [displayLetters[0]]
|
||||||
|
}
|
||||||
iconSignal = Signal { subscriber in
|
iconSignal = Signal { subscriber in
|
||||||
let image = generateImage(size, rotatedContext: { size, context in
|
let image = generateImage(size, rotatedContext: { size, context in
|
||||||
context.clear(CGRect(origin: CGPoint(), size: size))
|
context.clear(CGRect(origin: CGPoint(), size: size))
|
||||||
@ -1656,16 +1645,21 @@ public func settingsController(context: AccountContext, accountManager: AccountM
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return Signal { subscriber in
|
return Signal { subscriber in
|
||||||
|
var displayLetters = primary.1.displayLetters
|
||||||
|
if displayLetters.count == 2 && displayLetters[0].isSingleEmoji && displayLetters[1].isSingleEmoji {
|
||||||
|
displayLetters = [displayLetters[0]]
|
||||||
|
}
|
||||||
let image = generateImage(size, rotatedContext: { size, context in
|
let image = generateImage(size, rotatedContext: { size, context in
|
||||||
context.clear(CGRect(origin: CGPoint(), size: size))
|
context.clear(CGRect(origin: CGPoint(), size: size))
|
||||||
context.translateBy(x: inset, y: inset)
|
context.translateBy(x: inset, y: inset)
|
||||||
drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: primary.1.displayLetters, peerId: primary.1.id)
|
|
||||||
|
drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: displayLetters, peerId: primary.1.id)
|
||||||
})?.withRenderingMode(.alwaysOriginal)
|
})?.withRenderingMode(.alwaysOriginal)
|
||||||
|
|
||||||
let selectedImage = generateImage(size, rotatedContext: { size, context in
|
let selectedImage = generateImage(size, rotatedContext: { size, context in
|
||||||
context.clear(CGRect(origin: CGPoint(), size: size))
|
context.clear(CGRect(origin: CGPoint(), size: size))
|
||||||
context.translateBy(x: inset, y: inset)
|
context.translateBy(x: inset, y: inset)
|
||||||
drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: primary.1.displayLetters, peerId: primary.1.id)
|
drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: displayLetters, peerId: primary.1.id)
|
||||||
context.translateBy(x: -inset, y: -inset)
|
context.translateBy(x: -inset, y: -inset)
|
||||||
context.setLineWidth(1.0)
|
context.setLineWidth(1.0)
|
||||||
context.setStrokeColor(primary.2.rootController.tabBar.selectedIconColor.cgColor)
|
context.setStrokeColor(primary.2.rootController.tabBar.selectedIconColor.cgColor)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user