Adds “Clear Cache” button to remove temporary files and uninstalled app backups

This commit is contained in:
Riley Testut
2023-02-07 16:11:39 -06:00
parent eeea64f780
commit 3adfc9db6d
5 changed files with 294 additions and 7 deletions

View File

@@ -50,6 +50,12 @@ extension SettingsViewController
case softwareLicenses
}
fileprivate enum TechyThingsRow: Int, CaseIterable
{
case errorLog
case clearCache
}
fileprivate enum DebugRow: Int, CaseIterable
{
case sendFeedback
@@ -327,6 +333,34 @@ private extension SettingsViewController
self.present(viewController, animated: true, completion: nil)
}
func clearCache()
{
let alertController = UIAlertController(title: NSLocalizedString("Are you sure you want to clear AltStore's cache?", comment: ""),
message: NSLocalizedString("This will remove all temporary files as well as backups for uninstalled apps.", comment: ""),
preferredStyle: .actionSheet)
alertController.addAction(UIAlertAction(title: UIAlertAction.cancel.title, style: UIAlertAction.cancel.style) { [weak self] _ in
self?.tableView.indexPathForSelectedRow.map { self?.tableView.deselectRow(at: $0, animated: true) }
})
alertController.addAction(UIAlertAction(title: NSLocalizedString("Clear Cache", comment: ""), style: .destructive) { [weak self] _ in
AppManager.shared.clearAppCache { result in
DispatchQueue.main.async {
self?.tableView.indexPathForSelectedRow.map { self?.tableView.deselectRow(at: $0, animated: true) }
switch result
{
case .success: break
case .failure(let error):
let alertController = UIAlertController(title: NSLocalizedString("Unable to Clear Cache", comment: ""), message: error.localizedDescription, preferredStyle: .alert)
alertController.addAction(.ok)
self?.present(alertController, animated: true)
}
}
}
})
self.present(alertController, animated: true)
}
@IBAction func handleDebugModeGesture(_ gestureRecognizer: UISwipeGestureRecognizer)
{
self.debugGestureCounter += 1
@@ -521,6 +555,14 @@ extension SettingsViewController
self.addRefreshAppsShortcut()
}
case .techyThings:
let row = TechyThingsRow.allCases[indexPath.row]
switch row
{
case .errorLog: break
case .clearCache: self.clearCache()
}
case .credits:
let row = CreditsRow.allCases[indexPath.row]
switch row
@@ -562,7 +604,7 @@ extension SettingsViewController
case .refreshAttempts: break
}
case .account, .patreon, .instructions, .techyThings, .macDirtyCow: break
case .account, .patreon, .instructions, .macDirtyCow: break
}
}
}