Update API

This commit is contained in:
Ali
2020-09-16 19:20:18 +04:00
parent 55e24ec0cb
commit e72208e35f
5 changed files with 58 additions and 16 deletions

View File

@@ -64,6 +64,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
case reimport(PresentationTheme)
case resetData(PresentationTheme)
case resetDatabase(PresentationTheme)
case resetDatabaseAndCache(PresentationTheme)
case resetHoles(PresentationTheme)
case reindexUnread(PresentationTheme)
case resetBiometricsData(PresentationTheme)
@@ -89,7 +90,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return DebugControllerSection.logging.rawValue
case .enableRaiseToSpeak, .keepChatNavigationStack, .skipReadHistory, .crashOnSlowQueries:
return DebugControllerSection.experiments.rawValue
case .clearTips, .reimport, .resetData, .resetDatabase, .resetHoles, .reindexUnread, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .alternativeFolderTabs, .playerEmbedding, .playlistPlayback:
case .clearTips, .reimport, .resetData, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .reindexUnread, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .alternativeFolderTabs, .playerEmbedding, .playlistPlayback:
return DebugControllerSection.experiments.rawValue
case .preferredVideoCodec:
return DebugControllerSection.videoExperiments.rawValue
@@ -134,12 +135,14 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return 14
case .resetDatabase:
return 15
case .resetHoles:
case .resetDatabaseAndCache:
return 16
case .reindexUnread:
case .resetHoles:
return 17
case .resetBiometricsData:
case .reindexUnread:
return 18
case .resetBiometricsData:
return 19
case .optimizeDatabase:
return 20
case .photoPreview:
@@ -478,6 +481,29 @@ private enum DebugControllerEntry: ItemListNodeEntry {
])])
arguments.presentController(actionSheet, nil)
})
case let .resetDatabaseAndCache(theme):
return ItemListActionItem(presentationData: presentationData, title: "Clear Database and Cache", kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: {
guard let context = arguments.context else {
return
}
let presentationData = arguments.sharedContext.currentPresentationData.with { $0 }
let actionSheet = ActionSheetController(presentationData: presentationData)
actionSheet.setItemGroups([ActionSheetItemGroup(items: [
ActionSheetTextItem(title: "All secret chats will be lost."),
ActionSheetButtonItem(title: "Clear Database", color: .destructive, action: { [weak actionSheet] in
actionSheet?.dismissAnimated()
let databasePath = context.account.basePath + "/postbox"
let _ = try? FileManager.default.removeItem(atPath: databasePath)
exit(0)
preconditionFailure()
}),
]), ActionSheetItemGroup(items: [
ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak actionSheet] in
actionSheet?.dismissAnimated()
})
])])
arguments.presentController(actionSheet, nil)
})
case let .resetHoles(theme):
return ItemListActionItem(presentationData: presentationData, title: "Reset Holes", kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: {
guard let context = arguments.context else {
@@ -647,6 +673,7 @@ private func debugControllerEntries(presentationData: PresentationData, loggingS
}
entries.append(.resetData(presentationData.theme))
entries.append(.resetDatabase(presentationData.theme))
entries.append(.resetDatabaseAndCache(presentationData.theme))
entries.append(.resetHoles(presentationData.theme))
entries.append(.reindexUnread(presentationData.theme))
entries.append(.optimizeDatabase(presentationData.theme))

View File

@@ -545,7 +545,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
dict[480546647] = { return Api.InputChatPhoto.parse_inputChatPhotoEmpty($0) }
dict[-1991004873] = { return Api.InputChatPhoto.parse_inputChatPhoto($0) }
dict[-968723890] = { return Api.InputChatPhoto.parse_inputChatUploadedPhoto($0) }
dict[742337250] = { return Api.messages.MessageViews.parse_messageViews($0) }
dict[-1228606141] = { return Api.messages.MessageViews.parse_messageViews($0) }
dict[-368917890] = { return Api.PaymentCharge.parse_paymentCharge($0) }
dict[-1387279939] = { return Api.MessageInteractionCounters.parse_messageInteractionCounters($0) }
dict[-1107852396] = { return Api.stats.BroadcastStats.parse_broadcastStats($0) }

View File

@@ -1283,13 +1283,13 @@ public struct messages {
}
public enum MessageViews: TypeConstructorDescription {
case messageViews(views: [Api.MessageViews], users: [Api.User])
case messageViews(views: [Api.MessageViews], chats: [Api.Chat], users: [Api.User])
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
switch self {
case .messageViews(let views, let users):
case .messageViews(let views, let chats, let users):
if boxed {
buffer.appendInt32(742337250)
buffer.appendInt32(-1228606141)
}
buffer.appendInt32(481674261)
buffer.appendInt32(Int32(views.count))
@@ -1297,6 +1297,11 @@ public struct messages {
item.serialize(buffer, true)
}
buffer.appendInt32(481674261)
buffer.appendInt32(Int32(chats.count))
for item in chats {
item.serialize(buffer, true)
}
buffer.appendInt32(481674261)
buffer.appendInt32(Int32(users.count))
for item in users {
item.serialize(buffer, true)
@@ -1307,8 +1312,8 @@ public struct messages {
public func descriptionFields() -> (String, [(String, Any)]) {
switch self {
case .messageViews(let views, let users):
return ("messageViews", [("views", views), ("users", users)])
case .messageViews(let views, let chats, let users):
return ("messageViews", [("views", views), ("chats", chats), ("users", users)])
}
}
@@ -1317,14 +1322,19 @@ public struct messages {
if let _ = reader.readInt32() {
_1 = Api.parseVector(reader, elementSignature: 0, elementType: Api.MessageViews.self)
}
var _2: [Api.User]?
var _2: [Api.Chat]?
if let _ = reader.readInt32() {
_2 = Api.parseVector(reader, elementSignature: 0, elementType: Api.User.self)
_2 = Api.parseVector(reader, elementSignature: 0, elementType: Api.Chat.self)
}
var _3: [Api.User]?
if let _ = reader.readInt32() {
_3 = Api.parseVector(reader, elementSignature: 0, elementType: Api.User.self)
}
let _c1 = _1 != nil
let _c2 = _2 != nil
if _c1 && _c2 {
return Api.messages.MessageViews.messageViews(views: _1!, users: _2!)
let _c3 = _3 != nil
if _c1 && _c2 && _c3 {
return Api.messages.MessageViews.messageViews(views: _1!, chats: _2!, users: _3!)
}
else {
return nil

View File

@@ -616,7 +616,7 @@ public final class AccountViewTracker {
return .single(nil)
}
|> mapToSignal { result -> Signal<Void, NoError> in
guard case let .messageViews(viewCounts, users)? = result else {
guard case let .messageViews(viewCounts, chats, users)? = result else {
return .complete()
}
@@ -631,6 +631,11 @@ public final class AccountViewTracker {
peerPresences[telegramUser.id] = presence
}
}
for chat in chats {
if let groupOrChannel = parseTelegramGroupOrChannel(chat: chat) {
peers.append(groupOrChannel)
}
}
updatePeers(transaction: transaction, peers: peers, update: { _, updated -> Peer in
return updated

View File

@@ -274,7 +274,7 @@ public func fetchChannelReplyThreadMessage(account: Account, messageId: MessageI
}
var maxId: Int32?
switch result {
case let .messageViews(views, _):
case let .messageViews(views, _, _):
for view in views {
switch view {
case let .messageViews(_, _, _, replies):