Various improvements

This commit is contained in:
Ilya Laktyushin
2023-10-18 23:59:56 +04:00
parent 597fd71285
commit 7fbac7ddc0
42 changed files with 1092 additions and 791 deletions

View File

@@ -514,7 +514,7 @@ private class AdMessagesHistoryContextImpl {
}
} else if let chatInvite = chatInvite, let chatInviteHash = chatInviteHash {
switch chatInvite {
case let .chatInvite(flags, title, _, photo, participantsCount, participants):
case let .chatInvite(flags, title, _, photo, participantsCount, participants, nameColor):
let photo = telegramMediaImageFromApiPhoto(photo).flatMap({ smallestImageRepresentation($0.representations) })
let flags: ExternalJoiningChatState.Invite.Flags = .init(isChannel: (flags & (1 << 0)) != 0, isBroadcast: (flags & (1 << 1)) != 0, isPublic: (flags & (1 << 2)) != 0, isMegagroup: (flags & (1 << 3)) != 0, requestNeeded: (flags & (1 << 6)) != 0, isVerified: (flags & (1 << 7)) != 0, isScam: (flags & (1 << 8)) != 0, isFake: (flags & (1 << 9)) != 0)
@@ -522,6 +522,7 @@ private class AdMessagesHistoryContextImpl {
let _ = flags
let _ = participantsCount
let _ = participants
let _ = nameColor
target = .invite(CachedMessage.Target.Invite(
title: title,

View File

@@ -47,6 +47,7 @@ public enum ExternalJoiningChatState {
public let photoRepresentation: TelegramMediaImageRepresentation?
public let participantsCount: Int32
public let participants: [EnginePeer]?
public let nameColor: PeerNameColor?
}
case invite(Invite)
@@ -105,10 +106,10 @@ func _internal_joinLinkInformation(_ hash: String, account: Account) -> Signal<E
|> mapToSignal { result -> Signal<ExternalJoiningChatState, JoinLinkInfoError> in
if let result = result {
switch result {
case let .chatInvite(flags, title, about, invitePhoto, participantsCount, participants):
case let .chatInvite(flags, title, about, invitePhoto, participantsCount, participants, nameColor):
let photo = telegramMediaImageFromApiPhoto(invitePhoto).flatMap({ smallestImageRepresentation($0.representations) })
let flags: ExternalJoiningChatState.Invite.Flags = .init(isChannel: (flags & (1 << 0)) != 0, isBroadcast: (flags & (1 << 1)) != 0, isPublic: (flags & (1 << 2)) != 0, isMegagroup: (flags & (1 << 3)) != 0, requestNeeded: (flags & (1 << 6)) != 0, isVerified: (flags & (1 << 7)) != 0, isScam: (flags & (1 << 8)) != 0, isFake: (flags & (1 << 9)) != 0)
return .single(.invite(ExternalJoiningChatState.Invite(flags: flags, title: title, about: about, photoRepresentation: photo, participantsCount: participantsCount, participants: participants?.map({ EnginePeer(TelegramUser(user: $0)) }))))
return .single(.invite(ExternalJoiningChatState.Invite(flags: flags, title: title, about: about, photoRepresentation: photo, participantsCount: participantsCount, participants: participants?.map({ EnginePeer(TelegramUser(user: $0)) }), nameColor: nameColor.flatMap({ PeerNameColor(rawValue: $0) }))))
case let .chatInviteAlready(chat):
if let peer = parseTelegramGroupOrChannel(chat: chat) {
return account.postbox.transaction({ (transaction) -> ExternalJoiningChatState in

View File

@@ -509,6 +509,10 @@ public extension EnginePeer {
var nameColor: PeerNameColor? {
return self._asPeer().nameColor
}
var backgroundEmojiId: Int64? {
return self._asPeer().backgroundEmojiId
}
}
public extension EnginePeer {