From 45f1f514acce249bd1aee8edf36c66accffc8665 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sun, 11 Nov 2018 18:05:16 +0400 Subject: [PATCH] Added support of Public Group Ban error --- TelegramCore/PendingMessageManager.swift | 19 +++++++++++++++---- TelegramCore/PhoneNumbers.swift | 4 ++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/TelegramCore/PendingMessageManager.swift b/TelegramCore/PendingMessageManager.swift index 32bc2dcde7..4fe899945a 100644 --- a/TelegramCore/PendingMessageManager.swift +++ b/TelegramCore/PendingMessageManager.swift @@ -55,6 +55,17 @@ private final class PendingMessageContext { public enum PendingMessageFailureReason { case flood + case publicBan +} + +private func reasonForError(_ error: String) -> PendingMessageFailureReason? { + if error.hasPrefix("PEER_FLOOD") { + return .flood + } else if error.hasPrefix("USER_BANNED_IN_CHANNEL") { + return .publicBan + } else { + return nil + } } private final class PeerPendingMessagesSummaryContext { @@ -740,10 +751,10 @@ public final class PendingMessageManager { strongSelf.beginSendingMessages(messages.map({ $0.0.id })) return .complete() } - } else if error.errorDescription.hasPrefix("PEER_FLOOD"), let message = messages.first?.0 { + } else if let failureReason = reasonForError(error.errorDescription), let message = messages.first?.0 { if let context = strongSelf.peerSummaryContexts[message.id.peerId] { for subscriber in context.messageFailedSubscribers.copyItems() { - subscriber(.flood) + subscriber(failureReason) } } } @@ -948,10 +959,10 @@ public final class PendingMessageManager { strongSelf.beginSendingMessages([messageId]) return } - } else if error.errorDescription.hasPrefix("PEER_FLOOD") { + } else if let failureReason = reasonForError(error.errorDescription) { if let context = strongSelf.peerSummaryContexts[message.id.peerId] { for subscriber in context.messageFailedSubscribers.copyItems() { - subscriber(.flood) + subscriber(failureReason) } } } diff --git a/TelegramCore/PhoneNumbers.swift b/TelegramCore/PhoneNumbers.swift index df09039be6..0f69dbf79f 100644 --- a/TelegramCore/PhoneNumbers.swift +++ b/TelegramCore/PhoneNumbers.swift @@ -11,3 +11,7 @@ public func formatPhoneNumber(_ string: String) -> String { return string } } + +public func isViablePhoneNumber(_ string: String) -> Bool { + return phoneNumberUtil.isViablePhoneNumber(string) +}