mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-27 22:10:57 -04:00
Bug fix
This commit is contained in:
parent
df1c858b48
commit
fa3b0afcbc
@ -58,16 +58,6 @@ class LibraryBooksController: CoreDataCollectionBaseController, UICollectionView
|
|||||||
collectionView?.collectionViewLayout.invalidateLayout()
|
collectionView?.collectionViewLayout.invalidateLayout()
|
||||||
}
|
}
|
||||||
|
|
||||||
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
|
||||||
if segue.identifier == "showLangFilter" {
|
|
||||||
let nav = segue.destination as? UINavigationController
|
|
||||||
let controller = nav?.topViewController as? LibraryLanguageController
|
|
||||||
controller?.dismissBlock = {[unowned self] in
|
|
||||||
self.reloadFetchedResultController()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: - UIControls
|
// MARK: - UIControls
|
||||||
|
|
||||||
let languageFilterButton = UIBarButtonItem(image: UIImage(named: "LanguageFilter"), style: .plain, target: nil, action: nil)
|
let languageFilterButton = UIBarButtonItem(image: UIImage(named: "LanguageFilter"), style: .plain, target: nil, action: nil)
|
||||||
@ -89,10 +79,14 @@ class LibraryBooksController: CoreDataCollectionBaseController, UICollectionView
|
|||||||
}
|
}
|
||||||
|
|
||||||
func languageFilterButtonTapped(sender: UIBarButtonItem) {
|
func languageFilterButtonTapped(sender: UIBarButtonItem) {
|
||||||
let controller = UIStoryboard(name: "Library", bundle: nil).instantiateViewController(withIdentifier: "LibraryLanguageNavController")
|
let nav = UIStoryboard(name: "Library", bundle: nil).instantiateViewController(withIdentifier: "LibraryLanguageNavController") as! UINavigationController
|
||||||
controller.modalPresentationStyle = .popover
|
(nav.topViewController as? LibraryLanguageController)?.dismissBlock = {[unowned self] in
|
||||||
controller.popoverPresentationController?.barButtonItem = sender
|
self.reloadFetchedResultController()
|
||||||
present(controller, animated: true, completion: nil)
|
}
|
||||||
|
|
||||||
|
nav.modalPresentationStyle = .popover
|
||||||
|
nav.popoverPresentationController?.barButtonItem = sender
|
||||||
|
present(nav, animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func downloadButtonTapped(sender: UIBarButtonItem) {
|
func downloadButtonTapped(sender: UIBarButtonItem) {
|
||||||
|
@ -2,4 +2,22 @@
|
|||||||
<Bucket
|
<Bucket
|
||||||
type = "0"
|
type = "0"
|
||||||
version = "2.0">
|
version = "2.0">
|
||||||
|
<Breakpoints>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "Kiwix/Network/Network.swift"
|
||||||
|
timestampString = "507495797.445676"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "142"
|
||||||
|
endingLineNumber = "142"
|
||||||
|
landmarkName = "urlSession(_:downloadTask:didFinishDownloadingTo:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
</Breakpoints>
|
||||||
</Bucket>
|
</Bucket>
|
||||||
|
@ -31,22 +31,18 @@ class Network: NSObject, URLSessionDelegate, URLSessionTaskDelegate, URLSessionD
|
|||||||
// MARK: - actions
|
// MARK: - actions
|
||||||
|
|
||||||
func startDownload(bookID: String) {
|
func startDownload(bookID: String) {
|
||||||
self.managedObjectContext.perform {
|
guard let book = Book.fetch(bookID, context: managedObjectContext), let url = book.url else {return}
|
||||||
guard let book = Book.fetch(bookID, context: self.managedObjectContext) else {return}
|
let task = (book.fileSize > 100000000 ? wifiSession: cellularSession).downloadTask(with: url)
|
||||||
book.state = .local
|
task.taskDescription = book.id
|
||||||
}
|
task.resume()
|
||||||
// guard let url = book.url else {return}
|
|
||||||
// let task = (book.fileSize > 100000000 ? wifiSession: cellularSession).downloadTask(with: url)
|
let downloadTask = DownloadTask.fetch(bookID: book.id, context: managedObjectContext)
|
||||||
// task.taskDescription = book.id
|
downloadTask?.state = .queued
|
||||||
// task.resume()
|
|
||||||
//
|
if self.managedObjectContext.hasChanges { try? self.managedObjectContext.save() }
|
||||||
// let downloadTask = DownloadTask.fetch(bookID: book.id, context: managedObjectContext)
|
|
||||||
// downloadTask?.state = .queued
|
progresses[book.id] = 0
|
||||||
//
|
if progresses.count == 1 { startTimer() }
|
||||||
// if self.managedObjectContext.hasChanges { try? self.managedObjectContext.save() }
|
|
||||||
//
|
|
||||||
// progresses[book.id] = 0
|
|
||||||
// if progresses.count == 1 { startTimer() }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func pause(bookID: String) {
|
func pause(bookID: String) {
|
||||||
@ -132,15 +128,27 @@ class Network: NSObject, URLSessionDelegate, URLSessionTaskDelegate, URLSessionD
|
|||||||
|
|
||||||
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
|
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
|
||||||
managedObjectContext.perform {
|
managedObjectContext.perform {
|
||||||
guard let bookID = downloadTask.taskDescription,
|
guard let bookID = downloadTask.taskDescription else {return}
|
||||||
let book = Book.fetch(bookID, context: self.managedObjectContext),
|
if let book = Book.fetch(bookID, context: self.managedObjectContext),
|
||||||
let downloadTask = DownloadTask.fetch(bookID: bookID, context: self.managedObjectContext) else {return}
|
let downloadTask = DownloadTask.fetch(bookID: bookID, context: self.managedObjectContext) {
|
||||||
//book.state = .local
|
book.state = .local
|
||||||
self.managedObjectContext.delete(downloadTask)
|
self.managedObjectContext.delete(downloadTask)
|
||||||
print("finish downloading")
|
}
|
||||||
|
|
||||||
self.progresses[bookID] = nil
|
self.progresses[bookID] = nil
|
||||||
if self.progresses.count == 0 { self.timer?.invalidate() }
|
if self.progresses.count == 0 { self.timer?.invalidate() }
|
||||||
|
|
||||||
|
if let docDirURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
|
||||||
|
let fileName = {
|
||||||
|
return downloadTask.response?.suggestedFilename
|
||||||
|
?? downloadTask.originalRequest?.url?.lastPathComponent
|
||||||
|
?? bookID
|
||||||
|
}()
|
||||||
|
let destination = docDirURL.appendingPathComponent(fileName)
|
||||||
|
try? FileManager.default.moveItem(at: location, to: destination)
|
||||||
|
}
|
||||||
|
|
||||||
|
print("finish downloading")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user