diff --git a/Kiwix-iOS/Controller/Library/BookDetailController.swift b/Kiwix-iOS/Controller/Library/BookDetailController.swift index a4098171..c1301808 100644 --- a/Kiwix-iOS/Controller/Library/BookDetailController.swift +++ b/Kiwix-iOS/Controller/Library/BookDetailController.swift @@ -101,8 +101,7 @@ class BookDetailController: UITableViewController, CenterButtonCellDelegate, DZN switch title { case Strings.downloadNow: func startDownload() { - guard let bookID = book.id, - let download = DownloadBookOperation(bookID: bookID) else {return} + guard let download = DownloadBookOperation(bookID: book.id) else {return} Network.shared.queue.addOperation(download) } diff --git a/Kiwix-iOS/Controller/Library/DownloadTasksController.swift b/Kiwix-iOS/Controller/Library/DownloadTasksController.swift index af36a1e6..d720309f 100644 --- a/Kiwix-iOS/Controller/Library/DownloadTasksController.swift +++ b/Kiwix-iOS/Controller/Library/DownloadTasksController.swift @@ -107,13 +107,13 @@ class DownloadTasksController: UIViewController, UITableViewDelegate, UITableVie func configureCell(cell: UITableViewCell, atIndexPath indexPath: NSIndexPath, animated: Bool = false) { guard let downloadTask = fetchedResultController.objectAtIndexPath(indexPath) as? DownloadTask, - let book = downloadTask.book, let id = book.id, + let book = downloadTask.book, let cell = cell as? DownloadBookCell else {return} cell.titleLabel.text = book.title cell.favIcon.image = UIImage(data: book.favIcon ?? NSData()) - if let progress = Network.shared.operations[id]?.progress { + if let progress = Network.shared.operations[book.id]?.progress { cell.progressLabel.text = progress.fractionCompletedDescription cell.progressView.setProgress(Float(progress.fractionCompleted), animated: animated) cell.detailLabel.text = { @@ -195,8 +195,8 @@ class DownloadTasksController: UIViewController, UITableViewDelegate, UITableVie actions.insert(pause, atIndex: 0) case .Paused: - if let book = downloadTask.book, let bookID = book.id, - let resumeData = Preference.resumeData[bookID] { + if let book = downloadTask.book, + let resumeData = Preference.resumeData[book.id] { let resume = UITableViewRowAction(style: .Normal, title: "Resume") { (action, indexPath) in let task = Network.shared.session.downloadTaskWithResumeData(resumeData) let operation = DownloadBookOperation(downloadTask: task) diff --git a/Kiwix-iOS/Controller/Library/LocalBooksController.swift b/Kiwix-iOS/Controller/Library/LocalBooksController.swift index d7f7890c..7c1228a0 100644 --- a/Kiwix-iOS/Controller/Library/LocalBooksController.swift +++ b/Kiwix-iOS/Controller/Library/LocalBooksController.swift @@ -133,7 +133,7 @@ class LocalBooksController: UIViewController, UITableViewDelegate, UITableViewDa let delete = UITableViewRowAction(style: .Destructive, title: LocalizedStrings.delete) { (action, indexPath) -> Void in guard let book = self.fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return} self.managedObjectContext.performBlock({ () -> Void in - if let id = book.id, let zimURL = ZimMultiReader.sharedInstance.readers[id]?.fileURL { + if let zimURL = ZimMultiReader.sharedInstance.readers[book.id]?.fileURL { FileManager.removeItem(atURL: zimURL) let indexFolderURL = zimURL.URLByAppendingPathExtension("idx") diff --git a/Kiwix-iOS/Controller/Search/SearchBooksVC.swift b/Kiwix-iOS/Controller/Search/SearchBooksVC.swift index 8def904c..1ba17ca1 100644 --- a/Kiwix-iOS/Controller/Search/SearchBooksVC.swift +++ b/Kiwix-iOS/Controller/Search/SearchBooksVC.swift @@ -143,10 +143,9 @@ class SearchBooksVC: UIViewController, UITableViewDelegate, UITableViewDataSourc func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { guard let mainVC = parentViewController?.parentViewController as? MainController, - let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book, - let bookID = book.id else {return} + let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return} mainVC.hideSearch(animated: true) - mainVC.loadMainPage(bookID) + mainVC.loadMainPage(book.id) tableView.deselectRowAtIndexPath(indexPath, animated: true) } diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist index c7cea72d..96eedae7 100644 --- a/Kiwix-iOS/Info.plist +++ b/Kiwix-iOS/Info.plist @@ -49,7 +49,7 @@ CFBundleVersion - 1.7.1725 + 1.7.1729 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/Kiwix-iOSWidgets/Bookmarks/Info.plist b/Kiwix-iOSWidgets/Bookmarks/Info.plist index 8a616bd5..72eefee4 100644 --- a/Kiwix-iOSWidgets/Bookmarks/Info.plist +++ b/Kiwix-iOSWidgets/Bookmarks/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 1.7.2229 + 1.7.2244 NSExtension NSExtensionMainStoryboard diff --git a/Kiwix/CoreData/Classes/Book+CoreDataProperties.swift b/Kiwix/CoreData/Classes/Book+CoreDataProperties.swift index 59cc29cd..88acc22c 100644 --- a/Kiwix/CoreData/Classes/Book+CoreDataProperties.swift +++ b/Kiwix/CoreData/Classes/Book+CoreDataProperties.swift @@ -21,7 +21,7 @@ extension Book { @NSManaged var favIcon: NSData? @NSManaged var fileSize: Int64 @NSManaged var globalCount: Int64 - @NSManaged var id: String? + @NSManaged var id: String @NSManaged var isLocal: NSNumber? @NSManaged var hasPic: Bool @NSManaged var hasIndex: Bool diff --git a/Kiwix/CoreData/Classes/Book.swift b/Kiwix/CoreData/Classes/Book.swift index aa538081..1766b622 100644 --- a/Kiwix/CoreData/Classes/Book.swift +++ b/Kiwix/CoreData/Classes/Book.swift @@ -19,9 +19,10 @@ class Book: NSManagedObject { // MARK: - Add Book class func add(metadata: [String: AnyObject], context: NSManagedObjectContext) -> Book? { + guard let id = metadata["id"] as? String else {return nil} guard let book = insert(Book.self, context: context) else {return nil} - book.id = metadata["id"] as? String + book.id = id book.title = metadata["title"] as? String book.creator = metadata["creator"] as? String book.publisher = metadata["publisher"] as? String @@ -75,8 +76,7 @@ class Book: NSManagedObject { } var resumeDataURL: NSURL? { - guard let id = id, - let folderURL = NSURL(fileURLWithPath: NSFileManager.libDirURL.path!).URLByAppendingPathComponent("DownloadTemp", isDirectory: true), + guard let folderURL = NSURL(fileURLWithPath: NSFileManager.libDirURL.path!).URLByAppendingPathComponent("DownloadTemp", isDirectory: true), let folderPath = folderURL.path else {return nil} if !NSFileManager.defaultManager().fileExistsAtPath(folderPath) { _ = try? NSFileManager.defaultManager().createDirectoryAtURL(folderURL, withIntermediateDirectories: true, attributes: [NSURLIsExcludedFromBackupKey: true]) @@ -99,8 +99,7 @@ class Book: NSManagedObject { var books = [ZimID: Book]() for book in localBooks { - guard let id = book.id else {continue} - books[id] = book + books[book.id] = book } return books } @@ -114,7 +113,6 @@ class Book: NSManagedObject { // MARK: - Manage func removeResumeData() { - guard let id = id else {return} Preference.resumeData[id] = nil } diff --git a/Kiwix/CoreData/Kiwix.xcdatamodeld/1.8.xcdatamodel/contents b/Kiwix/CoreData/Kiwix.xcdatamodeld/1.8.xcdatamodel/contents index c8ec3770..c0e44e67 100644 --- a/Kiwix/CoreData/Kiwix.xcdatamodeld/1.8.xcdatamodel/contents +++ b/Kiwix/CoreData/Kiwix.xcdatamodeld/1.8.xcdatamodel/contents @@ -21,10 +21,10 @@ - - + + - + @@ -79,10 +79,10 @@ - + + - \ No newline at end of file diff --git a/Kiwix/Tools/FileManager.swift b/Kiwix/Tools/FileManager.swift index 4bb16d1e..280fdc0b 100644 --- a/Kiwix/Tools/FileManager.swift +++ b/Kiwix/Tools/FileManager.swift @@ -13,8 +13,7 @@ class FileManager { class func move(book: Book, fromURL: NSURL, suggestedFileName: String?) { let fileName: String = { if let suggestedFileName = suggestedFileName {return suggestedFileName} - if let id = book.id {return "\(id).zim"} - return NSDate().description + ".zim" + return book.id }() let directory = NSFileManager.docDirURL createDirectory(directory, includeInICloudBackup: false)