diff --git a/Kiwix-iOS/Controller/Main/JSInjection.swift b/Kiwix-iOS/Controller/Main/JSInjection.swift
index 8a07c680..e6cf9fd9 100644
--- a/Kiwix-iOS/Controller/Main/JSInjection.swift
+++ b/Kiwix-iOS/Controller/Main/JSInjection.swift
@@ -32,6 +32,10 @@ class JSInjection {
webView.stringByEvaluatingJavaScriptFromString(jString)
}
+ class func getTitle(from webView: UIWebView) -> String? {
+ return webView.stringByEvaluatingJavaScriptFromString("document.title")
+ }
+
class func getTableOfContents(webView: UIWebView) -> [HTMLHeading] {
guard let context = webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as? JSContext,
let path = NSBundle.mainBundle().pathForResource("getTableOfContents", ofType: "js"),
diff --git a/Kiwix-iOS/Controller/Main/MainController.swift b/Kiwix-iOS/Controller/Main/MainController.swift
index cc54f323..490abeda 100644
--- a/Kiwix-iOS/Controller/Main/MainController.swift
+++ b/Kiwix-iOS/Controller/Main/MainController.swift
@@ -36,8 +36,8 @@ class MainController: UIViewController {
newArticle?.addObserver(self, forKeyPath: "isBookmarked", options: .New, context: context)
}
didSet {
- // searchbar title
- // bookmarked or not
+ configureSearchBarPlaceHolder()
+ configureBookmarkButton()
}
}
diff --git a/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift b/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift
index f6833370..8d1e09ae 100644
--- a/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift
+++ b/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift
@@ -7,6 +7,7 @@
//
import UIKit
+import CoreData
import SafariServices
import JavaScriptCore
import DZNEmptyDataSet
@@ -29,6 +30,11 @@ extension MainController: UIWebViewDelegate, SFSafariViewControllerDelegate,
func webViewDidFinishLoad(webView: UIWebView) {
URLResponseCache.shared.stop()
+ guard let url = webView.request?.URL,
+ let article = Article.addOrUpdate(url: url, context: NSManagedObjectContext.mainQueueContext) else {return}
+ article.title = JSInjection.getTitle(from: webView)
+ article.thumbImageURL = URLResponseCache.shared.firstImage()?.absoluteString
+ self.article = article
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist
index 6df7630b..3659a22a 100644
--- a/Kiwix-iOS/Info.plist
+++ b/Kiwix-iOS/Info.plist
@@ -49,7 +49,7 @@
CFBundleVersion
- 1.8.140
+ 1.8.156
ITSAppUsesNonExemptEncryption
LSRequiresIPhoneOS
diff --git a/Kiwix-iOSWidgets/Bookmarks/Info.plist b/Kiwix-iOSWidgets/Bookmarks/Info.plist
index 5c3fc558..d124dd33 100644
--- a/Kiwix-iOSWidgets/Bookmarks/Info.plist
+++ b/Kiwix-iOSWidgets/Bookmarks/Info.plist
@@ -21,7 +21,7 @@
CFBundleSignature
????
CFBundleVersion
- 1.8.142
+ 1.8.158
NSExtension
NSExtensionMainStoryboard
diff --git a/Kiwix/CoreData/Classes/Article.swift b/Kiwix/CoreData/Classes/Article.swift
index f42d93a9..228c665b 100644
--- a/Kiwix/CoreData/Classes/Article.swift
+++ b/Kiwix/CoreData/Classes/Article.swift
@@ -12,15 +12,17 @@ import CoreData
class Article: NSManagedObject {
- class func addOrUpdate(title: String? = nil, url: NSURL, book: Book, context: NSManagedObjectContext) -> Article? {
+ class func addOrUpdate(url url: NSURL, context: NSManagedObjectContext) -> Article? {
+ guard let bookID = url.host,
+ let book = Book.fetch(bookID, context: context),
+ let url = url.absoluteString else {return nil}
+
let fetchRequest = NSFetchRequest(entityName: "Article")
- fetchRequest.predicate = NSPredicate(format: "url = %@", url.absoluteString!)
+ fetchRequest.predicate = NSPredicate(format: "url = %@", url)
+
let article = Article.fetch(fetchRequest, type: Article.self, context: context)?.first ?? insert(Article.self, context: context)
-
- article?.title = title
- article?.url = url.absoluteString!
+ article?.url = url
article?.book = book
-
return article
}