- Disable cell animations for huge changes - Updating a cell keeps the old position whenever possible - Async `didChangeDateFilter` - Fixes bug where saving a recording would persist entries again - Small changes to `TimeFormat`, `AlertDeleteLogs` and `binTreeIndex()`
43 lines
1.3 KiB
Swift
43 lines
1.3 KiB
Swift
import Foundation
|
|
|
|
#if IOS_SIMULATOR
|
|
|
|
private let db = AppDB!
|
|
private var pStmt: OpaquePointer?
|
|
|
|
class TestDataSource {
|
|
|
|
static func load() {
|
|
QLog.Debug("SQLite path: \(URL.internalDB())")
|
|
|
|
let deleted = db.dnsLogsDelete("test.com", strict: false)
|
|
try? db.run(sql: "DELETE FROM cache;")
|
|
QLog.Debug("Deleting \(deleted) rows matching 'test.com' (+ \(db.numberOfChanges) in cache)")
|
|
|
|
QLog.Debug("Writing 33 test logs")
|
|
pStmt = try! db.logWritePrepare()
|
|
try? db.logWrite(pStmt, "keeptest.com", blocked: false)
|
|
for _ in 1...4 { try? db.logWrite(pStmt, "test.com", blocked: false) }
|
|
for _ in 1...7 { try? db.logWrite(pStmt, "i.test.com", blocked: false) }
|
|
for i in 1...8 { try? db.logWrite(pStmt, "b.test.com", blocked: i>5) }
|
|
for i in 1...13 { try? db.logWrite(pStmt, "bi.test.com", blocked: i%2==0) }
|
|
|
|
db.dnsLogsPersist()
|
|
|
|
QLog.Debug("Creating 4 filters")
|
|
db.setFilter("b.test.com", .blocked)
|
|
db.setFilter("i.test.com", .ignored)
|
|
db.setFilter("bi.test.com", [.blocked, .ignored])
|
|
|
|
QLog.Debug("Done")
|
|
|
|
Timer.repeating(2, call: #selector(insertRandom), on: self)
|
|
}
|
|
|
|
@objc static func insertRandom() {
|
|
//QLog.Debug("Inserting 1 periodic log entry")
|
|
try? db.logWrite(pStmt, "\(arc4random() % 5).count.test.com", blocked: true)
|
|
}
|
|
}
|
|
#endif
|