mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-05 02:50:42 +00:00
Merge commit '7f07093eb0a4133d1147a490402f5b07e1233083'
This commit is contained in:
commit
9439ae81ac
11
submodules/TelegramUI/Images.xcassets/Call/VideoUnavailable.imageset/Contents.json
vendored
Normal file
11
submodules/TelegramUI/Images.xcassets/Call/VideoUnavailable.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
@ -947,7 +947,27 @@ func availableActionsForMemberOfPeer(accountPeerId: PeerId, peer: Peer?, member:
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func peerInfoHeaderButtons(peer: Peer?, cachedData: CachedPeerData?, isOpenedFromChat: Bool, videoCallsEnabled: Bool, isSecretChat: Bool, isContact: Bool) -> [PeerInfoHeaderButtonKey] {
|
func peerInfoHeaderButtonIsHiddenWhileExpanded(buttonKey: PeerInfoHeaderButtonKey, isOpenedFromChat: Bool) -> Bool {
|
||||||
|
var hiddenWhileExpanded = false
|
||||||
|
if isOpenedFromChat {
|
||||||
|
switch buttonKey {
|
||||||
|
case .message, .search, .videoCall, .addMember:
|
||||||
|
hiddenWhileExpanded = true
|
||||||
|
default:
|
||||||
|
hiddenWhileExpanded = false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch buttonKey {
|
||||||
|
case .search, .call, .videoCall, .addMember:
|
||||||
|
hiddenWhileExpanded = true
|
||||||
|
default:
|
||||||
|
hiddenWhileExpanded = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return hiddenWhileExpanded
|
||||||
|
}
|
||||||
|
|
||||||
|
func peerInfoHeaderButtons(peer: Peer?, cachedData: CachedPeerData?, isOpenedFromChat: Bool, isExpanded: Bool, videoCallsEnabled: Bool, isSecretChat: Bool, isContact: Bool) -> [PeerInfoHeaderButtonKey] {
|
||||||
var result: [PeerInfoHeaderButtonKey] = []
|
var result: [PeerInfoHeaderButtonKey] = []
|
||||||
if let user = peer as? TelegramUser {
|
if let user = peer as? TelegramUser {
|
||||||
if !isOpenedFromChat {
|
if !isOpenedFromChat {
|
||||||
@ -1096,6 +1116,9 @@ func peerInfoHeaderButtons(peer: Peer?, cachedData: CachedPeerData?, isOpenedFro
|
|||||||
result.append(.search)
|
result.append(.search)
|
||||||
result.append(.more)
|
result.append(.more)
|
||||||
}
|
}
|
||||||
|
if isExpanded && result.count > 3 {
|
||||||
|
result = result.filter { !peerInfoHeaderButtonIsHiddenWhileExpanded(buttonKey: $0, isOpenedFromChat: isOpenedFromChat) }
|
||||||
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1999,7 +1999,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
let expandedAvatarListHeight = min(width, containerHeight - expandedAvatarControlsHeight)
|
let expandedAvatarListHeight = min(width, containerHeight - expandedAvatarControlsHeight)
|
||||||
let expandedAvatarListSize = CGSize(width: width, height: expandedAvatarListHeight)
|
let expandedAvatarListSize = CGSize(width: width, height: expandedAvatarListHeight)
|
||||||
|
|
||||||
let buttonKeys: [PeerInfoHeaderButtonKey] = self.isSettings ? [] : peerInfoHeaderButtons(peer: peer, cachedData: cachedData, isOpenedFromChat: self.isOpenedFromChat, videoCallsEnabled: self.videoCallsEnabled, isSecretChat: isSecretChat, isContact: isContact)
|
let buttonKeys: [PeerInfoHeaderButtonKey] = self.isSettings ? [] : peerInfoHeaderButtons(peer: peer, cachedData: cachedData, isOpenedFromChat: self.isOpenedFromChat, isExpanded: false, videoCallsEnabled: self.videoCallsEnabled, isSecretChat: isSecretChat, isContact: isContact)
|
||||||
|
|
||||||
var isVerified = false
|
var isVerified = false
|
||||||
let titleString: NSAttributedString
|
let titleString: NSAttributedString
|
||||||
@ -2469,21 +2469,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
|
|
||||||
let hiddenWhileExpanded: Bool
|
let hiddenWhileExpanded: Bool
|
||||||
if buttonKeys.count > 3 {
|
if buttonKeys.count > 3 {
|
||||||
if self.isOpenedFromChat {
|
hiddenWhileExpanded = peerInfoHeaderButtonIsHiddenWhileExpanded(buttonKey: buttonKey, isOpenedFromChat: self.isOpenedFromChat)
|
||||||
switch buttonKey {
|
|
||||||
case .message, .search, .mute:
|
|
||||||
hiddenWhileExpanded = true
|
|
||||||
default:
|
|
||||||
hiddenWhileExpanded = false
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
switch buttonKey {
|
|
||||||
case .mute, .search, .videoCall:
|
|
||||||
hiddenWhileExpanded = true
|
|
||||||
default:
|
|
||||||
hiddenWhileExpanded = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
hiddenWhileExpanded = false
|
hiddenWhileExpanded = false
|
||||||
}
|
}
|
||||||
|
@ -3478,10 +3478,27 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD
|
|||||||
mainItemsImpl = {
|
mainItemsImpl = {
|
||||||
var items: [ContextMenuItem] = []
|
var items: [ContextMenuItem] = []
|
||||||
|
|
||||||
let headerButtons = peerInfoHeaderButtons(peer: peer, cachedData: data.cachedData, isOpenedFromChat: self.isOpenedFromChat, videoCallsEnabled: self.videoCallsEnabled, isSecretChat: self.peerId.namespace == Namespaces.Peer.SecretChat, isContact: self.data?.isContact ?? false)
|
let allHeaderButtons = Set(peerInfoHeaderButtons(peer: peer, cachedData: data.cachedData, isOpenedFromChat: self.isOpenedFromChat, isExpanded: false, videoCallsEnabled: self.videoCallsEnabled, isSecretChat: self.peerId.namespace == Namespaces.Peer.SecretChat, isContact: self.data?.isContact ?? false))
|
||||||
|
let headerButtons = Set(peerInfoHeaderButtons(peer: peer, cachedData: data.cachedData, isOpenedFromChat: self.isOpenedFromChat, isExpanded: self.headerNode.isAvatarExpanded, videoCallsEnabled: self.videoCallsEnabled, isSecretChat: self.peerId.namespace == Namespaces.Peer.SecretChat, isContact: self.data?.isContact ?? false))
|
||||||
|
|
||||||
let hasSearch = !headerButtons.contains(.search) || (self.headerNode.isAvatarExpanded && self.peerId.namespace == Namespaces.Peer.CloudUser)
|
let filteredButtons = allHeaderButtons.subtracting(headerButtons)
|
||||||
if hasSearch {
|
if filteredButtons.contains(.addMember) {
|
||||||
|
items.append(.action(ContextMenuActionItem(text: presentationData.strings.PeerInfo_ButtonAddMember, icon: { theme in
|
||||||
|
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/AddUser"), color: theme.contextMenu.primaryColor)
|
||||||
|
}, action: { [weak self] _, f in
|
||||||
|
f(.dismissWithoutContent)
|
||||||
|
self?.openAddMember()
|
||||||
|
})))
|
||||||
|
}
|
||||||
|
if filteredButtons.contains(.call) {
|
||||||
|
items.append(.action(ContextMenuActionItem(text: presentationData.strings.PeerInfo_ButtonCall, icon: { theme in
|
||||||
|
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Call"), color: theme.contextMenu.primaryColor)
|
||||||
|
}, action: { [weak self] _, f in
|
||||||
|
f(.dismissWithoutContent)
|
||||||
|
self?.requestCall(isVideo: false)
|
||||||
|
})))
|
||||||
|
}
|
||||||
|
if filteredButtons.contains(.search) {
|
||||||
items.append(.action(ContextMenuActionItem(text: presentationData.strings.ChatSearch_SearchPlaceholder, icon: { theme in
|
items.append(.action(ContextMenuActionItem(text: presentationData.strings.ChatSearch_SearchPlaceholder, icon: { theme in
|
||||||
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Search"), color: theme.contextMenu.primaryColor)
|
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Search"), color: theme.contextMenu.primaryColor)
|
||||||
}, action: { [weak self] _, f in
|
}, action: { [weak self] _, f in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user