From 3dc728be2f83da7f6541cfc755386d0ff413388a Mon Sep 17 00:00:00 2001 From: Chris Li Date: Wed, 21 Sep 2016 13:37:51 -0400 Subject: [PATCH] FileManage removed --- Kiwix-iOS/Controller/LibraryBackupTBVC.swift | 4 +- Kiwix-iOS/Controller/SettingTBVC.swift | 2 +- Kiwix-iOS/Info.plist | 2 +- Kiwix-iOSWidgets/Bookmarks/Info.plist | 2 +- Kiwix.xcodeproj/project.pbxproj | 4 - Kiwix/Tools/Extensions.swift | 29 ++++ Kiwix/Tools/FileManager.swift | 148 ------------------- 7 files changed, 34 insertions(+), 157 deletions(-) delete mode 100644 Kiwix/Tools/FileManager.swift diff --git a/Kiwix-iOS/Controller/LibraryBackupTBVC.swift b/Kiwix-iOS/Controller/LibraryBackupTBVC.swift index ffede572..a5cd5a46 100644 --- a/Kiwix-iOS/Controller/LibraryBackupTBVC.swift +++ b/Kiwix-iOS/Controller/LibraryBackupTBVC.swift @@ -16,7 +16,7 @@ class LibraryBackupTBVC: UITableViewController { super.viewDidLoad() title = NSLocalizedString("Backup", comment: "Setting: Backup local files title") toggle.addTarget(self, action: #selector(LibraryBackupTBVC.switcherValueChanged(_:)), forControlEvents: .ValueChanged) - toggle.on = !(FileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) ?? false) + toggle.on = !(NSFileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) ?? false) } // MARK: - Table view data source @@ -48,7 +48,7 @@ class LibraryBackupTBVC: UITableViewController { func switcherValueChanged(switcher: UISwitch) { guard switcher == toggle else {return} - FileManager.setSkipBackupAttribute(!switcher.on, url: NSFileManager.docDirURL) + NSFileManager.setSkipBackupAttribute(!switcher.on, url: NSFileManager.docDirURL) } } diff --git a/Kiwix-iOS/Controller/SettingTBVC.swift b/Kiwix-iOS/Controller/SettingTBVC.swift index 1b36e9c6..7e56a429 100644 --- a/Kiwix-iOS/Controller/SettingTBVC.swift +++ b/Kiwix-iOS/Controller/SettingTBVC.swift @@ -67,7 +67,7 @@ class SettingTBVC: UITableViewController { case NSIndexPath(forRow: 1, inSection: 0): return Preference.libraryRefreshAllowCellularData ? LocalizedStrings.on : LocalizedStrings.off case NSIndexPath(forRow: 2, inSection: 0): - guard let skipBackup = FileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) else {return ""} + guard let skipBackup = NSFileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) else {return ""} return skipBackup ? LocalizedStrings.off: LocalizedStrings.on case NSIndexPath(forRow: 0, inSection: 1): return String.formattedPercentString(Preference.webViewZoomScale / 100) diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist index 1bf6d742..3b543523 100644 --- a/Kiwix-iOS/Info.plist +++ b/Kiwix-iOS/Info.plist @@ -49,7 +49,7 @@ CFBundleVersion - 1.8.956 + 1.8.966 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/Kiwix-iOSWidgets/Bookmarks/Info.plist b/Kiwix-iOSWidgets/Bookmarks/Info.plist index 05bcad30..697ec8fa 100644 --- a/Kiwix-iOSWidgets/Bookmarks/Info.plist +++ b/Kiwix-iOSWidgets/Bookmarks/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 1.8.959 + 1.8.969 NSExtension NSExtensionMainStoryboard diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj index c05b1094..14e5f918 100644 --- a/Kiwix.xcodeproj/project.pbxproj +++ b/Kiwix.xcodeproj/project.pbxproj @@ -107,7 +107,6 @@ 97A1FD3A1D6F724E00A80EE2 /* reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD351D6F724E00A80EE2 /* reader.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 97A1FD3B1D6F724E00A80EE2 /* stringTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD371D6F724E00A80EE2 /* stringTools.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 97A1FD421D6F728200A80EE2 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD3D1D6F728200A80EE2 /* Extensions.swift */; }; - 97A1FD431D6F728200A80EE2 /* FileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD3E1D6F728200A80EE2 /* FileManager.swift */; }; 97A1FD441D6F728200A80EE2 /* Preference.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD401D6F728200A80EE2 /* Preference.swift */; }; 97A1FD451D6F728200A80EE2 /* StringTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD411D6F728200A80EE2 /* StringTools.swift */; }; 97A7017F1D2C59CA00AAE2D8 /* GetStartedController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A7017E1D2C59CA00AAE2D8 /* GetStartedController.swift */; }; @@ -337,7 +336,6 @@ 97A1FD351D6F724E00A80EE2 /* reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reader.cpp; path = "C&C++/reader.cpp"; sourceTree = ""; }; 97A1FD371D6F724E00A80EE2 /* stringTools.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stringTools.cpp; path = "C&C++/stringTools.cpp"; sourceTree = ""; }; 97A1FD3D1D6F728200A80EE2 /* Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; - 97A1FD3E1D6F728200A80EE2 /* FileManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileManager.swift; sourceTree = ""; }; 97A1FD401D6F728200A80EE2 /* Preference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Preference.swift; sourceTree = ""; }; 97A1FD411D6F728200A80EE2 /* StringTools.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringTools.swift; sourceTree = ""; }; 97A2AB881C1B80FF00052E74 /* Kiwix.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Kiwix.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -856,7 +854,6 @@ isa = PBXGroup; children = ( 97A1FD3D1D6F728200A80EE2 /* Extensions.swift */, - 97A1FD3E1D6F728200A80EE2 /* FileManager.swift */, 97C601DD1D7F342100362D4F /* HTMLHeading.swift */, 97A1FD401D6F728200A80EE2 /* Preference.swift */, 97A1FD411D6F728200A80EE2 /* StringTools.swift */, @@ -1532,7 +1529,6 @@ 97D681401D6F712800E5FA99 /* Book+CoreDataProperties.swift in Sources */, 9764CBD31D8083AA00072D6A /* ArticleOperation.swift in Sources */, 97A1FD421D6F728200A80EE2 /* Extensions.swift in Sources */, - 97A1FD431D6F728200A80EE2 /* FileManager.swift in Sources */, 974F42821D47E19A00F8074C /* SettingWidgetBookmarksTBVC.swift in Sources */, 97A1FD3A1D6F724E00A80EE2 /* reader.cpp in Sources */, 97D681381D6F711A00E5FA99 /* Book.swift in Sources */, diff --git a/Kiwix/Tools/Extensions.swift b/Kiwix/Tools/Extensions.swift index 4e111b8e..7ae14d84 100644 --- a/Kiwix/Tools/Extensions.swift +++ b/Kiwix/Tools/Extensions.swift @@ -84,6 +84,35 @@ extension NSFileManager { let urls = try? NSFileManager.defaultManager().contentsOfDirectoryAtURL(NSFileManager.docDirURL, includingPropertiesForKeys: nil, options: options) return urls ?? [NSURL]() } + + // MARK: - Backup Attribute + + class func setSkipBackupAttribute(skipBackup: Bool, url: NSURL) { + guard let path = url.path else {return} + guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return} + + do { + try url.setResourceValues([NSURLIsExcludedFromBackupKey: skipBackup]) + } catch let error as NSError { + print("Set skip backup attribute for item \(url) failed, error: \(error.localizedDescription)") + } + } + + class func getSkipBackupAttribute(item url: NSURL) -> Bool? { + guard let path = url.path else {return nil} + guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return nil} + + var skipBackup: AnyObject? = nil + + do { + try url.getResourceValue(&skipBackup, forKey: NSURLIsExcludedFromBackupKey) + } catch let error as NSError { + print("Get skip backup attribute for item \(url) failed, error: \(error.localizedDescription)") + } + + guard let number = skipBackup as? NSNumber else {return nil} + return number.boolValue + } } extension UIDevice { diff --git a/Kiwix/Tools/FileManager.swift b/Kiwix/Tools/FileManager.swift deleted file mode 100644 index 280fdc0b..00000000 --- a/Kiwix/Tools/FileManager.swift +++ /dev/null @@ -1,148 +0,0 @@ -// -// FileManager.swift -// Kiwix -// -// Created by Chris Li on 3/28/16. -// Copyright © 2016 Chris. All rights reserved. -// - -class FileManager { - - // MARK: - Move Book - - class func move(book: Book, fromURL: NSURL, suggestedFileName: String?) { - let fileName: String = { - if let suggestedFileName = suggestedFileName {return suggestedFileName} - return book.id - }() - let directory = NSFileManager.docDirURL - createDirectory(directory, includeInICloudBackup: false) - let destination = directory.URLByAppendingPathComponent(fileName) - moveOrReplaceFile(from: fromURL, to: destination!) - } - - // MARK: - Book Resume Data - - private class func resumeDataURL(book: Book) -> NSURL { - let tempDownloadLocation = NSURL(fileURLWithPath: NSFileManager.libDirURL.path!).URLByAppendingPathComponent("DownloadTemp", isDirectory: true) - return tempDownloadLocation!.URLByAppendingPathComponent(book.id ?? NSDate().description, isDirectory: false)! - } - - class func saveResumeData(data: NSData, book: Book) { - let tempDownloadLocation = NSURL(fileURLWithPath: NSFileManager.libDirURL.path!).URLByAppendingPathComponent("DownloadTemp", isDirectory: true) - if !NSFileManager.defaultManager().fileExistsAtPath(tempDownloadLocation!.path!) { - do { - try NSFileManager.defaultManager().createDirectoryAtURL(tempDownloadLocation!, withIntermediateDirectories: true, attributes: [NSURLIsExcludedFromBackupKey: true]) - } catch let error as NSError { - print("Create temp download folder failed: \(error.localizedDescription)") - } - } - data.writeToURL(resumeDataURL(book), atomically: true) - } - - class func readResumeData(book: Book) -> NSData? { - guard let path = resumeDataURL(book).path else {return nil} - return NSFileManager.defaultManager().contentsAtPath(path) - } - - class func removeResumeData(book: Book) { - if NSFileManager.defaultManager().fileExistsAtPath(resumeDataURL(book).path!) { - removeItem(atURL: resumeDataURL(book)) - } - } - - // MARK: - Contents of Doc Folder - - class var zimFileURLsInDocDir: [NSURL] { - return [NSURL]() - } - - // MARK: - Item Operations - - class func itemExistAtURL(url: NSURL) -> Bool { - guard let path = url.path else {return false} - return NSFileManager.defaultManager().fileExistsAtPath(path) - } - - class func removeItem(atURL location: NSURL) -> Bool { - var succeed = true - do { - try NSFileManager.defaultManager().removeItemAtURL(location) - } catch let error as NSError { - succeed = false - print("Remove File failed: \(error.localizedDescription)") - } - return succeed - } - - class func moveOrReplaceFile(from fromURL: NSURL, to toURL: NSURL) -> Bool { - var succeed = true - guard let path = toURL.path else {return false} - if NSFileManager.defaultManager().fileExistsAtPath(path) { - succeed = removeItem(atURL: toURL) - } - - do { - try NSFileManager.defaultManager().moveItemAtURL(fromURL, toURL: toURL) - } catch let error as NSError { - succeed = false - print("Move File failed: \(error.localizedDescription)") - } - return succeed - } - - // MARK: - Dir Operations - - class func createDirectory(url: NSURL, includeInICloudBackup: Bool) { - guard let path = url.path else {return} - do { - try NSFileManager.defaultManager().createDirectoryAtPath(path, withIntermediateDirectories: true, attributes: [NSURLIsExcludedFromBackupKey: true]) - } catch let error as NSError { - print("Create Directory failed: \(error.localizedDescription)") - } - } - - class func contentsOfDirectory(url: NSURL) -> [NSURL] { - do { - return try NSFileManager.defaultManager().contentsOfDirectoryAtURL(url, includingPropertiesForKeys: nil, options: .SkipsSubdirectoryDescendants) - } catch let error as NSError { - print("Contents of Directory failed: \(error.localizedDescription)") - return [NSURL]() - } - } - - class func removeContentsOfDirectory(url: NSURL) { - for fileURL in contentsOfDirectory(url) { - removeItem(atURL: fileURL) - } - } - - // MARK: - Backup Attribute - - class func setSkipBackupAttribute(skipBackup: Bool, url: NSURL) { - guard let path = url.path else {return} - guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return} - - do { - try url.setResourceValues([NSURLIsExcludedFromBackupKey: skipBackup]) - } catch let error as NSError { - print("Set skip backup attribute for item \(url) failed, error: \(error.localizedDescription)") - } - } - - class func getSkipBackupAttribute(item url: NSURL) -> Bool? { - guard let path = url.path else {return nil} - guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return nil} - - var skipBackup: AnyObject? = nil - - do { - try url.getResourceValue(&skipBackup, forKey: NSURLIsExcludedFromBackupKey) - } catch let error as NSError { - print("Get skip backup attribute for item \(url) failed, error: \(error.localizedDescription)") - } - - guard let number = skipBackup as? NSNumber else {return nil} - return number.boolValue - } -}