From 011df8bb65c2b9261d2e3c33a714af9af7c77cef Mon Sep 17 00:00:00 2001 From: Chris Li Date: Mon, 7 Nov 2016 18:17:17 -0500 Subject: [PATCH] operations --- Kiwix-iOS/AppDelegate.swift | 4 ++-- .../Bookmark/BookmarkController.swift | 2 +- .../Library/CloudBooksController.swift | 2 +- .../Library/LocalBooksController.swift | 2 +- .../Controller/Main/MainController.swift | 2 +- Kiwix-iOS/Controller/Others/Alerts.swift | 6 +++--- .../Search/SearchResultController.swift | 2 +- .../Setting/SettingDetailController.swift | 2 +- Kiwix-iOS/Info.plist | 2 +- Kiwix-iOSWidgets/Bookmarks/Info.plist | 2 +- Kiwix.xcodeproj/project.pbxproj | 12 ++++++++---- Kiwix/CoreData/CoreDataContainer.swift | 19 +++++++++++++++++++ .../{Classes => }/CoreDataExtension.swift | 0 Kiwix/Network/Network.swift | 10 +++++----- Kiwix/Operations/ArticleOperation.swift | 8 ++++---- Kiwix/Operations/BookOperation.swift | 12 ++++++------ Kiwix/Operations/BookmarkOperation.swift | 14 +++++++------- Kiwix/Operations/GlobalQueue.swift | 4 ++-- .../Operations/RefreshLibraryOperation.swift | 8 ++++---- Kiwix/Operations/ScanLocalBookOperation.swift | 8 ++++---- Kiwix/Operations/SearchOperation.swift | 6 +++--- .../URLSessionDownloadTaskOperation.swift | 4 ++-- .../UpdateWidgetDataSourceOperation.swift | 4 ++-- Kiwix/ZimMultiReader/ZimMultiReader.swift | 2 +- 24 files changed, 80 insertions(+), 57 deletions(-) create mode 100644 Kiwix/CoreData/CoreDataContainer.swift rename Kiwix/CoreData/{Classes => }/CoreDataExtension.swift (100%) diff --git a/Kiwix-iOS/AppDelegate.swift b/Kiwix-iOS/AppDelegate.swift index fd254359..778416f2 100644 --- a/Kiwix-iOS/AppDelegate.swift +++ b/Kiwix-iOS/AppDelegate.swift @@ -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()) diff --git a/Kiwix-iOS/Controller/Bookmark/BookmarkController.swift b/Kiwix-iOS/Controller/Bookmark/BookmarkController.swift index 3b200587..aa3b6bdc 100644 --- a/Kiwix-iOS/Controller/Bookmark/BookmarkController.swift +++ b/Kiwix-iOS/Controller/Bookmark/BookmarkController.swift @@ -8,7 +8,7 @@ import UIKit import CoreData -import Operations +import ProcedureKit import DZNEmptyDataSet class BookmarkController: UITableViewController, NSFetchedResultsControllerDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate { diff --git a/Kiwix-iOS/Controller/Library/CloudBooksController.swift b/Kiwix-iOS/Controller/Library/CloudBooksController.swift index 795a8428..2c25dfed 100644 --- a/Kiwix-iOS/Controller/Library/CloudBooksController.swift +++ b/Kiwix-iOS/Controller/Library/CloudBooksController.swift @@ -8,7 +8,7 @@ import UIKit import CoreData -import Operations +import ProcedureKit import MBProgressHUD import DZNEmptyDataSet diff --git a/Kiwix-iOS/Controller/Library/LocalBooksController.swift b/Kiwix-iOS/Controller/Library/LocalBooksController.swift index db185bb4..457880d6 100644 --- a/Kiwix-iOS/Controller/Library/LocalBooksController.swift +++ b/Kiwix-iOS/Controller/Library/LocalBooksController.swift @@ -8,7 +8,7 @@ import UIKit import CoreData -import Operations +import ProcedureKit import DZNEmptyDataSet class LocalBooksController: UITableViewController, NSFetchedResultsControllerDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate { diff --git a/Kiwix-iOS/Controller/Main/MainController.swift b/Kiwix-iOS/Controller/Main/MainController.swift index 38ce438e..2a6ab9a6 100644 --- a/Kiwix-iOS/Controller/Main/MainController.swift +++ b/Kiwix-iOS/Controller/Main/MainController.swift @@ -8,7 +8,7 @@ // import UIKit -import Operations +import ProcedureKit import SafariServices class MainController: UIViewController { diff --git a/Kiwix-iOS/Controller/Others/Alerts.swift b/Kiwix-iOS/Controller/Others/Alerts.swift index eadfafb0..83947cb6 100644 --- a/Kiwix-iOS/Controller/Others/Alerts.swift +++ b/Kiwix-iOS/Controller/Others/Alerts.swift @@ -7,7 +7,7 @@ // import UIKit -import Operations +import ProcedureKit class SpaceNotEnoughAlert: AlertOperation { init(context: UIViewController) { @@ -113,7 +113,7 @@ class GetStartedAlert: AlertOperation { } } -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) } } diff --git a/Kiwix-iOS/Controller/Search/SearchResultController.swift b/Kiwix-iOS/Controller/Search/SearchResultController.swift index 12481ead..574a0e4f 100644 --- a/Kiwix-iOS/Controller/Search/SearchResultController.swift +++ b/Kiwix-iOS/Controller/Search/SearchResultController.swift @@ -7,7 +7,7 @@ // import UIKit -import Operations +import ProcedureKit import DZNEmptyDataSet class SearchResultController: SearchTableViewController, UITableViewDataSource, UITableViewDelegate { diff --git a/Kiwix-iOS/Controller/Setting/SettingDetailController.swift b/Kiwix-iOS/Controller/Setting/SettingDetailController.swift index f0c45f68..6d266c9e 100644 --- a/Kiwix-iOS/Controller/Setting/SettingDetailController.swift +++ b/Kiwix-iOS/Controller/Setting/SettingDetailController.swift @@ -7,7 +7,7 @@ // import UIKit -import Operations +import ProcedureKit class SettingDetailController: UITableViewController { diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist index 114ee9e5..c0f756e5 100644 --- a/Kiwix-iOS/Info.plist +++ b/Kiwix-iOS/Info.plist @@ -49,7 +49,7 @@ CFBundleVersion - 1.8.1873 + 1.8.1882 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/Kiwix-iOSWidgets/Bookmarks/Info.plist b/Kiwix-iOSWidgets/Bookmarks/Info.plist index 84f60979..b82b802a 100644 --- a/Kiwix-iOSWidgets/Bookmarks/Info.plist +++ b/Kiwix-iOSWidgets/Bookmarks/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 1.8.1873 + 1.8.1882 NSExtension NSExtensionMainStoryboard diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj index c272bd49..3bb45c5d 100644 --- a/Kiwix.xcodeproj/project.pbxproj +++ b/Kiwix.xcodeproj/project.pbxproj @@ -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 = ""; }; 9726591C1D90A64500D1DFFB /* Notifications.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notifications.swift; sourceTree = ""; }; + 973207591DD136A700EDD3DC /* CoreDataContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreDataContainer.swift; sourceTree = ""; }; + 9732075B1DD136BB00EDD3DC /* CoreDataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreDataExtension.swift; sourceTree = ""; }; 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 = ""; }; 973BCD021CEB3FA500F10B44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -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 = ""; }; 97D6813D1D6F712800E5FA99 /* DownloadTask+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "DownloadTask+CoreDataProperties.swift"; path = "Classes/DownloadTask+CoreDataProperties.swift"; sourceTree = ""; }; 97D6813E1D6F712800E5FA99 /* Language+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Language+CoreDataProperties.swift"; path = "Classes/Language+CoreDataProperties.swift"; sourceTree = ""; }; - 97D681431D6F713200E5FA99 /* CoreDataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CoreDataExtension.swift; path = Classes/CoreDataExtension.swift; sourceTree = ""; }; 97DB65D91D4576B600A2CC42 /* BookmarkWidgetCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookmarkWidgetCell.swift; sourceTree = ""; }; 97DF259B1D6F7612001648A3 /* BookOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookOperation.swift; sourceTree = ""; }; 97DF259F1D6F996B001648A3 /* Network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = ""; }; @@ -403,7 +405,8 @@ 971187891CEB53D700B9909D /* Migration */, 971187881CEB53CE00B9909D /* Classes */, 978C589D1C1CD8750077AE47 /* Properties */, - 97D681431D6F713200E5FA99 /* CoreDataExtension.swift */, + 973207591DD136A700EDD3DC /* CoreDataContainer.swift */, + 9732075B1DD136BB00EDD3DC /* CoreDataExtension.swift */, ); path = CoreData; sourceTree = ""; @@ -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 */, diff --git a/Kiwix/CoreData/CoreDataContainer.swift b/Kiwix/CoreData/CoreDataContainer.swift new file mode 100644 index 00000000..e97e25ff --- /dev/null +++ b/Kiwix/CoreData/CoreDataContainer.swift @@ -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 + + } + } +} diff --git a/Kiwix/CoreData/Classes/CoreDataExtension.swift b/Kiwix/CoreData/CoreDataExtension.swift similarity index 100% rename from Kiwix/CoreData/Classes/CoreDataExtension.swift rename to Kiwix/CoreData/CoreDataExtension.swift diff --git a/Kiwix/Network/Network.swift b/Kiwix/Network/Network.swift index 446edd29..bb8cc776 100644 --- a/Kiwix/Network/Network.swift +++ b/Kiwix/Network/Network.swift @@ -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 diff --git a/Kiwix/Operations/ArticleOperation.swift b/Kiwix/Operations/ArticleOperation.swift index 0fb690fd..f5039bb9 100644 --- a/Kiwix/Operations/ArticleOperation.swift +++ b/Kiwix/Operations/ArticleOperation.swift @@ -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 diff --git a/Kiwix/Operations/BookOperation.swift b/Kiwix/Operations/BookOperation.swift index d3a90357..97e71394 100644 --- a/Kiwix/Operations/BookOperation.swift +++ b/Kiwix/Operations/BookOperation.swift @@ -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() diff --git a/Kiwix/Operations/BookmarkOperation.swift b/Kiwix/Operations/BookmarkOperation.swift index f1e9ad1a..99c6eed4 100644 --- a/Kiwix/Operations/BookmarkOperation.swift +++ b/Kiwix/Operations/BookmarkOperation.swift @@ -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()) + add(MutuallyExclusive()) 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()) + add(MutuallyExclusive()) 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) { diff --git a/Kiwix/Operations/GlobalQueue.swift b/Kiwix/Operations/GlobalQueue.swift index 3facca08..536602f9 100644 --- a/Kiwix/Operations/GlobalQueue.swift +++ b/Kiwix/Operations/GlobalQueue.swift @@ -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? diff --git a/Kiwix/Operations/RefreshLibraryOperation.swift b/Kiwix/Operations/RefreshLibraryOperation.swift index edf4b749..131f57f3 100644 --- a/Kiwix/Operations/RefreshLibraryOperation.swift +++ b/Kiwix/Operations/RefreshLibraryOperation.swift @@ -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 diff --git a/Kiwix/Operations/ScanLocalBookOperation.swift b/Kiwix/Operations/ScanLocalBookOperation.swift index 3abc843e..aa8020c6 100644 --- a/Kiwix/Operations/ScanLocalBookOperation.swift +++ b/Kiwix/Operations/ScanLocalBookOperation.swift @@ -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()) + add(MutuallyExclusive()) 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()) } } diff --git a/Kiwix/Operations/SearchOperation.swift b/Kiwix/Operations/SearchOperation.swift index b98b0e1f..f80cb28e 100644 --- a/Kiwix/Operations/SearchOperation.swift +++ b/Kiwix/Operations/SearchOperation.swift @@ -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() { diff --git a/Kiwix/Operations/URLSessionDownloadTaskOperation.swift b/Kiwix/Operations/URLSessionDownloadTaskOperation.swift index 8d00f771..a241c433 100644 --- a/Kiwix/Operations/URLSessionDownloadTaskOperation.swift +++ b/Kiwix/Operations/URLSessionDownloadTaskOperation.swift @@ -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" diff --git a/Kiwix/Operations/UpdateWidgetDataSourceOperation.swift b/Kiwix/Operations/UpdateWidgetDataSourceOperation.swift index 45ad66a9..5dc00288 100644 --- a/Kiwix/Operations/UpdateWidgetDataSourceOperation.swift +++ b/Kiwix/Operations/UpdateWidgetDataSourceOperation.swift @@ -7,10 +7,10 @@ // import CoreData -import Operations +import ProcedureKit import NotificationCenter -class UpdateWidgetDataSourceOperation: Operation { +class UpdateWidgetDataSourceOperation: Procedure { let context: NSManagedObjectContext override init() { diff --git a/Kiwix/ZimMultiReader/ZimMultiReader.swift b/Kiwix/ZimMultiReader/ZimMultiReader.swift index 1727e720..3653eec5 100644 --- a/Kiwix/ZimMultiReader/ZimMultiReader.swift +++ b/Kiwix/ZimMultiReader/ZimMultiReader.swift @@ -7,7 +7,7 @@ // import CoreData -import Operations +import ProcedureKit class ZimMultiReader: NSObject, DirectoryMonitorDelegate { static let shared = ZimMultiReader()