diff --git a/TelegramUI/DeviceContactDataManager.swift b/TelegramUI/DeviceContactDataManager.swift index f788be9deb..c7f79dccfa 100644 --- a/TelegramUI/DeviceContactDataManager.swift +++ b/TelegramUI/DeviceContactDataManager.swift @@ -483,7 +483,7 @@ private final class DeviceContactDataManagerImpl { var importableContactData: [String: (DeviceContactStableId, ImportableDeviceContactData)] = [:] for (stableId, basicData) in self.stableIdToBasicContactData { for phoneNumber in basicData.phoneNumbers { - let normalizedNumber = formatPhoneNumber(phoneNumber.value) + let normalizedNumber = phoneNumber.value var replace = false if let current = importableContactData[normalizedNumber] { if stableId < current.0 { diff --git a/TelegramUI/ManagedAudioRecorder.swift b/TelegramUI/ManagedAudioRecorder.swift index de6ecd12db..9020f96c11 100644 --- a/TelegramUI/ManagedAudioRecorder.swift +++ b/TelegramUI/ManagedAudioRecorder.swift @@ -431,12 +431,10 @@ final class ManagedAudioRecorderContext { self.beganWithTone(false) } - self.audioUnit.with { audioUnit -> Void in - if let audioUnit = audioUnit { - guard AudioOutputUnitStart(audioUnit) == noErr else { - self.stop() - return - } + if let audioUnit = self.audioUnit.with({ $0 }) { + guard AudioOutputUnitStart(audioUnit) == noErr else { + self.stop() + return } } } diff --git a/TelegramUI/MediaManager.swift b/TelegramUI/MediaManager.swift index 8db78dbe36..ed6cfb84f0 100644 --- a/TelegramUI/MediaManager.swift +++ b/TelegramUI/MediaManager.swift @@ -46,6 +46,15 @@ public final class MediaManager: NSObject { return sharedAudioSession } + private let isCurrentPromise = ValuePromise(false) + var isCurrent: Bool = false { + didSet { + if self.isCurrent != oldValue { + self.isCurrentPromise.set(self.isCurrent) + } + } + } + private let queue = Queue.mainQueue() private let postbox: Postbox @@ -370,8 +379,11 @@ public final class MediaManager: NSObject { } self.globalAudioSessionForegroundDisposable.set((shouldKeepAudioSession |> deliverOnMainQueue).start(next: { [weak self] value in - if value { - self?.audioSession.dropAll() + guard let strongSelf = self else { + return + } + if strongSelf.isCurrent && value { + strongSelf.audioSession.dropAll() } })) } diff --git a/TelegramUI/TelegramApplicationContext.swift b/TelegramUI/TelegramApplicationContext.swift index 6c514e1d41..57b3fd4c4e 100644 --- a/TelegramUI/TelegramApplicationContext.swift +++ b/TelegramUI/TelegramApplicationContext.swift @@ -105,6 +105,12 @@ public final class TelegramApplicationContext { private var storedPassword: (String, CFAbsoluteTime, SwiftSignalKit.Timer)? + public var isCurrent: Bool = false { + didSet { + self.mediaManager?.isCurrent = self.isCurrent + } + } + public init(applicationBindings: TelegramApplicationBindings, accountManager: AccountManager, account: Account?, initialPresentationDataAndSettings: InitialPresentationDataAndSettings, postbox: Postbox) { if account != nil { self.mediaManager = MediaManager(postbox: postbox, inForeground: applicationBindings.applicationInForeground)