Clears image cache with “Clear Cache…” option in Settings

Also increases image cache size to 512MB.
This commit is contained in:
Riley Testut
2023-12-07 16:58:39 -06:00
committed by Magesh K
parent be31611cb7
commit 05332ca122
2 changed files with 41 additions and 0 deletions

View File

@@ -16,6 +16,8 @@ import AltSign
import Roxas
import EmotionalDamage
import Nuke
extension UIApplication: LegacyBackgroundFetching {}
extension AppDelegate
@@ -60,6 +62,7 @@ final class AppDelegate: UIResponder, UIApplicationDelegate {
AnalyticsManager.shared.start()
self.setTintColor()
self.prepareImageCache()
SecureValueTransformer.register()
@@ -143,6 +146,33 @@ private extension AppDelegate
self.window?.tintColor = .altPrimary
}
func prepareImageCache()
{
// Avoid caching responses twice.
DataLoader.sharedUrlCache.diskCapacity = 0
let pipeline = ImagePipeline { configuration in
do
{
let dataCache = try DataCache(name: "io.altstore.Nuke")
dataCache.sizeLimit = 512 * 1024 * 1024 // 512MB
configuration.dataCache = dataCache
}
catch
{
Logger.main.error("Failed to create image disk cache. Falling back to URL cache. \(error.localizedDescription, privacy: .public)")
}
}
ImagePipeline.shared = pipeline
if let dataCache = ImagePipeline.shared.configuration.dataCache as? DataCache, #available(iOS 15, *)
{
Logger.main.info("Current image cache size: \(dataCache.totalSize.formatted(.byteCount(style: .file)), privacy: .public)")
}
}
func open(_ url: URL) -> Bool
{
if url.isFileURL