Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8ad819052c | ||
|
|
318d3e1f8e | ||
|
|
a7a6a1b315 | ||
|
|
96a45035a9 | ||
|
|
003ca5c285 | ||
|
|
bc2e69440c | ||
|
|
794d5a2d86 | ||
|
|
c5beca03f7 | ||
|
|
7ee4cfa0fd | ||
|
|
4dc34e956a | ||
|
|
584e357f0e | ||
|
|
243ee49fc1 | ||
|
|
5f53dbe6b5 | ||
|
|
97ceb32d29 | ||
|
|
29ce192b5c | ||
|
|
6974e707dc |
+43
@@ -0,0 +1,43 @@
|
||||
# Mac OS X
|
||||
.DS_Store
|
||||
|
||||
# Xcode
|
||||
|
||||
## Build generated
|
||||
build/
|
||||
DerivedData
|
||||
|
||||
## Various settings
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
!default.mode1v3
|
||||
*.mode2v3
|
||||
!default.mode2v3
|
||||
*.perspectivev3
|
||||
!default.perspectivev3
|
||||
xcuserdata
|
||||
|
||||
## Other
|
||||
*.xccheckout
|
||||
*.moved-aside
|
||||
*.xcuserstate
|
||||
*.xcscmblueprint
|
||||
|
||||
## Obj-C/Swift specific
|
||||
*.hmap
|
||||
*.ipa
|
||||
|
||||
## Playgrounds
|
||||
timeline.xctimeline
|
||||
playground.xcworkspace
|
||||
|
||||
# Swift Package Manager
|
||||
.build/
|
||||
|
||||
# Carthage
|
||||
Carthage/
|
||||
|
||||
# Cocoapods
|
||||
Pods/
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
Changelog
|
||||
==========
|
||||
|
||||
### 2.1.2
|
||||
|
||||
- Use DispatchGroup for download
|
||||
|
||||
### 2.1.1
|
||||
|
||||
- Hide close button when push the controller
|
||||
|
||||
### 2.1.0
|
||||
|
||||
- Add push transition with `pushOpenSourceController(from: self)`
|
||||
|
||||
### 2.0.1
|
||||
|
||||
- Clean code and move loader position
|
||||
|
||||
+549
File diff suppressed because one or more lines are too long
+552
File diff suppressed because one or more lines are too long
+20
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.com.OpenSourceController.OpenSourceController-iOS</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Carthage/Build/iOS/OpenSourceController.framework.dSYM/Contents/Resources/DWARF/OpenSourceController
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
+234
@@ -0,0 +1,234 @@
|
||||
// Generated by Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wgcc-compat"
|
||||
|
||||
#if !defined(__has_include)
|
||||
# define __has_include(x) 0
|
||||
#endif
|
||||
#if !defined(__has_attribute)
|
||||
# define __has_attribute(x) 0
|
||||
#endif
|
||||
#if !defined(__has_feature)
|
||||
# define __has_feature(x) 0
|
||||
#endif
|
||||
#if !defined(__has_warning)
|
||||
# define __has_warning(x) 0
|
||||
#endif
|
||||
|
||||
#if __has_attribute(external_source_symbol)
|
||||
# define SWIFT_STRINGIFY(str) #str
|
||||
# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) _Pragma(SWIFT_STRINGIFY(clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in=module_name, generated_declaration))), apply_to=any(function, enum, objc_interface, objc_category, objc_protocol))))
|
||||
# define SWIFT_MODULE_NAMESPACE_POP _Pragma("clang attribute pop")
|
||||
#else
|
||||
# define SWIFT_MODULE_NAMESPACE_PUSH(module_name)
|
||||
# define SWIFT_MODULE_NAMESPACE_POP
|
||||
#endif
|
||||
|
||||
#if __has_include(<swift/objc-prologue.h>)
|
||||
# include <swift/objc-prologue.h>
|
||||
#endif
|
||||
|
||||
#pragma clang diagnostic ignored "-Wauto-import"
|
||||
#include <objc/NSObject.h>
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#if !defined(SWIFT_TYPEDEFS)
|
||||
# define SWIFT_TYPEDEFS 1
|
||||
# if __has_include(<uchar.h>)
|
||||
# include <uchar.h>
|
||||
# elif !defined(__cplusplus) || __cplusplus < 201103L
|
||||
typedef uint_least16_t char16_t;
|
||||
typedef uint_least32_t char32_t;
|
||||
# endif
|
||||
typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
|
||||
typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
|
||||
typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
|
||||
typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
|
||||
#endif
|
||||
|
||||
#if !defined(SWIFT_PASTE)
|
||||
# define SWIFT_PASTE_HELPER(x, y) x##y
|
||||
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
|
||||
#endif
|
||||
#if !defined(SWIFT_METATYPE)
|
||||
# define SWIFT_METATYPE(X) Class
|
||||
#endif
|
||||
#if !defined(SWIFT_CLASS_PROPERTY)
|
||||
# if __has_feature(objc_class_property)
|
||||
# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
|
||||
# else
|
||||
# define SWIFT_CLASS_PROPERTY(...)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __has_attribute(objc_runtime_name)
|
||||
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
|
||||
#else
|
||||
# define SWIFT_RUNTIME_NAME(X)
|
||||
#endif
|
||||
#if __has_attribute(swift_name)
|
||||
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
|
||||
#else
|
||||
# define SWIFT_COMPILE_NAME(X)
|
||||
#endif
|
||||
#if __has_attribute(objc_method_family)
|
||||
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
|
||||
#else
|
||||
# define SWIFT_METHOD_FAMILY(X)
|
||||
#endif
|
||||
#if __has_attribute(noescape)
|
||||
# define SWIFT_NOESCAPE __attribute__((noescape))
|
||||
#else
|
||||
# define SWIFT_NOESCAPE
|
||||
#endif
|
||||
#if __has_attribute(warn_unused_result)
|
||||
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
|
||||
#else
|
||||
# define SWIFT_WARN_UNUSED_RESULT
|
||||
#endif
|
||||
#if __has_attribute(noreturn)
|
||||
# define SWIFT_NORETURN __attribute__((noreturn))
|
||||
#else
|
||||
# define SWIFT_NORETURN
|
||||
#endif
|
||||
#if !defined(SWIFT_CLASS_EXTRA)
|
||||
# define SWIFT_CLASS_EXTRA
|
||||
#endif
|
||||
#if !defined(SWIFT_PROTOCOL_EXTRA)
|
||||
# define SWIFT_PROTOCOL_EXTRA
|
||||
#endif
|
||||
#if !defined(SWIFT_ENUM_EXTRA)
|
||||
# define SWIFT_ENUM_EXTRA
|
||||
#endif
|
||||
#if !defined(SWIFT_CLASS)
|
||||
# if __has_attribute(objc_subclassing_restricted)
|
||||
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
|
||||
# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
|
||||
# else
|
||||
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
|
||||
# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(SWIFT_PROTOCOL)
|
||||
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
|
||||
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
|
||||
#endif
|
||||
|
||||
#if !defined(SWIFT_EXTENSION)
|
||||
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_DESIGNATED_INITIALIZER)
|
||||
# if __has_attribute(objc_designated_initializer)
|
||||
# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
|
||||
# else
|
||||
# define OBJC_DESIGNATED_INITIALIZER
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(SWIFT_ENUM_ATTR)
|
||||
# if defined(__has_attribute) && __has_attribute(enum_extensibility)
|
||||
# define SWIFT_ENUM_ATTR __attribute__((enum_extensibility(open)))
|
||||
# else
|
||||
# define SWIFT_ENUM_ATTR
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(SWIFT_ENUM)
|
||||
# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type
|
||||
# if __has_feature(generalized_swift_name)
|
||||
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type
|
||||
# else
|
||||
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name)
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(SWIFT_UNAVAILABLE)
|
||||
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
|
||||
#endif
|
||||
#if !defined(SWIFT_UNAVAILABLE_MSG)
|
||||
# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
|
||||
#endif
|
||||
#if !defined(SWIFT_AVAILABILITY)
|
||||
# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
|
||||
#endif
|
||||
#if !defined(SWIFT_DEPRECATED)
|
||||
# define SWIFT_DEPRECATED __attribute__((deprecated))
|
||||
#endif
|
||||
#if !defined(SWIFT_DEPRECATED_MSG)
|
||||
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
|
||||
#endif
|
||||
#if __has_feature(attribute_diagnose_if_objc)
|
||||
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
|
||||
#else
|
||||
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
|
||||
#endif
|
||||
#if __has_feature(modules)
|
||||
@import ObjectiveC;
|
||||
@import UIKit;
|
||||
@import Foundation;
|
||||
@import CoreGraphics;
|
||||
#endif
|
||||
|
||||
#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
|
||||
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
|
||||
#if __has_warning("-Wpragma-clang-attribute")
|
||||
# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
|
||||
#endif
|
||||
#pragma clang diagnostic ignored "-Wunknown-pragmas"
|
||||
#pragma clang diagnostic ignored "-Wnullability"
|
||||
|
||||
SWIFT_MODULE_NAMESPACE_PUSH("OpenSourceController")
|
||||
|
||||
SWIFT_CLASS("_TtC20OpenSourceController17LicenceDownloader")
|
||||
@interface LicenceDownloader : NSObject
|
||||
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
|
||||
@end
|
||||
|
||||
|
||||
SWIFT_CLASS("_TtC20OpenSourceController11LicenceFile")
|
||||
@interface LicenceFile : NSObject
|
||||
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
|
||||
@end
|
||||
|
||||
|
||||
SWIFT_CLASS("_TtC20OpenSourceController20OpenSourceController")
|
||||
@interface OpenSourceController : NSObject
|
||||
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
|
||||
@end
|
||||
|
||||
@class NSCoder;
|
||||
|
||||
SWIFT_CLASS("_TtC20OpenSourceController23OpenSourceTableViewCell")
|
||||
@interface OpenSourceTableViewCell : UITableViewCell
|
||||
- (nonnull instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString * _Nullable)reuseIdentifier OBJC_DESIGNATED_INITIALIZER;
|
||||
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
|
||||
- (void)setSelected:(BOOL)selected animated:(BOOL)animated;
|
||||
- (void)layoutSubviews;
|
||||
@end
|
||||
|
||||
@class UITableView;
|
||||
@class NSBundle;
|
||||
|
||||
SWIFT_CLASS("_TtC20OpenSourceController24OpenSourceViewController")
|
||||
@interface OpenSourceViewController : UITableViewController
|
||||
- (void)viewDidLoad;
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView * _Nonnull)tableView SWIFT_WARN_UNUSED_RESULT;
|
||||
- (NSInteger)tableView:(UITableView * _Nonnull)tableView numberOfRowsInSection:(NSInteger)section SWIFT_WARN_UNUSED_RESULT;
|
||||
- (UITableViewCell * _Nonnull)tableView:(UITableView * _Nonnull)tableView cellForRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath SWIFT_WARN_UNUSED_RESULT;
|
||||
- (CGFloat)tableView:(UITableView * _Nonnull)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath SWIFT_WARN_UNUSED_RESULT;
|
||||
- (nonnull instancetype)initWithStyle:(UITableViewStyle)style OBJC_DESIGNATED_INITIALIZER;
|
||||
- (nonnull instancetype)initWithNibName:(NSString * _Nullable)nibNameOrNil bundle:(NSBundle * _Nullable)nibBundleOrNil OBJC_DESIGNATED_INITIALIZER;
|
||||
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
|
||||
@end
|
||||
|
||||
SWIFT_MODULE_NAMESPACE_POP
|
||||
#pragma clang diagnostic pop
|
||||
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
+4
@@ -0,0 +1,4 @@
|
||||
framework module OpenSourceController {
|
||||
header "OpenSourceController-Swift.h"
|
||||
requires objc
|
||||
}
|
||||
Generated
Vendored
Executable
BIN
Binary file not shown.
@@ -19,6 +19,7 @@
|
||||
76EAA8911E93F67B009A41DA /* Array+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA8901E93F67B009A41DA /* Array+Extensions.swift */; };
|
||||
76EAA8941E93F681009A41DA /* OpenSourceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA8921E93F681009A41DA /* OpenSourceController.swift */; };
|
||||
76EAA8951E93F681009A41DA /* OpenSourceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA8931E93F681009A41DA /* OpenSourceViewController.swift */; };
|
||||
C33E4D96204442AC00142EE6 /* CHANGELOG.md in Resources */ = {isa = PBXBuildFile; fileRef = C33E4D95204442AC00142EE6 /* CHANGELOG.md */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
@@ -36,6 +37,7 @@
|
||||
76EAA8901E93F67B009A41DA /* Array+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Array+Extensions.swift"; path = "../../Sources/Extensions/Array+Extensions.swift"; sourceTree = "<group>"; };
|
||||
76EAA8921E93F681009A41DA /* OpenSourceController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceController.swift; path = ../../Sources/Controller/OpenSourceController.swift; sourceTree = "<group>"; };
|
||||
76EAA8931E93F681009A41DA /* OpenSourceViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceViewController.swift; path = ../../Sources/Controller/OpenSourceViewController.swift; sourceTree = "<group>"; };
|
||||
C33E4D95204442AC00142EE6 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = CHANGELOG.md; path = ../CHANGELOG.md; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -52,6 +54,7 @@
|
||||
76EAA8581E93F2CC009A41DA = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C33E4D95204442AC00142EE6 /* CHANGELOG.md */,
|
||||
76EAA8631E93F2CC009A41DA /* OpenSourceControllerDemo */,
|
||||
76EAA8621E93F2CC009A41DA /* Products */,
|
||||
);
|
||||
@@ -157,6 +160,7 @@
|
||||
76EAA86F1E93F2CC009A41DA /* LaunchScreen.storyboard in Resources */,
|
||||
76EAA86C1E93F2CC009A41DA /* Assets.xcassets in Resources */,
|
||||
76EAA86A1E93F2CC009A41DA /* Main.storyboard in Resources */,
|
||||
C33E4D96204442AC00142EE6 /* CHANGELOG.md in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
||||
BIN
Binary file not shown.
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13173"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
@@ -37,10 +37,11 @@
|
||||
<constraint firstItem="LI4-fC-2Ry" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="wVV-oT-zRH"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" id="0ga-4U-IeA"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="136.80000000000001" y="138.98050974512745"/>
|
||||
<point key="canvasLocation" x="815.20000000000005" y="138.98050974512745"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
||||
|
||||
@@ -14,14 +14,8 @@ class ViewController: UIViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
// Do any additional setup after loading the view, typically from a nib
|
||||
}
|
||||
|
||||
override func didReceiveMemoryWarning() {
|
||||
super.didReceiveMemoryWarning()
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
|
||||
// MARK: - Action
|
||||
|
||||
/// Handle button click & show the controller with licences
|
||||
@@ -52,7 +46,7 @@ class ViewController: UIViewController {
|
||||
openSourceVC.presentOpenSourceController(from: self)
|
||||
}
|
||||
|
||||
// Customization
|
||||
// MARK: - Customization
|
||||
|
||||
fileprivate func controllerCustomUI(openSourceVC: OpenSourceController) {
|
||||
// Navigation bar title
|
||||
|
||||
Binary file not shown.
@@ -1,12 +1,12 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'OpenSourceController'
|
||||
s.version = '2.0'
|
||||
s.version = '2.1.2'
|
||||
s.summary = 'Display all the librarys licence used in your application. Enjoy !'
|
||||
s.description = 'Display a screen with all licence used in your apply can be painful to maintain. OpenSourceController was built to respond to this problem. OpenSourceController is a simple parser to display the licences which are used in your application.'
|
||||
s.homepage = 'https://github.com/terflogag/OpenSourceController'
|
||||
s.homepage = 'https://github.com/floriangbh/OpenSourceController'
|
||||
s.license = { :type => 'MIT', :file => 'LICENSE' }
|
||||
s.author = { 'Florian Gabach' => 'contact@floriangabach.fr' }
|
||||
s.source = { :git => 'https://github.com/terflogag/OpenSourceController.git', :tag => s.version.to_s }
|
||||
s.author = { 'Florian Gabach' => 'florian.gabach@gmail.com' }
|
||||
s.source = { :git => 'https://github.com/floriangbh/OpenSourceController.git', :tag => s.version.to_s }
|
||||
s.ios.deployment_target = '9.0'
|
||||
s.source_files = 'Sources/**/*'
|
||||
end
|
||||
|
||||
@@ -405,7 +405,7 @@
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Configs/OpenSourceController.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.OpenSourceController.OpenSourceController-iOS";
|
||||
@@ -428,7 +428,7 @@
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Configs/OpenSourceController.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.OpenSourceController.OpenSourceController-iOS";
|
||||
PRODUCT_NAME = OpenSourceController;
|
||||
|
||||
+1
-4
@@ -1,8 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
</dict>
|
||||
<dict/>
|
||||
</plist>
|
||||
|
||||
BIN
Binary file not shown.
@@ -81,6 +81,9 @@ url: "https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/d
|
||||
|
||||
// Present controller
|
||||
openSourceVC.presentOpenSourceController(from: self)
|
||||
|
||||
// OR push the controller if the source controller is embeded in navigation controller
|
||||
openSourceVC.pushOpenSourceController(from: self)
|
||||
```
|
||||
|
||||
## Customisation
|
||||
@@ -121,14 +124,6 @@ OpenSourceController is currently write in english. If you need translation for
|
||||
"Unable to load this licence." = "<your_translation>";
|
||||
```
|
||||
|
||||
## Applications
|
||||
|
||||
Some applications already use this controller like :
|
||||
- [Troll Generator](https://itunes.apple.com/fr/app/troll-generator/id1038097542?mt=8)
|
||||
- [Giraf](https://itunes.apple.com/fr/app/giraf/id1136592561?mt=8)
|
||||
|
||||
What about yours ? If your application also use this library, feel free to contact me or make pull request on the README 😁
|
||||
|
||||
## Author
|
||||
|
||||
Florian Gabach, florian.gabach@gmail.com
|
||||
|
||||
@@ -33,4 +33,26 @@ public class OpenSourceController: NSObject {
|
||||
// Present controller
|
||||
from.present(navController, animated: true)
|
||||
}
|
||||
|
||||
/// Push OpenSourceViewController from navigation controller
|
||||
///
|
||||
/// - Parameter from: the source controller
|
||||
open func pushOpenSourceController(from: UIViewController) {
|
||||
// Create open source controller
|
||||
let licenceController = OpenSourceViewController()
|
||||
licenceController.showCloseButton = false // Don't show close button
|
||||
|
||||
// Init licence
|
||||
licenceController.licences = self.licences
|
||||
|
||||
// Init config
|
||||
licenceController.config = self.config
|
||||
|
||||
// Push controller
|
||||
guard let navigationController = from.navigationController else {
|
||||
print("Source controller isn't embeded in navigation controller. Can't push.")
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(licenceController, animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,9 +29,12 @@ class OpenSourceViewController: UITableViewController {
|
||||
/// Contains all licence object before downloaded
|
||||
internal var licences: [LicenceFile]?
|
||||
|
||||
// Controller configuration for customization
|
||||
/// Controller configuration for customization
|
||||
internal var config = OpenSourceControllerConfig()
|
||||
|
||||
/// Do we need to show the close button ? (disable if push the controller)
|
||||
internal var showCloseButton: Bool = true
|
||||
|
||||
/// Contains all licences object after downloaded
|
||||
fileprivate var downloadedLicence: [LicenceFile]? {
|
||||
didSet {
|
||||
@@ -58,7 +61,11 @@ class OpenSourceViewController: UITableViewController {
|
||||
fileprivate func prepare() {
|
||||
self.prepareTableView()
|
||||
self.prepareActivityIndicator()
|
||||
self.prepareCloseButton()
|
||||
|
||||
if showCloseButton {
|
||||
self.prepareCloseButton()
|
||||
}
|
||||
|
||||
self.prepareStyle()
|
||||
self.prepareLicences()
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
import Foundation
|
||||
|
||||
extension Array {
|
||||
|
||||
/// Get an index safely
|
||||
func get(at index: Int) -> Element? {
|
||||
guard index >= 0
|
||||
|
||||
@@ -16,22 +16,20 @@ class LicenceDownloader: NSObject {
|
||||
class func downloadLicences(licences: [LicenceFile],
|
||||
config: OpenSourceControllerConfig,
|
||||
completion: @escaping () -> Void) {
|
||||
// Number of licences
|
||||
let licenceCount = licences.count
|
||||
|
||||
// Already licence downloaded
|
||||
var alreadyDownloaded = 0
|
||||
let licenceGroupe = DispatchGroup()
|
||||
|
||||
// Download licence's detail for every lience
|
||||
for licence in licences {
|
||||
licenceGroupe.enter()
|
||||
|
||||
licence.downloadLicenceDetail(config: config, completion: { () in
|
||||
alreadyDownloaded += 1
|
||||
|
||||
// If this is the last licence, perfom completion
|
||||
if licenceCount == alreadyDownloaded {
|
||||
completion()
|
||||
}
|
||||
licenceGroupe.leave()
|
||||
})
|
||||
}
|
||||
|
||||
// When everything is downloaded
|
||||
licenceGroupe.notify(queue: .main) {
|
||||
completion()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,14 +22,6 @@ class OpenSourceTableViewCell: UITableViewCell {
|
||||
super.init(coder: aDecoder)
|
||||
}
|
||||
|
||||
override func setSelected(_ selected: Bool, animated: Bool) {
|
||||
super.setSelected(selected, animated: animated)
|
||||
}
|
||||
|
||||
override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
}
|
||||
|
||||
// MARK: - Prepare
|
||||
|
||||
func prepareCellComponent() {
|
||||
|
||||
Reference in New Issue
Block a user