From ab2fbea8db371f33a32041faa20c12660355ceed Mon Sep 17 00:00:00 2001 From: Chris Li Date: Fri, 20 Jan 2017 10:50:14 -0500 Subject: [PATCH] About --- .../Setting/SettingController.swift | 5 ++ .../Setting/StaticWebController.swift | 48 +++++++++++++++++++ Kiwix-iOS/Storyboard/Setting.storyboard | 33 +++++++++++++ Kiwix.xcodeproj/project.pbxproj | 4 ++ Kiwix/HelpDocuments/About.html | 11 +---- 5 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 Kiwix-iOS/Controller/Setting/StaticWebController.swift diff --git a/Kiwix-iOS/Controller/Setting/SettingController.swift b/Kiwix-iOS/Controller/Setting/SettingController.swift index bcd54cec..301e7d42 100644 --- a/Kiwix-iOS/Controller/Setting/SettingController.swift +++ b/Kiwix-iOS/Controller/Setting/SettingController.swift @@ -55,6 +55,11 @@ class SettingController: UITableViewController { } case Localized.Setting.rateApp: UIQueue.shared.add(operation: AlertProcedure.rateKiwix(context: self, userInitiated: true)) + case Localized.Setting.about: + let controller = UIStoryboard(name: "Setting", bundle: nil).instantiateViewController(withIdentifier: "StaticWebController") as! StaticWebController + controller.title = Localized.Setting.about + controller.load(htmlFileName: "About") + navigationController?.pushViewController(controller, animated: true) default: return } diff --git a/Kiwix-iOS/Controller/Setting/StaticWebController.swift b/Kiwix-iOS/Controller/Setting/StaticWebController.swift new file mode 100644 index 00000000..363561c5 --- /dev/null +++ b/Kiwix-iOS/Controller/Setting/StaticWebController.swift @@ -0,0 +1,48 @@ +// +// StaticWebController.swift +// Kiwix +// +// Created by Chris Li on 1/20/17. +// Copyright © 2017 Chris Li. All rights reserved. +// + +import UIKit +import SafariServices + +class StaticWebController: UIViewController, UIWebViewDelegate, SFSafariViewControllerDelegate { + + @IBOutlet weak var webView: UIWebView! + private var url: URL? + + override func viewDidLoad() { + super.viewDidLoad() + webView.delegate = self + + guard let url = url, webView.request?.url != url else {return} + webView.loadRequest(URLRequest(url: url)) + } + + func load(htmlFileName: String) { + url = Bundle.main.url(forResource: htmlFileName, withExtension: "html") + guard let url = url, webView != nil, webView.request?.url != url else {return} + webView.loadRequest(URLRequest(url: url)) + } + + func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { + guard let url = request.url else {return false} + if url == self.url { + return true + } else { + let controller = SFSafariViewController(url: url) + controller.delegate = self + present(controller, animated: true, completion: nil) + return false + } + } + + func safariViewControllerDidFinish(_ controller: SFSafariViewController) { + controller.dismiss(animated: true, completion: nil) + } + + +} diff --git a/Kiwix-iOS/Storyboard/Setting.storyboard b/Kiwix-iOS/Storyboard/Setting.storyboard index 0b01067b..964966d9 100644 --- a/Kiwix-iOS/Storyboard/Setting.storyboard +++ b/Kiwix-iOS/Storyboard/Setting.storyboard @@ -53,6 +53,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj index 3d93d8c7..70beddfd 100644 --- a/Kiwix.xcodeproj/project.pbxproj +++ b/Kiwix.xcodeproj/project.pbxproj @@ -70,6 +70,7 @@ 976C1DD01E3000B6005EDEC4 /* Setting.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 976C1DCF1E3000B6005EDEC4 /* Setting.storyboard */; }; 976C1DD21E3000F1005EDEC4 /* SettingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976C1DD11E3000F1005EDEC4 /* SettingController.swift */; }; 976C1DD41E300695005EDEC4 /* UIProcedure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976C1DD31E300695005EDEC4 /* UIProcedure.swift */; }; + 976C1DD61E32628B005EDEC4 /* StaticWebController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976C1DD51E32628B005EDEC4 /* StaticWebController.swift */; }; 9771A5BD1DD269BD005F1795 /* Book+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97D6813C1D6F712800E5FA99 /* Book+CoreDataProperties.swift */; }; 9779C3141D4575AD0064CC8E /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97E609F01D103DED00EBCB9D /* NotificationCenter.framework */; }; 9779C3171D4575AE0064CC8E /* TodayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779C3161D4575AE0064CC8E /* TodayViewController.swift */; }; @@ -230,6 +231,7 @@ 976C1DCF1E3000B6005EDEC4 /* Setting.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Setting.storyboard; sourceTree = ""; }; 976C1DD11E3000F1005EDEC4 /* SettingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingController.swift; sourceTree = ""; }; 976C1DD31E300695005EDEC4 /* UIProcedure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIProcedure.swift; sourceTree = ""; }; + 976C1DD51E32628B005EDEC4 /* StaticWebController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StaticWebController.swift; sourceTree = ""; }; 9779C3131D4575AD0064CC8E /* Bookmarks.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Bookmarks.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 9779C3161D4575AE0064CC8E /* TodayViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayViewController.swift; sourceTree = ""; }; 9779C31B1D4575AE0064CC8E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -585,6 +587,7 @@ isa = PBXGroup; children = ( 976C1DD11E3000F1005EDEC4 /* SettingController.swift */, + 976C1DD51E32628B005EDEC4 /* StaticWebController.swift */, ); path = Setting; sourceTree = ""; @@ -1122,6 +1125,7 @@ 976C1DCB1E2FD5FC005EDEC4 /* TableOfContentsController.swift in Sources */, 9771A5BD1DD269BD005F1795 /* Book+CoreDataProperties.swift in Sources */, 9764CBD11D806AD800072D6A /* RefreshLibControl.swift in Sources */, + 976C1DD61E32628B005EDEC4 /* StaticWebController.swift in Sources */, 97C601DE1D7F342100362D4F /* HTMLHeading.swift in Sources */, 975B90FE1CEB909100D13906 /* iOSExtensions.swift in Sources */, 971A10521D022D9D007FC62C /* AppDelegate.swift in Sources */, diff --git a/Kiwix/HelpDocuments/About.html b/Kiwix/HelpDocuments/About.html index f9df7b9e..fe74d7cd 100644 --- a/Kiwix/HelpDocuments/About.html +++ b/Kiwix/HelpDocuments/About.html @@ -164,11 +164,7 @@ sup {

Release

This software is released under the terms of the GNU General Public License version 3.
-View the source code on Github.

- -

Developer

- -

Chris: Send Email

+View the source code on Github.

Libraries

@@ -178,8 +174,5 @@ View the source code on Github Icon made by Freepik from www.flaticon.com  -

Contact

- -

Contact Kiwix: Send Email

- \ No newline at end of file +