From e6fcda22fc98df253560d91da07bbe65d86225b3 Mon Sep 17 00:00:00 2001 From: Doron Katz Date: Tue, 28 Jan 2020 10:39:04 -0800 Subject: [PATCH] Added SwiftUI support --- .../project.pbxproj | 8 ++++- OpenSourceViewController+UISwift.swift | 34 +++++++++++++++++++ Sources/OpenSourceController.swift | 4 +++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 OpenSourceViewController+UISwift.swift diff --git a/OpenSourceController.xcodeproj/project.pbxproj b/OpenSourceController.xcodeproj/project.pbxproj index 27661a5..698aa19 100644 --- a/OpenSourceController.xcodeproj/project.pbxproj +++ b/OpenSourceController.xcodeproj/project.pbxproj @@ -23,6 +23,8 @@ 76D7F24821BEB18A004B74CB /* Array+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D7F24321BEB18A004B74CB /* Array+Extensions.swift */; }; 76D7F24921BEB18A004B74CB /* UIView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D7F24421BEB18A004B74CB /* UIView+Extensions.swift */; }; 76EAA84F1E93EDCD009A41DA /* LicenceFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA84C1E93EDCD009A41DA /* LicenceFile.swift */; }; + C415E47723E0B3AE002F960D /* OpenSourceViewController+UISwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = C415E47623E0B3AE002F960D /* OpenSourceViewController+UISwift.swift */; }; + C415E47823E0B3AE002F960D /* OpenSourceViewController+UISwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = C415E47623E0B3AE002F960D /* OpenSourceViewController+UISwift.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,6 +57,7 @@ 76EAA84C1E93EDCD009A41DA /* LicenceFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LicenceFile.swift; path = Sources/Model/LicenceFile.swift; sourceTree = ""; }; AD2FAA261CD0B6D800659CF4 /* OpenSourceController.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = OpenSourceController.plist; sourceTree = ""; }; AD2FAA281CD0B6E100659CF4 /* OpenSourceControllerTests.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = OpenSourceControllerTests.plist; sourceTree = ""; }; + C415E47623E0B3AE002F960D /* OpenSourceViewController+UISwift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OpenSourceViewController+UISwift.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -137,6 +140,7 @@ isa = PBXGroup; children = ( 76229B7F2180ADA800A61697 /* OpenSourceController.swift */, + C415E47623E0B3AE002F960D /* OpenSourceViewController+UISwift.swift */, 76229B7E2180ADA800A61697 /* OpenSourceControllerConfig.swift */, 76229B7B2180AD8E00A61697 /* Loader */, 76229B702180AD7700A61697 /* Model */, @@ -241,7 +245,7 @@ 52D6D9851BEFF229002C0205 = { CreatedOnToolsVersion = 7.1; DevelopmentTeam = XEHEC9B46E; - LastSwiftMigration = ""; + LastSwiftMigration = 1130; }; }; }; @@ -295,6 +299,7 @@ 76D7F24721BEB18A004B74CB /* UIViewController+Extensions.swift in Sources */, 76EAA84F1E93EDCD009A41DA /* LicenceFile.swift in Sources */, 76D7F24521BEB18A004B74CB /* UITableView+Extensions.swift in Sources */, + C415E47723E0B3AE002F960D /* OpenSourceViewController+UISwift.swift in Sources */, 769FD9D421871DEC00FB5A53 /* OpenSourceTableViewCell.swift in Sources */, 76D7F24821BEB18A004B74CB /* Array+Extensions.swift in Sources */, 76229B812180ADA800A61697 /* OpenSourceController.swift in Sources */, @@ -308,6 +313,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C415E47823E0B3AE002F960D /* OpenSourceViewController+UISwift.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/OpenSourceViewController+UISwift.swift b/OpenSourceViewController+UISwift.swift new file mode 100644 index 0000000..cbf3ec5 --- /dev/null +++ b/OpenSourceViewController+UISwift.swift @@ -0,0 +1,34 @@ +// +// OpenSourceViewController+UISwift.swift +// OpenSourceController +// +// Created by Doron Katz on 1/28/20. +// Copyright © 2020 OpenSourceController. All rights reserved. +// + +#if canImport(SwiftUI) +import SwiftUI +#endif + +extension OpenSourceViewController{ + public struct OpenSourceView: UIViewControllerRepresentable { + + @available(iOS 13, *) + public func updateUIViewController(_ uiViewController: OpenSourceViewController, context: UIViewControllerRepresentableContext) { + // + } + + @available(iOS 13, *) + public func makeUIViewController(context: UIViewControllerRepresentableContext) -> OpenSourceViewController { + let openSourceVC = OpenSourceViewController(licences: + [LicenceFile(title: "MovieSwiftUI", + url: "https://raw.githubusercontent.com/Dimillian/MovieSwiftUI/master/LICENSE"), + ], + showCloseButton: true, + configuration: OpenSourceControllerConfig(), + licenceLoader: LicenceLoader()) + return openSourceVC + } + } +} + diff --git a/Sources/OpenSourceController.swift b/Sources/OpenSourceController.swift index 4084352..a355e7a 100644 --- a/Sources/OpenSourceController.swift +++ b/Sources/OpenSourceController.swift @@ -5,6 +5,9 @@ // Created by Florian Gabach on 05/02/2017. import UIKit +#if canImport(SwiftUI) +import SwiftUI +#endif open class OpenSourceController: NSObject { @@ -43,3 +46,4 @@ open class OpenSourceController: NSObject { navigationController.pushViewController(licenceController, animated: true) } } +