Add index reset option

This commit is contained in:
Isaac
2023-12-23 23:12:52 +04:00
parent 0ad61d8d63
commit 5391858644
2 changed files with 78 additions and 85 deletions

View File

@@ -79,7 +79,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
case clearTips(PresentationTheme)
case resetNotifications
case crash(PresentationTheme)
case resetData(PresentationTheme)
case fillLocalSavedMessageCache
case resetDatabase(PresentationTheme)
case resetDatabaseAndCache(PresentationTheme)
case resetHoles(PresentationTheme)
@@ -127,7 +127,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return DebugControllerSection.web.rawValue
case .keepChatNavigationStack, .skipReadHistory, .dustEffect, .callV2, .alternativeStoryMedia, .crashOnSlowQueries, .crashOnMemoryPressure:
return DebugControllerSection.experiments.rawValue
case .clearTips, .resetNotifications, .crash, .resetData, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .reindexUnread, .resetCacheIndex, .reindexCache, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .storiesExperiment, .storiesJpegExperiment, .playlistPlayback, .enableQuickReactionSwitch, .voiceConference, .experimentalCompatibility, .enableDebugDataDisplay, .acceleratedStickers, .inlineForums, .localTranscription, .enableReactionOverrides, .restorePurchases:
case .clearTips, .resetNotifications, .crash, .fillLocalSavedMessageCache, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .reindexUnread, .resetCacheIndex, .reindexCache, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .storiesExperiment, .storiesJpegExperiment, .playlistPlayback, .enableQuickReactionSwitch, .voiceConference, .experimentalCompatibility, .enableDebugDataDisplay, .acceleratedStickers, .inlineForums, .localTranscription, .enableReactionOverrides, .restorePurchases:
return DebugControllerSection.experiments.rawValue
case .logTranslationRecognition, .resetTranslationStates:
return DebugControllerSection.translation.rawValue
@@ -192,7 +192,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return 23
case .crash:
return 24
case .resetData:
case .fillLocalSavedMessageCache:
return 25
case .resetDatabase:
return 26
@@ -1026,24 +1026,18 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return ItemListActionItem(presentationData: presentationData, title: "Crash", kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: {
preconditionFailure()
})
case .resetData:
return ItemListActionItem(presentationData: presentationData, title: "Reset Data", kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: {
case .fillLocalSavedMessageCache:
return ItemListActionItem(presentationData: presentationData, title: "Reload Saved Messages", kind: .generic, 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 data will be lost."),
ActionSheetButtonItem(title: "Reset Data", color: .destructive, action: { [weak actionSheet] in
actionSheet?.dismissAnimated()
let databasePath = arguments.sharedContext.accountManager.basePath + "/db"
let _ = try? FileManager.default.removeItem(atPath: databasePath)
preconditionFailure()
}),
]), ActionSheetItemGroup(items: [
ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak actionSheet] in
actionSheet?.dismissAnimated()
})
])])
arguments.presentController(actionSheet, nil)
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil))
arguments.presentController(controller, nil)
let _ = (_internal_fillSavedMessageHistory(accountPeerId: context.account.peerId, postbox: context.account.postbox, network: context.account.network)
|> deliverOnMainQueue).start(completed: {
controller.dismiss()
})
})
case .resetDatabase:
return ItemListActionItem(presentationData: presentationData, title: "Clear Database", kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: {
@@ -1436,7 +1430,7 @@ private func debugControllerEntries(sharedContext: SharedAccountContext, present
entries.append(.resetNotifications)
}
entries.append(.crash(presentationData.theme))
entries.append(.resetData(presentationData.theme))
entries.append(.fillLocalSavedMessageCache)
entries.append(.resetDatabase(presentationData.theme))
entries.append(.resetDatabaseAndCache(presentationData.theme))
entries.append(.resetHoles(presentationData.theme))