diff --git a/FileBrowser.xcodeproj/project.pbxproj b/FileBrowser.xcodeproj/project.pbxproj index 6905e0f..bbcf316 100644 --- a/FileBrowser.xcodeproj/project.pbxproj +++ b/FileBrowser.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 3437407C1C6E8D7F0090FD6A /* pdf@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3437407B1C6E8D7F0090FD6A /* pdf@2x.png */; }; 3439AB681C6F203A0058AF04 /* FileParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3439AB671C6F203A0058AF04 /* FileParser.swift */; }; 3439AB6A1C6FC6D90058AF04 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3439AB691C6FC6D90058AF04 /* QuickLook.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 3439AB6C1C6FD6650058AF04 /* FilePreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3439AB6B1C6FD6650058AF04 /* FilePreview.swift */; }; 344169581C67812400B93D28 /* FileBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 344169571C67812400B93D28 /* FileBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3441695F1C67812400B93D28 /* FileBrowser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 344169541C67812400B93D28 /* FileBrowser.framework */; }; 344169641C67812400B93D28 /* FileBrowserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 344169631C67812400B93D28 /* FileBrowserTests.swift */; }; @@ -43,6 +44,7 @@ 3437407B1C6E8D7F0090FD6A /* pdf@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pdf@2x.png"; sourceTree = ""; }; 3439AB671C6F203A0058AF04 /* FileParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileParser.swift; sourceTree = ""; }; 3439AB691C6FC6D90058AF04 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; + 3439AB6B1C6FD6650058AF04 /* FilePreview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilePreview.swift; sourceTree = ""; }; 344169541C67812400B93D28 /* FileBrowser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FileBrowser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 344169571C67812400B93D28 /* FileBrowser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileBrowser.h; sourceTree = ""; }; 344169591C67812400B93D28 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -108,6 +110,7 @@ children = ( 344169571C67812400B93D28 /* FileBrowser.h */, 3437405A1C6E7DA50090FD6A /* FileBrowser.swift */, + 3439AB6B1C6FD6650058AF04 /* FilePreview.swift */, 3439AB671C6F203A0058AF04 /* FileParser.swift */, 3439AB691C6FC6D90058AF04 /* QuickLook.framework */, 3437406E1C6E888F0090FD6A /* Resources */, @@ -242,6 +245,7 @@ files = ( 3439AB681C6F203A0058AF04 /* FileParser.swift in Sources */, 3437405B1C6E7DA50090FD6A /* FileBrowser.swift in Sources */, + 3439AB6C1C6FD6650058AF04 /* FilePreview.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/FileBrowser/FileBrowser.swift b/FileBrowser/FileBrowser.swift index 2b99bb3..54dde4c 100644 --- a/FileBrowser/FileBrowser.swift +++ b/FileBrowser/FileBrowser.swift @@ -18,7 +18,7 @@ public class FileBrowser: UIViewController, UITableViewDataSource, UITableViewDe let parser = FileParser() - let quickLookManager = QuickLookManager() + let previewManager = PreviewManager() let bundle = NSBundle(forClass: FileBrowser.self) @@ -194,8 +194,8 @@ public class FileBrowser: UIViewController, UITableViewDataSource, UITableViewDe } else { let quickLook = QLPreviewController() - quickLookManager.filePath = file.filePath - quickLook.dataSource = quickLookManager + previewManager.filePath = file.filePath + quickLook.dataSource = previewManager self.navigationController?.pushViewController(quickLook, animated: true) } updateSelection() @@ -211,41 +211,6 @@ public class FileBrowser: UIViewController, UITableViewDataSource, UITableViewDe }) tableView.reloadData() } - - - //MARK: Search bar delegate -} - -class QuickLookManager: NSObject, QLPreviewControllerDataSource { - - var filePath: NSURL? - - func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int { - return 1 - } - - func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem { - let item = PreviewItem() - if let filePath = filePath { - item.filePath = filePath - } - return item - } - -} - -class PreviewItem: NSObject, QLPreviewItem { - - var filePath: NSURL? - - internal var previewItemURL: NSURL { - if let filePath = filePath { - return filePath - } - return NSURL() - } - - internal var previewItemTitle: String? } diff --git a/FileBrowser/FileParser.swift b/FileBrowser/FileParser.swift index 0054740..c011c24 100644 --- a/FileBrowser/FileParser.swift +++ b/FileBrowser/FileParser.swift @@ -12,6 +12,10 @@ public class FileParser { let fileManager = NSFileManager.defaultManager() + func applicationURL() -> NSURL { + return fileManager.URLsForDirectory(.LibraryDirectory, inDomains: .UserDomainMask)[0] as NSURL + } + func documentsURL() -> NSURL { return fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL } diff --git a/FileBrowser/FilePreview.swift b/FileBrowser/FilePreview.swift new file mode 100644 index 0000000..a58a0e9 --- /dev/null +++ b/FileBrowser/FilePreview.swift @@ -0,0 +1,43 @@ +// +// FilePreview.swift +// FileBrowser +// +// Created by Roy Marmelstein on 13/02/2016. +// Copyright © 2016 Roy Marmelstein. All rights reserved. +// + +import Foundation +import QuickLook + +class PreviewManager: NSObject, QLPreviewControllerDataSource { + + var filePath: NSURL? + + func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int { + return 1 + } + + func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem { + let item = PreviewItem() + if let filePath = filePath { + item.filePath = filePath + } + return item + } + +} + +class PreviewItem: NSObject, QLPreviewItem { + + var filePath: NSURL? + + internal var previewItemURL: NSURL { + if let filePath = filePath { + return filePath + } + return NSURL() + } + + internal var previewItemTitle: String? + +}