mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
Fix clear cache toast
This commit is contained in:
parent
a693b72840
commit
8d80c9fa55
@ -287,7 +287,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
return cacheSettings
|
return cacheSettings
|
||||||
})
|
})
|
||||||
|
|
||||||
var presentControllerImpl: ((ViewController, Any?) -> Void)?
|
var presentControllerImpl: ((ViewController, PresentationContextType, Any?) -> Void)?
|
||||||
|
|
||||||
let statsPromise = Promise<CacheUsageStatsResult?>()
|
let statsPromise = Promise<CacheUsageStatsResult?>()
|
||||||
let resetStats: () -> Void = {
|
let resetStats: () -> Void = {
|
||||||
@ -341,7 +341,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
ActionSheetItemGroup(items: timeoutItems),
|
ActionSheetItemGroup(items: timeoutItems),
|
||||||
ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })])
|
ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })])
|
||||||
])
|
])
|
||||||
presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
presentControllerImpl?(controller, .window(.root), ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
||||||
}, openClearAll: {
|
}, openClearAll: {
|
||||||
let _ = (statsPromise.get()
|
let _ = (statsPromise.get()
|
||||||
|> take(1)
|
|> take(1)
|
||||||
@ -508,7 +508,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
presentControllerImpl?(controller, .window(.root), ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
||||||
return ActionDisposable { [weak controller] in
|
return ActionDisposable { [weak controller] in
|
||||||
Queue.mainQueue().async() {
|
Queue.mainQueue().async() {
|
||||||
controller?.dismiss()
|
controller?.dismiss()
|
||||||
@ -533,7 +533,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
|> deliverOnMainQueue).start(completed: {
|
|> deliverOnMainQueue).start(completed: {
|
||||||
statsPromise.set(.single(.result(resultStats)))
|
statsPromise.set(.single(.result(resultStats)))
|
||||||
let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone"
|
let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone"
|
||||||
presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: false, action: { _ in }), nil)
|
presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: false, action: { _ in }), .current, nil)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,7 +544,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
ActionSheetItemGroup(items: items),
|
ActionSheetItemGroup(items: items),
|
||||||
ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })])
|
ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })])
|
||||||
])
|
])
|
||||||
presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
presentControllerImpl?(controller, .window(.root), ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -576,12 +576,14 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
|
|
||||||
var sizeIndex: [PeerCacheUsageCategory: (Bool, Int64)] = [:]
|
var sizeIndex: [PeerCacheUsageCategory: (Bool, Int64)] = [:]
|
||||||
|
|
||||||
var itemIndex = 0
|
var itemIndex = 1
|
||||||
|
|
||||||
|
var finalSize: Int64 = 0
|
||||||
let updateTotalSize: () -> Void = { [weak controller] in
|
let updateTotalSize: () -> Void = { [weak controller] in
|
||||||
controller?.updateItem(groupIndex: 0, itemIndex: itemIndex, { item in
|
controller?.updateItem(groupIndex: 0, itemIndex: itemIndex, { item in
|
||||||
let title: String
|
let title: String
|
||||||
let filteredSize = sizeIndex.values.reduce(0, { $0 + ($1.0 ? $1.1 : 0) })
|
let filteredSize = sizeIndex.values.reduce(0, { $0 + ($1.0 ? $1.1 : 0) })
|
||||||
|
finalSize = filteredSize
|
||||||
|
|
||||||
if filteredSize == 0 {
|
if filteredSize == 0 {
|
||||||
title = presentationData.strings.Cache_ClearNone
|
title = presentationData.strings.Cache_ClearNone
|
||||||
@ -633,6 +635,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
finalSize = totalSize
|
||||||
|
|
||||||
if !items.isEmpty {
|
if !items.isEmpty {
|
||||||
items.append(ActionSheetButtonItem(title: presentationData.strings.Cache_Clear("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0, action: {
|
items.append(ActionSheetButtonItem(title: presentationData.strings.Cache_Clear("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0, action: {
|
||||||
@ -687,7 +690,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
presentControllerImpl?(controller, .window(.root), ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
||||||
return ActionDisposable { [weak controller] in
|
return ActionDisposable { [weak controller] in
|
||||||
Queue.mainQueue().async() {
|
Queue.mainQueue().async() {
|
||||||
controller?.dismiss()
|
controller?.dismiss()
|
||||||
@ -712,7 +715,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
|> deliverOnMainQueue).start(completed: {
|
|> deliverOnMainQueue).start(completed: {
|
||||||
statsPromise.set(.single(.result(resultStats)))
|
statsPromise.set(.single(.result(resultStats)))
|
||||||
let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone"
|
let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone"
|
||||||
presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: false, action: { _ in }), nil)
|
presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(finalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: false, action: { _ in }), .current, nil)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,7 +726,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
ActionSheetItemGroup(items: items),
|
ActionSheetItemGroup(items: items),
|
||||||
ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })])
|
ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })])
|
||||||
])
|
])
|
||||||
presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
presentControllerImpl?(controller, .window(.root), ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -747,8 +750,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals
|
|||||||
}
|
}
|
||||||
|
|
||||||
let controller = ItemListController(context: context, state: signal)
|
let controller = ItemListController(context: context, state: signal)
|
||||||
presentControllerImpl = { [weak controller] c, a in
|
presentControllerImpl = { [weak controller] c, contextType, a in
|
||||||
controller?.present(c, in: .window(.root), with: a)
|
controller?.present(c, in: contextType, with: a)
|
||||||
}
|
}
|
||||||
dismissImpl = { [weak controller] in
|
dismissImpl = { [weak controller] in
|
||||||
controller?.dismiss()
|
controller?.dismiss()
|
||||||
|
@ -5019,7 +5019,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
} else {
|
} else {
|
||||||
self?.chatDisplayNode.historyNode.historyAppearsCleared = false
|
self?.chatDisplayNode.historyNode.historyAppearsCleared = false
|
||||||
}
|
}
|
||||||
}), in: .window(.root))
|
}), in: .current)
|
||||||
}
|
}
|
||||||
|
|
||||||
let actionSheet = ActionSheetController(presentationTheme: self.presentationData.theme)
|
let actionSheet = ActionSheetController(presentationTheme: self.presentationData.theme)
|
||||||
@ -5133,12 +5133,14 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
|
|
||||||
var sizeIndex: [PeerCacheUsageCategory: (Bool, Int64)] = [:]
|
var sizeIndex: [PeerCacheUsageCategory: (Bool, Int64)] = [:]
|
||||||
|
|
||||||
var itemIndex = 0
|
var itemIndex = 1
|
||||||
|
|
||||||
|
var finalSize: Int64 = 0
|
||||||
let updateTotalSize: () -> Void = { [weak controller] in
|
let updateTotalSize: () -> Void = { [weak controller] in
|
||||||
controller?.updateItem(groupIndex: 0, itemIndex: itemIndex, { item in
|
controller?.updateItem(groupIndex: 0, itemIndex: itemIndex, { item in
|
||||||
let title: String
|
let title: String
|
||||||
let filteredSize = sizeIndex.values.reduce(0, { $0 + ($1.0 ? $1.1 : 0) })
|
let filteredSize = sizeIndex.values.reduce(0, { $0 + ($1.0 ? $1.1 : 0) })
|
||||||
|
finalSize = filteredSize
|
||||||
|
|
||||||
if filteredSize == 0 {
|
if filteredSize == 0 {
|
||||||
title = presentationData.strings.Cache_ClearNone
|
title = presentationData.strings.Cache_ClearNone
|
||||||
@ -5172,6 +5174,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
let validCategories: [PeerCacheUsageCategory] = [.image, .video, .audio, .file]
|
let validCategories: [PeerCacheUsageCategory] = [.image, .video, .audio, .file]
|
||||||
|
|
||||||
var totalSize: Int64 = 0
|
var totalSize: Int64 = 0
|
||||||
|
finalSize = totalSize
|
||||||
|
|
||||||
func stringForCategory(strings: PresentationStrings, category: PeerCacheUsageCategory) -> String {
|
func stringForCategory(strings: PresentationStrings, category: PeerCacheUsageCategory) -> String {
|
||||||
switch category {
|
switch category {
|
||||||
@ -5224,20 +5227,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
|
|
||||||
media[peerId] = categories
|
media[peerId] = categories
|
||||||
}
|
}
|
||||||
// if let additionalPeerId = additionalPeerId {
|
|
||||||
// if var categories = media[additionalPeerId] {
|
|
||||||
// for category in clearCategories {
|
|
||||||
// if let contents = categories[category] {
|
|
||||||
// for (mediaId, _) in contents {
|
|
||||||
// clearMediaIds.insert(mediaId)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// categories.removeValue(forKey: category)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// media[additionalPeerId] = categories
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
var clearResourceIds = Set<WrappedMediaResourceId>()
|
var clearResourceIds = Set<WrappedMediaResourceId>()
|
||||||
for id in clearMediaIds {
|
for id in clearMediaIds {
|
||||||
@ -5282,7 +5271,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
|> deliverOnMainQueue).start(completed: { [weak self] in
|
|> deliverOnMainQueue).start(completed: { [weak self] in
|
||||||
if let strongSelf = self, let layout = strongSelf.validLayout {
|
if let strongSelf = self, let layout = strongSelf.validLayout {
|
||||||
let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone"
|
let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone"
|
||||||
strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: true, action: { _ in }), in: .window(.root))
|
strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(finalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: true, action: { _ in }), in: .current)
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user