- Filter by date range - SyncUpdate tasks run fully asynchronous in background - Move tableView manipulations into FilterPipelineDelegate - Move SyncUpdate notification into SyncUpdateDelegate - Fix: sync cache before persisting a recording - Restructuring GroupedDomainDataSource - Performance: db logs queries use rowids instead of timestamps - Add 'now' button to DatePickerAlert
30 lines
714 B
Swift
30 lines
714 B
Swift
import Foundation
|
|
|
|
struct TheGreatDestroyer {
|
|
|
|
/// Callback fired when user performs row edit -> delete action
|
|
static func deleteLogs(domain: String, since ts: Timestamp, strict flag: Bool) {
|
|
sync.pause()
|
|
DispatchQueue.global().async {
|
|
defer { sync.continue() }
|
|
guard let db = AppDB, db.dnsLogsDelete(domain, strict: flag, since: ts) > 0 else {
|
|
return // nothing has changed
|
|
}
|
|
db.vacuum()
|
|
sync.needsReloadDB(domain: domain)
|
|
}
|
|
}
|
|
|
|
/// Fired when user taps on Settings -> Delete All Logs
|
|
static func deleteAllLogs() {
|
|
sync.pause()
|
|
DispatchQueue.global().async {
|
|
defer { sync.continue() }
|
|
do {
|
|
try AppDB?.dnsLogsDeleteAll()
|
|
sync.needsReloadDB()
|
|
} catch {}
|
|
}
|
|
}
|
|
}
|