mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-25 17:43:18 +00:00
Fix send as peer
This commit is contained in:
parent
aedd6bb1c9
commit
d895130cd1
@ -5123,21 +5123,6 @@ public extension Api {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func toggleNoForwards(channel: Api.InputChannel, enabled: Api.Bool) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.Updates>) {
|
|
||||||
let buffer = Buffer()
|
|
||||||
buffer.appendInt32(-219318255)
|
|
||||||
channel.serialize(buffer, true)
|
|
||||||
enabled.serialize(buffer, true)
|
|
||||||
return (FunctionDescription(name: "channels.toggleNoForwards", parameters: [("channel", channel), ("enabled", enabled)]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.Updates? in
|
|
||||||
let reader = BufferReader(buffer)
|
|
||||||
var result: Api.Updates?
|
|
||||||
if let signature = reader.readInt32() {
|
|
||||||
result = Api.parse(reader, signature: signature) as? Api.Updates
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
public static func getSendAs(peer: Api.InputPeer) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.channels.SendAsPeers>) {
|
public static func getSendAs(peer: Api.InputPeer) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.channels.SendAsPeers>) {
|
||||||
let buffer = Buffer()
|
let buffer = Buffer()
|
||||||
buffer.appendInt32(231174382)
|
buffer.appendInt32(231174382)
|
||||||
|
|||||||
@ -79,6 +79,13 @@ func apiInputPeer(_ peer: Peer) -> Api.InputPeer? {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func apiInputPeerOrSelf(_ peer: Peer, accountPeerId: PeerId) -> Api.InputPeer? {
|
||||||
|
if peer.id == accountPeerId {
|
||||||
|
return .inputPeerSelf
|
||||||
|
}
|
||||||
|
return apiInputPeer(peer)
|
||||||
|
}
|
||||||
|
|
||||||
func apiInputChannel(_ peer: Peer) -> Api.InputChannel? {
|
func apiInputChannel(_ peer: Peer) -> Api.InputChannel? {
|
||||||
if let channel = peer as? TelegramChannel, let accessHash = channel.accessHash {
|
if let channel = peer as? TelegramChannel, let accessHash = channel.accessHash {
|
||||||
return Api.InputChannel.inputChannel(channelId: channel.id.id._internalGetInt64Value(), accessHash: accessHash.value)
|
return Api.InputChannel.inputChannel(channelId: channel.id.id._internalGetInt64Value(), accessHash: accessHash.value)
|
||||||
|
|||||||
@ -112,7 +112,7 @@ private func sendMessageContent(account: Account, peerId: PeerId, attributes: [M
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sendAsInputPeer: Api.InputPeer?
|
var sendAsInputPeer: Api.InputPeer?
|
||||||
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeer(sendAsPeer) {
|
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeerOrSelf(sendAsPeer, accountPeerId: account.peerId) {
|
||||||
sendAsInputPeer = inputPeer
|
sendAsInputPeer = inputPeer
|
||||||
flags |= (1 << 13)
|
flags |= (1 << 13)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -439,7 +439,7 @@ public final class PendingMessageManager {
|
|||||||
for (context, _, _) in messages {
|
for (context, _, _) in messages {
|
||||||
context.state = .sending(groupId: nil)
|
context.state = .sending(groupId: nil)
|
||||||
}
|
}
|
||||||
let sendMessage: Signal<PendingMessageResult, NoError> = strongSelf.sendGroupMessagesContent(network: strongSelf.network, postbox: strongSelf.postbox, stateManager: strongSelf.stateManager, group: messages.map { data in
|
let sendMessage: Signal<PendingMessageResult, NoError> = strongSelf.sendGroupMessagesContent(network: strongSelf.network, postbox: strongSelf.postbox, stateManager: strongSelf.stateManager, accountPeerId: strongSelf.accountPeerId, group: messages.map { data in
|
||||||
let (_, message, forwardInfo) = data
|
let (_, message, forwardInfo) = data
|
||||||
return (message.id, PendingMessageUploadedContentAndReuploadInfo(content: .forward(forwardInfo), reuploadInfo: nil))
|
return (message.id, PendingMessageUploadedContentAndReuploadInfo(content: .forward(forwardInfo), reuploadInfo: nil))
|
||||||
})
|
})
|
||||||
@ -508,7 +508,7 @@ public final class PendingMessageManager {
|
|||||||
for (context, _, _) in messages {
|
for (context, _, _) in messages {
|
||||||
context.state = .sending(groupId: groupId)
|
context.state = .sending(groupId: groupId)
|
||||||
}
|
}
|
||||||
let sendMessage: Signal<PendingMessageResult, NoError> = self.sendGroupMessagesContent(network: self.network, postbox: self.postbox, stateManager: self.stateManager, group: messages.map { ($0.1, $0.2) })
|
let sendMessage: Signal<PendingMessageResult, NoError> = self.sendGroupMessagesContent(network: self.network, postbox: self.postbox, stateManager: self.stateManager, accountPeerId: self.accountPeerId, group: messages.map { ($0.1, $0.2) })
|
||||||
|> map { next -> PendingMessageResult in
|
|> map { next -> PendingMessageResult in
|
||||||
return .progress(1.0)
|
return .progress(1.0)
|
||||||
}
|
}
|
||||||
@ -518,7 +518,7 @@ public final class PendingMessageManager {
|
|||||||
|
|
||||||
private func commitSendingSingleMessage(messageContext: PendingMessageContext, messageId: MessageId, content: PendingMessageUploadedContentAndReuploadInfo) {
|
private func commitSendingSingleMessage(messageContext: PendingMessageContext, messageId: MessageId, content: PendingMessageUploadedContentAndReuploadInfo) {
|
||||||
messageContext.state = .sending(groupId: nil)
|
messageContext.state = .sending(groupId: nil)
|
||||||
let sendMessage: Signal<PendingMessageResult, NoError> = self.sendMessageContent(network: self.network, postbox: self.postbox, stateManager: self.stateManager, messageId: messageId, content: content)
|
let sendMessage: Signal<PendingMessageResult, NoError> = self.sendMessageContent(network: self.network, postbox: self.postbox, stateManager: self.stateManager, accountPeerId: self.accountPeerId, messageId: messageId, content: content)
|
||||||
|> map { next -> PendingMessageResult in
|
|> map { next -> PendingMessageResult in
|
||||||
return .progress(1.0)
|
return .progress(1.0)
|
||||||
}
|
}
|
||||||
@ -669,7 +669,7 @@ public final class PendingMessageManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func sendGroupMessagesContent(network: Network, postbox: Postbox, stateManager: AccountStateManager, group: [(messageId: MessageId, content: PendingMessageUploadedContentAndReuploadInfo)]) -> Signal<Void, NoError> {
|
private func sendGroupMessagesContent(network: Network, postbox: Postbox, stateManager: AccountStateManager, accountPeerId: PeerId, group: [(messageId: MessageId, content: PendingMessageUploadedContentAndReuploadInfo)]) -> Signal<Void, NoError> {
|
||||||
let queue = self.queue
|
let queue = self.queue
|
||||||
return postbox.transaction { [weak self] transaction -> Signal<Void, NoError> in
|
return postbox.transaction { [weak self] transaction -> Signal<Void, NoError> in
|
||||||
if group.isEmpty {
|
if group.isEmpty {
|
||||||
@ -738,7 +738,7 @@ public final class PendingMessageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sendAsInputPeer: Api.InputPeer?
|
var sendAsInputPeer: Api.InputPeer?
|
||||||
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeer(sendAsPeer) {
|
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeerOrSelf(sendAsPeer, accountPeerId: accountPeerId) {
|
||||||
sendAsInputPeer = inputPeer
|
sendAsInputPeer = inputPeer
|
||||||
flags |= (1 << 13)
|
flags |= (1 << 13)
|
||||||
}
|
}
|
||||||
@ -784,7 +784,7 @@ public final class PendingMessageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sendAsInputPeer: Api.InputPeer?
|
var sendAsInputPeer: Api.InputPeer?
|
||||||
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeer(sendAsPeer) {
|
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeerOrSelf(sendAsPeer, accountPeerId: accountPeerId) {
|
||||||
sendAsInputPeer = inputPeer
|
sendAsInputPeer = inputPeer
|
||||||
flags |= (1 << 13)
|
flags |= (1 << 13)
|
||||||
}
|
}
|
||||||
@ -976,7 +976,7 @@ public final class PendingMessageManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func sendMessageContent(network: Network, postbox: Postbox, stateManager: AccountStateManager, messageId: MessageId, content: PendingMessageUploadedContentAndReuploadInfo) -> Signal<Void, NoError> {
|
private func sendMessageContent(network: Network, postbox: Postbox, stateManager: AccountStateManager, accountPeerId: PeerId, messageId: MessageId, content: PendingMessageUploadedContentAndReuploadInfo) -> Signal<Void, NoError> {
|
||||||
let queue = self.queue
|
let queue = self.queue
|
||||||
return postbox.transaction { [weak self] transaction -> Signal<Void, NoError> in
|
return postbox.transaction { [weak self] transaction -> Signal<Void, NoError> in
|
||||||
guard let message = transaction.getMessage(messageId) else {
|
guard let message = transaction.getMessage(messageId) else {
|
||||||
@ -1034,7 +1034,7 @@ public final class PendingMessageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sendAsInputPeer: Api.InputPeer?
|
var sendAsInputPeer: Api.InputPeer?
|
||||||
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeer(sendAsPeer) {
|
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeerOrSelf(sendAsPeer, accountPeerId: accountPeerId) {
|
||||||
sendAsInputPeer = inputPeer
|
sendAsInputPeer = inputPeer
|
||||||
flags |= (1 << 13)
|
flags |= (1 << 13)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@ func _internal_forwardGameWithScore(account: Account, messageId: MessageId, to p
|
|||||||
var flags: Int32 = 1 << 8
|
var flags: Int32 = 1 << 8
|
||||||
|
|
||||||
var sendAsInputPeer: Api.InputPeer?
|
var sendAsInputPeer: Api.InputPeer?
|
||||||
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeer(sendAsPeer) {
|
if let sendAsPeerId = sendAsPeerId, let sendAsPeer = transaction.getPeer(sendAsPeerId), let inputPeer = apiInputPeerOrSelf(sendAsPeer, accountPeerId: account.peerId) {
|
||||||
sendAsInputPeer = inputPeer
|
sendAsInputPeer = inputPeer
|
||||||
flags |= (1 << 13)
|
flags |= (1 << 13)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -125,7 +125,7 @@ public enum UpdatePeerSendAsPeerError {
|
|||||||
|
|
||||||
func _internal_updatePeerSendAsPeer(account: Account, peerId: PeerId, sendAs: PeerId) -> Signal<Never, UpdatePeerSendAsPeerError> {
|
func _internal_updatePeerSendAsPeer(account: Account, peerId: PeerId, sendAs: PeerId) -> Signal<Never, UpdatePeerSendAsPeerError> {
|
||||||
return account.postbox.transaction { transaction -> (Api.InputPeer, Api.InputPeer)? in
|
return account.postbox.transaction { transaction -> (Api.InputPeer, Api.InputPeer)? in
|
||||||
if let peer = transaction.getPeer(peerId), let sendAsPeer = transaction.getPeer(sendAs), let inputPeer = apiInputPeer(peer), let sendAsInputPeer = apiInputPeer(sendAsPeer) {
|
if let peer = transaction.getPeer(peerId), let sendAsPeer = transaction.getPeer(sendAs), let inputPeer = apiInputPeer(peer), let sendAsInputPeer = apiInputPeerOrSelf(sendAsPeer, accountPeerId: account.peerId) {
|
||||||
transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, cachedData -> CachedPeerData? in
|
transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, cachedData -> CachedPeerData? in
|
||||||
if let cachedData = cachedData as? CachedChannelData {
|
if let cachedData = cachedData as? CachedChannelData {
|
||||||
return cachedData.withUpdatedSendAsPeerId(sendAs)
|
return cachedData.withUpdatedSendAsPeerId(sendAs)
|
||||||
|
|||||||
@ -3922,7 +3922,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
var presentationData = presentationData
|
var presentationData = presentationData
|
||||||
var useDarkAppearance = presentationData.theme.overallDarkAppearance
|
var useDarkAppearance = presentationData.theme.overallDarkAppearance
|
||||||
|
|
||||||
if let themeEmoticon = themeEmoticon, let theme = chatThemes.first(where: { $0.emoticon == themeEmoticon }) {
|
if let themeEmoticon = themeEmoticon, let theme = chatThemes.first(where: { $0.emoticon?.strippedEmoji == themeEmoticon.strippedEmoji }) {
|
||||||
if let darkAppearancePreview = darkAppearancePreview {
|
if let darkAppearancePreview = darkAppearancePreview {
|
||||||
useDarkAppearance = darkAppearancePreview
|
useDarkAppearance = darkAppearancePreview
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user