From 8fc4c06080f1972983ef25057885d1e0fd88d4bb Mon Sep 17 00:00:00 2001 From: Peter Iakovlev Date: Thu, 17 Jan 2019 21:49:37 +0400 Subject: [PATCH] Temporary disable fast forward updates Fix contacts joined notification settings Adjust multipartUpload after resource arrives if no work has been done --- TelegramCore/AccountStateManager.swift | 8 +++++--- .../ManagedGlobalNotificationSettings.swift | 10 +++++----- TelegramCore/MultipartUpload.swift | 20 ++++++++++++++++--- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/TelegramCore/AccountStateManager.swift b/TelegramCore/AccountStateManager.swift index f99aaa804d..b3dc3c034e 100644 --- a/TelegramCore/AccountStateManager.swift +++ b/TelegramCore/AccountStateManager.swift @@ -369,11 +369,13 @@ public final class AccountStateManager { |> take(1) |> mapToSignal { state -> Signal<(Api.updates.Difference?, AccountReplayedFinalState?), NoError> in if let authorizedState = state.state { - var ptsTotalLimit: Int32 = 10000 + var flags: Int32 = 0 + var ptsTotalLimit: Int32? = nil #if DEBUG - //ptsTotalLimit = 10 + //flags = 1 << 0 + //ptsTotalLimit = 1000 #endif - let request = network.request(Api.functions.updates.getDifference(flags: 1 << 0, pts: authorizedState.pts, ptsTotalLimit: ptsTotalLimit, date: authorizedState.date, qts: authorizedState.qts)) + let request = network.request(Api.functions.updates.getDifference(flags: flags, pts: authorizedState.pts, ptsTotalLimit: ptsTotalLimit, date: authorizedState.date, qts: authorizedState.qts)) |> retryRequest return request diff --git a/TelegramCore/ManagedGlobalNotificationSettings.swift b/TelegramCore/ManagedGlobalNotificationSettings.swift index 27f9de3d8a..7c6ad02320 100644 --- a/TelegramCore/ManagedGlobalNotificationSettings.swift +++ b/TelegramCore/ManagedGlobalNotificationSettings.swift @@ -110,11 +110,11 @@ private func fetchedNotificationSettings(network: Network) -> Signal retryRequest - |> map { chats, users, channels, contactsJoined in + |> map { chats, users, channels, contactsJoinedMuted in let chatsSettings: MessageNotificationSettings switch chats { case .peerNotifySettingsEmpty: @@ -175,7 +175,7 @@ private func fetchedNotificationSettings(network: Network) -> Signal retryRequest |> mapToSignal { _ -> Signal in return .complete() } diff --git a/TelegramCore/MultipartUpload.swift b/TelegramCore/MultipartUpload.swift index 49ce18e0a5..5dca6d3eaf 100644 --- a/TelegramCore/MultipartUpload.swift +++ b/TelegramCore/MultipartUpload.swift @@ -145,9 +145,9 @@ private enum HeaderPartState { private final class MultipartUploadManager { let parallelParts: Int = 3 - let defaultPartSize: Int - let bigTotalParts: Int? - let bigParts: Bool + var defaultPartSize: Int + var bigTotalParts: Int? + var bigParts: Bool let queue = Queue() let fileId: Int64 @@ -225,6 +225,20 @@ private final class MultipartUploadManager { } func checkState() { + if let resourceData = self.resourceData, resourceData.complete && resourceData.size != 0 { + if self.committedOffset == 0 && self.uploadedParts.isEmpty && self.uploadingParts.isEmpty { + if resourceData.size > 10 * 1024 * 1024 { + self.defaultPartSize = 512 * 1024 + self.bigTotalParts = (resourceData.size / self.defaultPartSize) + (resourceData.size % self.defaultPartSize == 0 ? 0 : 1) + self.bigParts = true + } else { + self.bigParts = false + self.defaultPartSize = 16 * 1024 + self.bigTotalParts = nil + } + } + } + var updatedCommittedOffset = false for offset in self.uploadedParts.keys.sorted() { if offset == self.committedOffset {