mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-28 14:35:03 -04:00
Bookmark widget data update
This commit is contained in:
parent
d6718d2d67
commit
874d1da6fc
@ -10,6 +10,7 @@ import UIKit
|
|||||||
import SafariServices
|
import SafariServices
|
||||||
import CoreSpotlight
|
import CoreSpotlight
|
||||||
import CloudKit
|
import CloudKit
|
||||||
|
import NotificationCenter
|
||||||
|
|
||||||
class MainController: UIViewController {
|
class MainController: UIViewController {
|
||||||
|
|
||||||
@ -294,6 +295,27 @@ extension MainController: ButtonDelegates {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func updateBookmarkWidget() {
|
||||||
|
guard let defaults = UserDefaults(suiteName: "group.kiwix") else {return}
|
||||||
|
let bookmarks = Article
|
||||||
|
.fetchRecentBookmarks(count: 30, context: AppDelegate.persistentContainer.viewContext)
|
||||||
|
.flatMap { (article) -> [String: Any]? in
|
||||||
|
guard let title = article.title,
|
||||||
|
let data = article.thumbImageData,
|
||||||
|
let urlString = article.url?.absoluteString else {return nil}
|
||||||
|
return [
|
||||||
|
"title": title,
|
||||||
|
"thumbImageData": data,
|
||||||
|
"url": urlString,
|
||||||
|
"isMainPage": NSNumber(value: article.isMainPage)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
print(bookmarks.count)
|
||||||
|
defaults.set(bookmarks, forKey: "bookmarks")
|
||||||
|
NCWidgetController.widgetController().setHasContent(bookmarks.count > 0, forWidgetWithBundleIdentifier: "self.Kiwix.Bookmarks")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
let context = AppDelegate.persistentContainer.viewContext
|
let context = AppDelegate.persistentContainer.viewContext
|
||||||
guard let url = webView.request?.url,
|
guard let url = webView.request?.url,
|
||||||
let article = Article.fetch(url: url, context: context) else {return}
|
let article = Article.fetch(url: url, context: context) else {return}
|
||||||
@ -306,8 +328,7 @@ extension MainController: ButtonDelegates {
|
|||||||
controllers.bookmarkHUD.bookmarkAdded = article.isBookmarked
|
controllers.bookmarkHUD.bookmarkAdded = article.isBookmarked
|
||||||
|
|
||||||
indexCoreSpotlight(article: article)
|
indexCoreSpotlight(article: article)
|
||||||
// let operation = BookmarkSyncOperation(articleURL: url)
|
updateBookmarkWidget()
|
||||||
// GlobalQueue.shared.add(operation: operation)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,16 +27,14 @@ class Article: NSManagedObject {
|
|||||||
return article
|
return article
|
||||||
}
|
}
|
||||||
|
|
||||||
// class func fetchRecentBookmarks(_ count: Int, context: NSManagedObjectContext) -> [Article] {
|
class func fetchRecentBookmarks(count: Int, context: NSManagedObjectContext) -> [Article] {
|
||||||
// let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Article")
|
let fetchRequest = Article.fetchRequest() as! NSFetchRequest<Article>
|
||||||
// let dateDescriptor = NSSortDescriptor(key: "bookmarkDate", ascending: false)
|
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "bookmarkDate", ascending: false)]
|
||||||
// let titleDescriptor = NSSortDescriptor(key: "title", ascending: true)
|
fetchRequest.predicate = NSPredicate(format: "isBookmarked == true")
|
||||||
// fetchRequest.sortDescriptors = [dateDescriptor, titleDescriptor]
|
fetchRequest.fetchLimit = count
|
||||||
// fetchRequest.predicate = NSPredicate(format: "isBookmarked == true")
|
return (try? context.fetch(fetchRequest)) ?? [Article]()
|
||||||
// fetchRequest.fetchLimit = count
|
}
|
||||||
// return fetch(fetchRequest, type: Article.self, context: context) ?? [Article]()
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
class func fetchBookmarked(in book: Book, with context: NSManagedObjectContext) -> [Article] {
|
class func fetchBookmarked(in book: Book, with context: NSManagedObjectContext) -> [Article] {
|
||||||
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Article")
|
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Article")
|
||||||
request.predicate = NSPredicate(format: "book = %@ AND isBookmarked == true", book)
|
request.predicate = NSPredicate(format: "book = %@ AND isBookmarked == true", book)
|
||||||
|
@ -26,7 +26,7 @@ class UpdateWidgetDataSourceOperation: Procedure {
|
|||||||
|
|
||||||
var articles = [Article]()
|
var articles = [Article]()
|
||||||
context.performAndWait {
|
context.performAndWait {
|
||||||
articles = Article.fetchRecentBookmarks(30, context: self.context)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var bookmarks = [NSDictionary]()
|
var bookmarks = [NSDictionary]()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user