Compare commits

...
6 Commits
Author SHA1 Message Date
Florian Gabach 29ce192b5c Fix Carthage 2017-12-08 15:47:00 +01:00
Florian Gabach 6974e707dc Bump pod version 2017-12-08 15:02:03 +01:00
Florian Gabach b93d2f0d2a Bump to 2.0.1 2017-12-08 12:20:41 +01:00
Florian Gabach 2127942e5f Bump build system 2017-12-07 17:42:05 +01:00
Florian Gabach fd1107d42e Update README.md 2017-12-07 10:41:04 +01:00
Florian Gabach 1487636084 Update README.md 2017-11-22 21:09:29 +01:00
31 changed files with 1517 additions and 67 deletions
+4
View File
@@ -1,6 +1,10 @@
Changelog
==========
### 2.0.1
- Clean code and move loader position
### 2.0
- Swift 4 version
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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>
@@ -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
Binary file not shown.
@@ -0,0 +1,4 @@
framework module OpenSourceController {
header "OpenSourceController-Swift.h"
requires objc
}
Binary file not shown.
@@ -0,0 +1,8 @@
<?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>
</plist>
@@ -0,0 +1,18 @@
<?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>BuildLocationStyle</key>
<string>UseAppPreferences</string>
<key>CustomBuildLocationType</key>
<string>RelativeToDerivedData</string>
<key>DerivedDataLocationStyle</key>
<string>Default</string>
<key>EnabledFullIndexStoreVisibility</key>
<false/>
<key>IssueFilterStyle</key>
<string>ShowActiveSchemeOnly</string>
<key>LiveSourceIssuesEnabled</key>
<true/>
</dict>
</plist>
@@ -0,0 +1,14 @@
<?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>SchemeUserState</key>
<dict>
<key>OpenSourceControllerDemo.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>
@@ -103,8 +103,9 @@
"scale" : "2x"
},
{
"idiom" : "ios-marketing",
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "logo 7-3.png",
"scale" : "1x"
}
],
Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

+1 -1
View File
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'OpenSourceController'
s.version = '2.0'
s.version = '2.0.1'
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'
@@ -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;
@@ -0,0 +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/>
</plist>
@@ -0,0 +1,18 @@
<?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>BuildLocationStyle</key>
<string>UseAppPreferences</string>
<key>CustomBuildLocationType</key>
<string>RelativeToDerivedData</string>
<key>DerivedDataLocationStyle</key>
<string>Default</string>
<key>EnabledFullIndexStoreVisibility</key>
<false/>
<key>IssueFilterStyle</key>
<string>ShowActiveSchemeOnly</string>
<key>LiveSourceIssuesEnabled</key>
<true/>
</dict>
</plist>
+3 -3
View File
@@ -54,9 +54,9 @@ pod "OpenSourceController", '~> 1.0.8' # Swift 3.1 version
- To integrate OpenSourceController into your Xcode project using [Carthage](https://github.com/Carthage/Carthage), specify it in your Cartfile :
```ruby
github "terflogag/OpenSourceController" ~> 2.0
github "floriangbh/OpenSourceController" ~> 2.0
github "terflogag/OpenSourceController" ~> 1.0.8 # Swift 3.1 version
github "floriangbh/OpenSourceController" ~> 1.0.8 # Swift 3.1 version
```
## Usage
@@ -131,7 +131,7 @@ What about yours ? If your application also use this library, feel free to cont
## Author
Florian Gabach, contact@floriangabach.fr
Florian Gabach, florian.gabach@gmail.com
## License
@@ -7,21 +7,31 @@
import UIKit
class OpenSourceViewController: UITableViewController {
// MARK: - Var
/// Loading indicator
fileprivate var indicator = UIActivityIndicatorView()
fileprivate lazy var indicator: UIActivityIndicatorView = {
let indicator = UIActivityIndicatorView(frame:CGRect(x: 0,
y: 0,
width: 40,
height: 40) )
indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
indicator.hidesWhenStopped = true
indicator.backgroundColor = UIColor.clear
indicator.color = UIColor.black
return indicator
}()
/// TableViewCell identifier
private let reuseIdentifier = "openSourceCell"
/// Contains all licence object before downloaded
internal var licences: [LicenceFile]?
// Controller configuration for customization
internal var config = OpenSourceControllerConfig()
/// Contains all licences object after downloaded
fileprivate var downloadedLicence: [LicenceFile]? {
didSet {
@@ -32,37 +42,45 @@ class OpenSourceViewController: UITableViewController {
}
}
}
// MARK: - Lifecyle
override func viewDidLoad() {
super.viewDidLoad()
// Prepare tableview
// Prepare controller
self.prepare()
}
// MARK: - Prepare
/// Prepare controller
fileprivate func prepare() {
self.prepareTableView()
// Download licences
self.prepareActivityIndicator()
self.prepareCloseButton()
self.prepareStyle()
self.prepareLicences()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// MARK: - Prepare
/// Download licences
fileprivate func prepareLicences() {
if let licences = self.licences {
self.startLoading()
LicenceDownloader.downloadLicences(licences: licences,
config: self.config) { () in
// Update licences
self.downloadedLicence = self.licences
}
self.startLoading()
// Retrieve licence
guard let licences = self.licences else {
print("No licences found.")
return
}
// Download licence
LicenceDownloader.downloadLicences(licences: licences,
config: self.config) { () in
// Update licences
self.downloadedLicence = self.licences
}
}
/// Init tableView dataSource, delegate, bar button & title
fileprivate func prepareTableView() {
// Common init
@@ -74,46 +92,51 @@ class OpenSourceViewController: UITableViewController {
self.tableView.dataSource = self
self.tableView.delegate = self
self.tableView.separatorStyle = .singleLine
// Apply background color from configuration if needed
if let backgroundColor = self.config.uiConfig.backgroundColor {
self.tableView.backgroundColor = backgroundColor
}
// Navigation bar
}
/// Prepare controller style
fileprivate func prepareStyle() {
// Apply navigation bar tint color if needed
if let tintColor = self.config.uiConfig.barTintColor {
self.navigationController?.navigationBar.barTintColor = tintColor
}
// Applu navigation bar text color if needed
if let textColor = self.config.uiConfig.titleColor {
let attribut = [NSAttributedStringKey.foregroundColor: textColor]
let attribut = [NSAttributedStringKey.foregroundColor: textColor]
self.navigationController?.navigationBar.titleTextAttributes = attribut
}
}
/// Prepare close button on navigation bar
fileprivate func prepareCloseButton() {
// Close button (on the right corner of navigation bar)
let closeButton = UIBarButtonItem(barButtonSystemItem: .stop,
target: self,
action: #selector(self.closePicker))
closeButton.tintColor = config.uiConfig.closeButtonColor ?? UIColor.black
self.navigationItem.rightBarButtonItem = closeButton
// Loading indicator
self.prepareActivityIndicator()
}
// MARK: - Loading indicator
/// Prepare UIActivityIndicatorView and display it at the center of the view
fileprivate func prepareActivityIndicator() {
self.indicator = UIActivityIndicatorView(frame:CGRect(x: 0,
y: 0,
width: 40,
height: 40) )
self.indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
self.indicator.center = self.view.center
self.indicator.hidesWhenStopped = true
self.indicator.backgroundColor = UIColor.clear
self.indicator.color = UIColor.black
// Add to view
self.view.addSubview(indicator)
// Apply constraint
self.indicator.translatesAutoresizingMaskIntoConstraints = false
self.indicator.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
let topConstraint = self.navigationController?.navigationBar.frame.size.height ?? 0.0
self.indicator.bottomAnchor.constraint(equalTo: view.topAnchor, constant: topConstraint).isActive=true
}
/// Start loading : start the loader animation
fileprivate func startLoading() {
self.indicator.startAnimating()
@@ -122,7 +145,7 @@ class OpenSourceViewController: UITableViewController {
// Disable scroll
self.tableView.isScrollEnabled = false
}
/// Stop loading : stop and hide the loader
fileprivate func stopLoading() {
self.indicator.stopAnimating()
@@ -131,17 +154,17 @@ class OpenSourceViewController: UITableViewController {
// Enable scroll
self.tableView.isScrollEnabled = true
}
// MARK: - Table View Data Source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.downloadedLicence?.count ?? 0
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: self.reuseIdentifier,
for: indexPath) as? OpenSourceTableViewCell
@@ -150,29 +173,29 @@ class OpenSourceViewController: UITableViewController {
cell = OpenSourceTableViewCell(style: UITableViewCellStyle.default,
reuseIdentifier: self.reuseIdentifier)
}
// Configure the cell with licence
if let licence = self.downloadedLicence?.get(at: indexPath.row) {
cell?.configure(licence: licence, config: self.config)
}
return cell!
}
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
// Automatic dimension
return UITableViewAutomaticDimension
}
// MARK: - Action
/// Handler for click on close button
@objc fileprivate func closePicker() {
self.dismissController()
}
// MARK: - Navigation
/// Dismiss the OpenSourceController
func dismissController() {
DispatchQueue.main.async { [weak self] in
@@ -33,7 +33,7 @@ public struct OpenSourceControllerConfig {
/// Will be applied to the navigation bar title
public var title: String = "Tiers library"
// Verbose mode for print log when licence are downloaded
/// Verbose mode for print log when licence are downloaded
public var verbose: Bool = false
/// UI-specific configuration.