13 Commits

Author SHA1 Message Date
Roy Marmelstein 90b6bdac72 Fixed test 2016-03-24 07:54:39 +01:00
Roy Marmelstein d2ac7b6c69 Release 0.1.4 2016-03-24 07:50:18 +01:00
Roy Marmelstein a7c94799a2 FBFile update 2016-03-24 07:46:37 +01:00
Roy Marmelstein e7c3bc8c7b Release 0.1.3 2016-03-24 07:42:30 +01:00
Roy Marmelstein 1a135f43f1 Show full file extension 2016-03-24 07:39:26 +01:00
Roy Marmelstein 500102d206 Swift 2.2 updates 2016-03-24 07:34:14 +01:00
Roy Marmelstein 4896621f90 Adding file attributes to FBFile 2016-02-22 21:46:21 +01:00
Roy Marmelstein d98b486b44 Update README.md 2016-02-18 22:46:22 +01:00
Roy Marmelstein 26a93688e2 Release 0.1.1 2016-02-17 21:47:19 +01:00
Roy Marmelstein a305b85344 Merge pull request #4 from waterskier2007/master
renamed FlieListTableView.swift to FileListTableView.swift
2016-02-17 21:43:37 +01:00
Brendan Kirchner 4cc0cd59df renamed FlieListTableView.swift to FileListTableView.swift 2016-02-17 15:38:02 -05:00
Roy Marmelstein 33c74a885c Merge pull request #2 from delba/patch-1
Update README.md
2016-02-17 20:48:00 +01:00
Damien afc7fbe58f Update README.md 2016-02-17 20:41:03 +01:00
12 changed files with 42 additions and 33 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
osx_image: xcode7.2
osx_image: xcode7.3
language: objective-c
env:
global:
+2 -2
View File
@@ -8,8 +8,8 @@
Pod::Spec.new do |s|
s.name = "FileBrowser"
s.version = "0.1"
s.summary = "iOS Finder-style file browser in Swift."
s.version = "0.1.4"
s.summary = "Powerful iOS file browser in Swift."
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
+8 -8
View File
@@ -24,7 +24,7 @@
3441DC611C71235C005CC2FA /* 3crBXeO.gif in Resources */ = {isa = PBXBuildFile; fileRef = 3441DC601C71235C005CC2FA /* 3crBXeO.gif */; };
3441DC631C712370005CC2FA /* Stitch.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3441DC621C712370005CC2FA /* Stitch.jpg */; };
349A12241C70725D005435C0 /* FileListSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 349A12231C70725D005435C0 /* FileListSearch.swift */; };
349A12261C707317005435C0 /* FlieListTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 349A12251C707317005435C0 /* FlieListTableView.swift */; };
349A12261C707317005435C0 /* FileListTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 349A12251C707317005435C0 /* FileListTableView.swift */; };
349A12281C707B1A005435C0 /* FBFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 349A12271C707B1A005435C0 /* FBFile.swift */; };
349A12321C707E86005435C0 /* documents@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 349A122B1C707E86005435C0 /* documents@2x.png */; };
349A12331C707E86005435C0 /* file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 349A122C1C707E86005435C0 /* file@2x.png */; };
@@ -66,7 +66,7 @@
3441DC601C71235C005CC2FA /* 3crBXeO.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = 3crBXeO.gif; sourceTree = "<group>"; };
3441DC621C712370005CC2FA /* Stitch.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = Stitch.jpg; sourceTree = "<group>"; };
349A12231C70725D005435C0 /* FileListSearch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileListSearch.swift; sourceTree = "<group>"; };
349A12251C707317005435C0 /* FlieListTableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FlieListTableView.swift; sourceTree = "<group>"; };
349A12251C707317005435C0 /* FileListTableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileListTableView.swift; sourceTree = "<group>"; };
349A12271C707B1A005435C0 /* FBFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FBFile.swift; sourceTree = "<group>"; };
349A122B1C707E86005435C0 /* documents@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "documents@2x.png"; sourceTree = "<group>"; };
349A122C1C707E86005435C0 /* file@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "file@2x.png"; sourceTree = "<group>"; };
@@ -113,7 +113,7 @@
3437405A1C6E7DA50090FD6A /* FileListViewController.swift */,
3439AB6B1C6FD6650058AF04 /* FileListPreview.swift */,
349A12231C70725D005435C0 /* FileListSearch.swift */,
349A12251C707317005435C0 /* FlieListTableView.swift */,
349A12251C707317005435C0 /* FileListTableView.swift */,
);
name = FileList;
sourceTree = "<group>";
@@ -318,7 +318,7 @@
files = (
343C447A1C73CFC400D874FB /* WebviewPreviewViewContoller.swift in Sources */,
3439AB701C6FF68C0058AF04 /* FileBrowser.swift in Sources */,
349A12261C707317005435C0 /* FlieListTableView.swift in Sources */,
349A12261C707317005435C0 /* FileListTableView.swift in Sources */,
343C44661C73CD3200D874FB /* PreviewManager.swift in Sources */,
3439AB681C6F203A0058AF04 /* FileParser.swift in Sources */,
349A12281C707B1A005435C0 /* FBFile.swift in Sources */,
@@ -367,7 +367,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 2;
CURRENT_PROJECT_VERSION = 5;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
@@ -415,7 +415,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 2;
CURRENT_PROJECT_VERSION = 5;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -443,7 +443,7 @@
CLANG_ENABLE_MODULES = YES;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 2;
DYLIB_CURRENT_VERSION = 5;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = FileBrowser/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -462,7 +462,7 @@
CLANG_ENABLE_MODULES = YES;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 2;
DYLIB_CURRENT_VERSION = 5;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = FileBrowser/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+18 -9
View File
@@ -16,6 +16,8 @@ public class FBFile: NSObject {
public let isDirectory: Bool
/// File extension.
public let fileExtension: String?
/// File attributes (including size, creation date etc).
public let fileAttributes: NSDictionary?
/// NSURL file path.
public let filePath: NSURL
// FBFileType
@@ -29,30 +31,25 @@ public class FBFile: NSObject {
- returns: FBFile object.
*/
init(filePath: NSURL) {
var displayName = filePath.lastPathComponent
self.filePath = filePath
let isDirectory = checkDirectory(filePath)
self.isDirectory = isDirectory
if self.isDirectory {
self.fileAttributes = nil
self.fileExtension = nil
self.type = .Directory
}
else {
self.fileExtension = self.filePath.pathExtension
self.fileAttributes = getFileAttributes(self.filePath)
self.fileExtension = filePath.pathExtension
if let fileExtension = fileExtension {
self.type = FBFileType(rawValue: fileExtension) ?? .Default
displayName = displayName?.stringByReplacingOccurrencesOfString(".\(fileExtension)", withString: "")
}
else {
self.type = .Default
}
}
if let displayName = displayName {
self.displayName = displayName
}
else {
self.displayName = String()
}
self.displayName = filePath.lastPathComponent ?? String()
}
}
@@ -118,3 +115,15 @@ func checkDirectory(filePath: NSURL) -> Bool {
catch { }
return isDirectory
}
func getFileAttributes(filePath: NSURL) -> NSDictionary? {
guard let path = filePath.path else {
return nil
}
let fileManager = FileParser.sharedInstance.fileManager
do {
let attributes = try fileManager.attributesOfItemAtPath(path) as NSDictionary
return attributes
} catch {}
return nil
}
+2 -2
View File
@@ -49,7 +49,7 @@ class FileListViewController: UIViewController {
searchController.delegate = self
// Add dismiss button
let dismissButton = UIBarButtonItem(barButtonSystemItem: .Cancel, target: self, action: "dismiss")
let dismissButton = UIBarButtonItem(barButtonSystemItem: .Cancel, target: self, action: #selector(FileListViewController.dismiss))
self.navigationItem.rightBarButtonItem = dismissButton
}
@@ -96,7 +96,7 @@ class FileListViewController: UIViewController {
//MARK: Data
func indexFiles() {
let selector: Selector = "displayName"
let selector: Selector = Selector("displayName")
sections = Array(count: collation.sectionTitles.count, repeatedValue: [])
if let sortedObjects = collation.sortedArrayFromArray(files, collationStringSelector: selector) as? [FBFile]{
for object in sortedObjects {
+2 -2
View File
@@ -15,11 +15,11 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.1</string>
<string>0.1.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>2</string>
<string>5</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
@@ -28,7 +28,7 @@ class WebviewPreviewViewContoller: UIViewController {
self.view.addSubview(webView)
// Add share button
let shareButton = UIBarButtonItem(barButtonSystemItem: .Action, target: self, action: "shareFile")
let shareButton = UIBarButtonItem(barButtonSystemItem: .Action, target: self, action: #selector(WebviewPreviewViewContoller.shareFile))
self.navigationItem.rightBarButtonItem = shareButton
}
+1 -1
View File
@@ -50,7 +50,7 @@ class FileBrowserTests: XCTestCase {
let directoryPath = NSBundle(forClass: FileBrowserTests.self).bundleURL
let directoryContents = parser.filesForDirectory(directoryPath)
XCTAssertTrue(directoryContents.count > 0)
let stitchFile = directoryContents.filter({$0.displayName == "Stitch"}).first
let stitchFile = directoryContents.filter({$0.displayName == "Stitch.jpg"}).first
XCTAssertNotNil(stitchFile)
if let stitchFile = stitchFile {
XCTAssertEqual(stitchFile.type, FBFileType.JPG)
+2 -2
View File
@@ -15,10 +15,10 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>0.1</string>
<string>0.1.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>2</string>
<string>5</string>
</dict>
</plist>
+2 -2
View File
@@ -13,7 +13,7 @@ iOS Finder-style file browser in Swift with search, file previews and 3D touch.
| Features
--------------------------|------------------------------------------------------------
:iphone: | Browse files and folders with a familiar UI on iOS.
:iphone: | Browse and select files and folders with a familiar UI on iOS.
:mag: | Pull down to search.
:eyeglasses: | Preview most file types. Including plist and json.
:point_up_2: | 3D touch support for faster previews with Peek & Pop.
@@ -73,7 +73,7 @@ $ brew update
$ brew install carthage
```
To integrate Format into your Xcode project using Carthage, specify it in your `Cartfile`:
To integrate FileBrowser into your Xcode project using Carthage, specify it in your `Cartfile`:
```ogdl
github "marmelroy/FileBrowser"
+3 -3
View File
@@ -2,7 +2,7 @@
# **** Update me when new Xcode versions are released! ****
PLATFORM="platform=iOS Simulator,OS=9.2,name=iPhone 6"
SDK="iphonesimulator9.2"
SDK="iphonesimulator9.3"
# It is pitch black.
@@ -19,7 +19,7 @@ MODE="$1"
if [ "$MODE" = "framework" ]; then
echo "Building and testing FileBrowser."
xctool \
xcodebuild \
-project FileBrowser.xcodeproj \
-scheme FileBrowser \
-sdk "$SDK" \
@@ -35,7 +35,7 @@ if [ "$MODE" = "examples" ]; then
for example in examples/*/; do
echo "Building $example."
pod install --project-directory=$example
xctool \
xcodebuild \
-workspace "${example}Sample.xcworkspace" \
-scheme Sample \
-sdk "$SDK" \