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)