mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-26 21:39:37 -04:00
scanning system Bug fix
This commit is contained in:
parent
89c7feefc0
commit
4f314eef8f
@ -135,7 +135,7 @@ class SearchScopeAndHistoryController: SearchBaseTableController, UITableViewDel
|
||||
let titleDescriptor = NSSortDescriptor(key: "title", ascending: true)
|
||||
fetchRequest.sortDescriptors = [langDescriptor, titleDescriptor]
|
||||
fetchRequest.predicate = NSPredicate(format: "stateRaw == 2")
|
||||
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: "ScopeFRC" + Bundle.buildVersion)
|
||||
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
|
||||
fetchedResultsController.delegate = self
|
||||
try? fetchedResultsController.performFetch()
|
||||
return fetchedResultsController as! NSFetchedResultsController<Book>
|
||||
|
@ -14,11 +14,13 @@ class ScanLocalBookOperation: Procedure {
|
||||
private(set) var firstBookAdded = false
|
||||
private(set) var shouldMigrateBookmarks = false
|
||||
|
||||
private(set) var snapshot: URLSnapShot
|
||||
private(set) var oldSnapshot: URLSnapShot
|
||||
private(set) var newSnapshot: URLSnapShot
|
||||
private let time = Date()
|
||||
|
||||
init(urlSnapshot: URLSnapShot) {
|
||||
self.snapshot = urlSnapshot
|
||||
init(snapshot: URLSnapShot) {
|
||||
self.oldSnapshot = snapshot
|
||||
self.newSnapshot = snapshot
|
||||
self.context = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
|
||||
context.parent = AppDelegate.persistentContainer.viewContext
|
||||
context.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
|
||||
@ -31,16 +33,16 @@ class ScanLocalBookOperation: Procedure {
|
||||
override func execute() {
|
||||
defer { finish() }
|
||||
|
||||
newSnapshot = URLSnapShot()
|
||||
if ZimMultiReader.shared.readers.count == 0 {
|
||||
// when ZimMultiReader has not reader, only perform addition
|
||||
// i.e., when app is launched initialize all zim readers
|
||||
updateReaders(addition: snapshot.zimFile)
|
||||
// i.e., when app is launched initialize all zim readers, or when first book is added
|
||||
updateReaders(addition: newSnapshot.zimFile)
|
||||
context.performAndWait {self.updateCoreData()}
|
||||
} else {
|
||||
let newSnapshot = URLSnapShot()
|
||||
var addition = newSnapshot - snapshot
|
||||
let deletion = snapshot - newSnapshot
|
||||
snapshot = newSnapshot
|
||||
|
||||
var addition = newSnapshot - oldSnapshot
|
||||
let deletion = oldSnapshot - newSnapshot
|
||||
|
||||
if deletion.indexFolders.count > 0 { addition.zimFiles = newSnapshot.zimFile }
|
||||
|
||||
|
@ -32,11 +32,11 @@ class ZimMultiReader: NSObject, DirectoryMonitorDelegate {
|
||||
}
|
||||
|
||||
func startScan() {
|
||||
let operation = ScanLocalBookOperation(urlSnapshot: urlSnapShot)
|
||||
let operation = ScanLocalBookOperation(snapshot: urlSnapShot)
|
||||
operation.add(observer: DidFinishObserver{ (operation, errors) in
|
||||
guard let operation = operation as? ScanLocalBookOperation else {return}
|
||||
OperationQueue.main.addOperation({
|
||||
self.urlSnapShot = operation.snapshot
|
||||
self.urlSnapShot = operation.newSnapshot
|
||||
guard operation.firstBookAdded else {return}
|
||||
self.delegate?.firstBookAdded()
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user