mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-28 14:35:03 -04:00
operations
This commit is contained in:
parent
58cf3f4c06
commit
011df8bb65
@ -8,7 +8,7 @@
|
||||
import UIKit
|
||||
import CoreData
|
||||
import CloudKit
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import UserNotifications
|
||||
|
||||
@UIApplicationMain
|
||||
@ -19,7 +19,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
return (window?.rootViewController as? UINavigationController)?.topViewController as? MainController
|
||||
}
|
||||
|
||||
fileprivate let recentShortcutTypeString = "org.kiwix.recent"
|
||||
private let recentShortcutTypeString = "org.kiwix.recent"
|
||||
|
||||
func recordActiveSession() {
|
||||
Preference.activeUseHistory.append(Date())
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import DZNEmptyDataSet
|
||||
|
||||
class BookmarkController: UITableViewController, NSFetchedResultsControllerDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import MBProgressHUD
|
||||
import DZNEmptyDataSet
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import DZNEmptyDataSet
|
||||
|
||||
class LocalBooksController: UITableViewController, NSFetchedResultsControllerDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
|
||||
|
@ -8,7 +8,7 @@
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import SafariServices
|
||||
|
||||
class MainController: UIViewController {
|
||||
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class SpaceNotEnoughAlert: AlertOperation<UIViewController> {
|
||||
init(context: UIViewController) {
|
||||
@ -113,7 +113,7 @@ class GetStartedAlert: AlertOperation<MainController> {
|
||||
}
|
||||
}
|
||||
|
||||
class ShowHelpPageOperation: Operation {
|
||||
class ShowHelpPageOperation: Procedure {
|
||||
fileprivate let type: WebViewControllerContentType
|
||||
fileprivate let context: UIViewController
|
||||
|
||||
@ -132,7 +132,7 @@ class ShowHelpPageOperation: Operation {
|
||||
displayControllerFrom: .Present(context),
|
||||
inNavigationController: true,
|
||||
sender: nil)
|
||||
produceOperation(operation)
|
||||
produce(operation)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import DZNEmptyDataSet
|
||||
|
||||
class SearchResultController: SearchTableViewController, UITableViewDataSource, UITableViewDelegate {
|
||||
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class SettingDetailController: UITableViewController {
|
||||
|
||||
|
@ -49,7 +49,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.8.1873</string>
|
||||
<string>1.8.1882</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
@ -21,7 +21,7 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.8.1873</string>
|
||||
<string>1.8.1882</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionMainStoryboard</key>
|
||||
|
@ -36,6 +36,8 @@
|
||||
9722122B1D3FCCE200C0DCF2 /* MainControllerShowHide.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9722122A1D3FCCE200C0DCF2 /* MainControllerShowHide.swift */; };
|
||||
9726591B1D8DB91200D1DFFB /* DownloadProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9726591A1D8DB91200D1DFFB /* DownloadProgress.swift */; };
|
||||
9726591D1D90A64600D1DFFB /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9726591C1D90A64500D1DFFB /* Notifications.swift */; };
|
||||
9732075A1DD136A700EDD3DC /* CoreDataContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973207591DD136A700EDD3DC /* CoreDataContainer.swift */; };
|
||||
9732075C1DD136BB00EDD3DC /* CoreDataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9732075B1DD136BB00EDD3DC /* CoreDataExtension.swift */; };
|
||||
9734E54E1D289D060061C39B /* Welcome.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9734E54D1D289D060061C39B /* Welcome.storyboard */; };
|
||||
973BCD1A1CEB402900F10B44 /* KiwixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD181CEB402900F10B44 /* KiwixTests.swift */; };
|
||||
973DD40F1D343F2F009D45DB /* libicudata.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 973DD4041D343F2F009D45DB /* libicudata.a */; };
|
||||
@ -110,7 +112,6 @@
|
||||
97D6813F1D6F712800E5FA99 /* Article+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97D6813B1D6F712800E5FA99 /* Article+CoreDataProperties.swift */; };
|
||||
97D681401D6F712800E5FA99 /* Book+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97D6813C1D6F712800E5FA99 /* Book+CoreDataProperties.swift */; };
|
||||
97D681411D6F712800E5FA99 /* DownloadTask+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97D6813D1D6F712800E5FA99 /* DownloadTask+CoreDataProperties.swift */; };
|
||||
97D681441D6F713200E5FA99 /* CoreDataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97D681431D6F713200E5FA99 /* CoreDataExtension.swift */; };
|
||||
97DB65DA1D4576B600A2CC42 /* BookmarkWidgetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DB65D91D4576B600A2CC42 /* BookmarkWidgetCell.swift */; };
|
||||
97DF259C1D6F7613001648A3 /* BookOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DF259B1D6F7612001648A3 /* BookOperation.swift */; };
|
||||
97DF259D1D6F9053001648A3 /* URLSessionDownloadTaskOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97D681221D6F70AC00E5FA99 /* URLSessionDownloadTaskOperation.swift */; };
|
||||
@ -197,6 +198,8 @@
|
||||
9722122A1D3FCCE200C0DCF2 /* MainControllerShowHide.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MainControllerShowHide.swift; path = "Kiwix-iOS/Controller/Main/MainControllerShowHide.swift"; sourceTree = SOURCE_ROOT; };
|
||||
9726591A1D8DB91200D1DFFB /* DownloadProgress.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadProgress.swift; sourceTree = "<group>"; };
|
||||
9726591C1D90A64500D1DFFB /* Notifications.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notifications.swift; sourceTree = "<group>"; };
|
||||
973207591DD136A700EDD3DC /* CoreDataContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreDataContainer.swift; sourceTree = "<group>"; };
|
||||
9732075B1DD136BB00EDD3DC /* CoreDataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreDataExtension.swift; sourceTree = "<group>"; };
|
||||
9734E54D1D289D060061C39B /* Welcome.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Welcome.storyboard; path = "Kiwix-iOS/Storyboard/Welcome.storyboard"; sourceTree = SOURCE_ROOT; };
|
||||
973BCD001CEB3FA500F10B44 /* Kiwix_OSXTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Kiwix_OSXTests.swift; sourceTree = "<group>"; };
|
||||
973BCD021CEB3FA500F10B44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
@ -292,7 +295,6 @@
|
||||
97D6813C1D6F712800E5FA99 /* Book+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Book+CoreDataProperties.swift"; path = "Classes/Book+CoreDataProperties.swift"; sourceTree = "<group>"; };
|
||||
97D6813D1D6F712800E5FA99 /* DownloadTask+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "DownloadTask+CoreDataProperties.swift"; path = "Classes/DownloadTask+CoreDataProperties.swift"; sourceTree = "<group>"; };
|
||||
97D6813E1D6F712800E5FA99 /* Language+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Language+CoreDataProperties.swift"; path = "Classes/Language+CoreDataProperties.swift"; sourceTree = "<group>"; };
|
||||
97D681431D6F713200E5FA99 /* CoreDataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CoreDataExtension.swift; path = Classes/CoreDataExtension.swift; sourceTree = "<group>"; };
|
||||
97DB65D91D4576B600A2CC42 /* BookmarkWidgetCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookmarkWidgetCell.swift; sourceTree = "<group>"; };
|
||||
97DF259B1D6F7612001648A3 /* BookOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookOperation.swift; sourceTree = "<group>"; };
|
||||
97DF259F1D6F996B001648A3 /* Network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = "<group>"; };
|
||||
@ -403,7 +405,8 @@
|
||||
971187891CEB53D700B9909D /* Migration */,
|
||||
971187881CEB53CE00B9909D /* Classes */,
|
||||
978C589D1C1CD8750077AE47 /* Properties */,
|
||||
97D681431D6F713200E5FA99 /* CoreDataExtension.swift */,
|
||||
973207591DD136A700EDD3DC /* CoreDataContainer.swift */,
|
||||
9732075B1DD136BB00EDD3DC /* CoreDataExtension.swift */,
|
||||
);
|
||||
path = CoreData;
|
||||
sourceTree = "<group>";
|
||||
@ -1140,6 +1143,7 @@
|
||||
970E7F831DA0305000741290 /* WelcomeController.swift in Sources */,
|
||||
97A1FD3B1D6F724E00A80EE2 /* stringTools.cpp in Sources */,
|
||||
970E7F741D9DB0FC00741290 /* 1.8.xcmappingmodel in Sources */,
|
||||
9732075A1DD136A700EDD3DC /* CoreDataContainer.swift in Sources */,
|
||||
97A1FD321D6F723D00A80EE2 /* resourceTools.cpp in Sources */,
|
||||
971A10321D022AD5007FC62C /* SearchBar.swift in Sources */,
|
||||
97A1FD451D6F728200A80EE2 /* StringTools.swift in Sources */,
|
||||
@ -1174,8 +1178,8 @@
|
||||
9764F5971D8339D500E0B1C4 /* JSInjection.swift in Sources */,
|
||||
97A1FD441D6F728200A80EE2 /* Preference.swift in Sources */,
|
||||
97D681311D6F70EC00E5FA99 /* 1.5.xcmappingmodel in Sources */,
|
||||
97D681441D6F713200E5FA99 /* CoreDataExtension.swift in Sources */,
|
||||
97DF259C1D6F7613001648A3 /* BookOperation.swift in Sources */,
|
||||
9732075C1DD136BB00EDD3DC /* CoreDataExtension.swift in Sources */,
|
||||
97A1FD181D6F71CE00A80EE2 /* SearchResult.swift in Sources */,
|
||||
9763275E1D64FE0F0034F120 /* BookDetailController.swift in Sources */,
|
||||
973DD4281D36E3E4009D45DB /* SettingDetailController.swift in Sources */,
|
||||
|
19
Kiwix/CoreData/CoreDataContainer.swift
Normal file
19
Kiwix/CoreData/CoreDataContainer.swift
Normal file
@ -0,0 +1,19 @@
|
||||
//
|
||||
// CoreDataContainer.swift
|
||||
// Kiwix
|
||||
//
|
||||
// Created by Chris Li on 11/7/16.
|
||||
// Copyright © 2016 Wikimedia CH. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import CoreData
|
||||
|
||||
class CoreDataContainer: NSPersistentContainer {
|
||||
init() {
|
||||
super.init(name: "Kiwix")
|
||||
loadPersistentStores { (description, error) in
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import UserNotifications
|
||||
|
||||
class Network: NSObject, URLSessionDelegate, URLSessionTaskDelegate, URLSessionDownloadDelegate, OperationQueueDelegate {
|
||||
@ -40,20 +40,20 @@ class Network: NSObject, URLSessionDelegate, URLSessionTaskDelegate, URLSessionD
|
||||
|
||||
// MARK: - OperationQueueDelegate
|
||||
|
||||
func operationQueue(_ queue: OperationQueue, willAddOperation operation: Operation) {
|
||||
func operationQueue(_ queue: ProcedureQueue, willAddOperation operation: Procedure) {
|
||||
guard let bookID = operation.name,
|
||||
let operation = operation as? DownloadBookOperation else {return}
|
||||
operations[bookID] = operation
|
||||
}
|
||||
|
||||
func operationQueue(_ queue: OperationQueue, didFinishOperation operation: Operation, withErrors errors: [Error]) {
|
||||
func operationQueue(_ queue: ProcedureQueue, didFinishOperation operation: Procedure, withErrors errors: [Error]) {
|
||||
guard let bookID = operation.name else {return}
|
||||
operations[bookID] = nil
|
||||
}
|
||||
|
||||
func operationQueue(_ queue: OperationQueue, willFinishOperation operation: Operation, withErrors errors: [Error]) {}
|
||||
func operationQueue(_ queue: ProcedureQueue, willFinishOperation operation: Procedure, withErrors errors: [Error]) {}
|
||||
|
||||
func operationQueue(_ queue: OperationQueue, willProduceOperation operation: Operation) {}
|
||||
func operationQueue(_ queue: ProcedureQueue, willProduceOperation operation: Procedure) {}
|
||||
|
||||
// MARK: - NSURLSessionDelegate
|
||||
|
||||
|
@ -7,9 +7,9 @@
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class ArticleLoadOperation: Operation {
|
||||
class ArticleLoadOperation: Procedure {
|
||||
let bookID: String?
|
||||
let path: String?
|
||||
let title: String?
|
||||
@ -61,8 +61,8 @@ class ArticleLoadOperation: Operation {
|
||||
return URL(bookID: bookID, contentPath: path)
|
||||
}
|
||||
if let bookID = bookID {
|
||||
guard let reader = ZimMultiReader.shared.readers[bookID] else {return nil}
|
||||
let path = reader.mainPageURL()
|
||||
guard let reader = ZimMultiReader.shared.readers[bookID],
|
||||
let path = reader.mainPageURL() else {return nil}
|
||||
return URL(bookID: bookID, contentPath: path)
|
||||
}
|
||||
return nil
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class DownloadBookOperation: URLSessionDownloadTaskOperation {
|
||||
let bookID: String?
|
||||
@ -22,7 +22,7 @@ class DownloadBookOperation: URLSessionDownloadTaskOperation {
|
||||
|
||||
if UIApplication.shared.applicationState == .active,
|
||||
let url = downloadTask.originalRequest?.url {
|
||||
addCondition(ReachabilityCondition(url: url, connectivity: .ViaWiFi))
|
||||
add(ReachabilityCondition(url: url, connectivity: .ViaWiFi))
|
||||
}
|
||||
|
||||
// Update Coredata
|
||||
@ -155,7 +155,7 @@ class DownloadBookOperation: URLSessionDownloadTaskOperation {
|
||||
}
|
||||
}
|
||||
|
||||
class RemoveBookOperation: Operation {
|
||||
class RemoveBookOperation: Procedure {
|
||||
let bookID: String
|
||||
|
||||
init(bookID: String) {
|
||||
@ -179,7 +179,7 @@ class RemoveBookOperation: Operation {
|
||||
}
|
||||
}
|
||||
|
||||
class PauseBookDwonloadOperation: Operation {
|
||||
class PauseBookDwonloadOperation: Procedure {
|
||||
let bookID: String
|
||||
|
||||
init(bookID: String) {
|
||||
@ -193,7 +193,7 @@ class PauseBookDwonloadOperation: Operation {
|
||||
}
|
||||
}
|
||||
|
||||
class ResumeBookDwonloadOperation: Operation {
|
||||
class ResumeBookDwonloadOperation: Procedure {
|
||||
let bookID: String
|
||||
|
||||
init(bookID: String) {
|
||||
@ -206,7 +206,7 @@ class ResumeBookDwonloadOperation: Operation {
|
||||
guard let data: Data = Preference.resumeData[bookID] as Data?,
|
||||
let operation = DownloadBookOperation(bookID: bookID, resumeData: data) else {
|
||||
if let operation = DownloadBookOperation(bookID: bookID) {
|
||||
produceOperation(operation)
|
||||
produce(operation)
|
||||
}
|
||||
|
||||
finish()
|
||||
|
@ -8,9 +8,9 @@
|
||||
|
||||
import CoreData
|
||||
import CloudKit
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class BookmarkMigrationOperation: Operation {
|
||||
class BookmarkMigrationOperation: Procedure {
|
||||
fileprivate let context: NSManagedObjectContext
|
||||
|
||||
override init() {
|
||||
@ -19,7 +19,7 @@ class BookmarkMigrationOperation: Operation {
|
||||
context.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
|
||||
|
||||
super.init()
|
||||
addCondition(MutuallyExclusive<GlobalQueue>())
|
||||
add(MutuallyExclusive<GlobalQueue>())
|
||||
name = String(describing: self)
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ class BookmarkMigrationOperation: Operation {
|
||||
}
|
||||
}
|
||||
|
||||
class BookmarkTrashOperation: Operation {
|
||||
class BookmarkTrashOperation: Procedure {
|
||||
fileprivate let context: NSManagedObjectContext
|
||||
fileprivate let articles: [Article]
|
||||
|
||||
@ -48,7 +48,7 @@ class BookmarkTrashOperation: Operation {
|
||||
self.articles = articles
|
||||
|
||||
super.init()
|
||||
addCondition(MutuallyExclusive<BookmarkController>())
|
||||
add(MutuallyExclusive<BookmarkController>())
|
||||
name = String(describing: self)
|
||||
}
|
||||
|
||||
@ -74,14 +74,14 @@ class BookmarkTrashOperation: Operation {
|
||||
}
|
||||
|
||||
if articles.count > 0 {
|
||||
produceOperation(UpdateWidgetDataSourceOperation())
|
||||
produce(UpdateWidgetDataSourceOperation())
|
||||
}
|
||||
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
class BookmarkCloudKitOperation: Operation {
|
||||
class BookmarkCloudKitOperation: Procedure {
|
||||
let article: Article
|
||||
|
||||
init(article: Article) {
|
||||
|
@ -6,9 +6,9 @@
|
||||
// Copyright © 2016 Chris. All rights reserved.
|
||||
//
|
||||
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class GlobalQueue: OperationQueue {
|
||||
class GlobalQueue: ProcedureQueue {
|
||||
static let shared = GlobalQueue()
|
||||
|
||||
fileprivate weak var scanOperation: ScanLocalBookOperation?
|
||||
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class RefreshLibraryOperation: GroupOperation {
|
||||
|
||||
@ -22,7 +22,7 @@ class RefreshLibraryOperation: GroupOperation {
|
||||
|
||||
addObserver(NetworkObserver())
|
||||
if UIApplication.sharedApplication().applicationState == .Active {
|
||||
addCondition(ReachabilityCondition(url: Retrieve.url))
|
||||
add(ReachabilityCondition(url: Retrieve.url))
|
||||
}
|
||||
|
||||
addObserver(WillExecuteObserver { _ in
|
||||
@ -37,7 +37,7 @@ class RefreshLibraryOperation: GroupOperation {
|
||||
}
|
||||
}
|
||||
|
||||
private class Retrieve: Operation, ResultOperationType {
|
||||
private class Retrieve: Procedure, ResultOperationType {
|
||||
fileprivate static let url = URL(string: "https://download.kiwix.org/library/library.xml")!
|
||||
fileprivate var result: Data?
|
||||
|
||||
@ -56,7 +56,7 @@ private class Retrieve: Operation, ResultOperationType {
|
||||
}
|
||||
}
|
||||
|
||||
private class Process: Operation, XMLParserDelegate, AutomaticInjectionOperationType {
|
||||
private class Process: Procedure, XMLParserDelegate, AutomaticInjectionOperationType {
|
||||
var requirement: Data?
|
||||
fileprivate(set) var hasUpdate = false
|
||||
fileprivate(set) var firstTime = false
|
||||
|
@ -7,9 +7,9 @@
|
||||
//
|
||||
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class ScanLocalBookOperation: Operation {
|
||||
class ScanLocalBookOperation: Procedure {
|
||||
fileprivate let context: NSManagedObjectContext
|
||||
fileprivate(set) var firstBookAdded = false
|
||||
fileprivate(set) var shouldMigrateBookmarks = false
|
||||
@ -30,7 +30,7 @@ class ScanLocalBookOperation: Operation {
|
||||
self.lastIndexFolderURLSnapshot = lastIndexFolderURLSnapshot
|
||||
|
||||
super.init()
|
||||
addCondition(MutuallyExclusive<ZimMultiReader>())
|
||||
add(MutuallyExclusive<ZimMultiReader>())
|
||||
name = String(describing: self)
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ class ScanLocalBookOperation: Operation {
|
||||
override func operationDidFinish(_ errors: [Error]) {
|
||||
print(String(format: "Scan finshed, lasted for %.4f seconds.", -time.timeIntervalSinceNow))
|
||||
if shouldMigrateBookmarks {
|
||||
produceOperation(BookmarkMigrationOperation())
|
||||
produce(BookmarkMigrationOperation())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class SearchOperation: GroupOperation {
|
||||
fileprivate(set) var results = [SearchResult]()
|
||||
@ -41,7 +41,7 @@ class SearchOperation: GroupOperation {
|
||||
}
|
||||
}
|
||||
|
||||
private class BookSearch: Operation {
|
||||
private class BookSearch: Procedure {
|
||||
let zimID: String
|
||||
let searchTerm: String
|
||||
fileprivate var results = [SearchResult]()
|
||||
@ -71,7 +71,7 @@ private class BookSearch: Operation {
|
||||
}
|
||||
}
|
||||
|
||||
private class Sort: Operation, AutomaticInjectionOperationType {
|
||||
private class Sort: Procedure, AutomaticInjectionOperationType {
|
||||
var requirement = [SearchResult]()
|
||||
|
||||
fileprivate override func execute() {
|
||||
|
@ -6,9 +6,9 @@
|
||||
// Copyright © 2016 Chris. All rights reserved.
|
||||
//
|
||||
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class URLSessionDownloadTaskOperation: Operation {
|
||||
class URLSessionDownloadTaskOperation: Procedure {
|
||||
|
||||
enum KeyPath: String {
|
||||
case State = "state"
|
||||
|
@ -7,10 +7,10 @@
|
||||
//
|
||||
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
import NotificationCenter
|
||||
|
||||
class UpdateWidgetDataSourceOperation: Operation {
|
||||
class UpdateWidgetDataSourceOperation: Procedure {
|
||||
let context: NSManagedObjectContext
|
||||
|
||||
override init() {
|
||||
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
import CoreData
|
||||
import Operations
|
||||
import ProcedureKit
|
||||
|
||||
class ZimMultiReader: NSObject, DirectoryMonitorDelegate {
|
||||
static let shared = ZimMultiReader()
|
||||
|
Loading…
x
Reference in New Issue
Block a user