First Time Use Alert

This commit is contained in:
automactic 2016-05-05 16:10:39 -04:00
parent 60e8deb1a9
commit d282238f35
5 changed files with 1543 additions and 4994 deletions

File diff suppressed because it is too large Load Diff

View File

@ -110,10 +110,8 @@ class LibraryLocalTBVC: UITableViewController, NSFetchedResultsControllerDelegat
}
func emptyDataSetDidTapButton(scrollView: UIScrollView!) {
guard let navController = UIStoryboard.setting.instantiateViewControllerWithIdentifier("WebViewNav") as? UINavigationController,
let controller = navController.topViewController as? WebViewVC else {return}
controller.page = .ImportBookLearnMore
presentViewController(navController, animated: true, completion: nil)
let operation = ShowHelpPageOperation(type: .ImportBookLearnMore, presentationContext: self)
UIApplication.appDelegate.globalOperationQueue.addOperation(operation)
}
// MARK: - TableView Data Source

View File

@ -7,6 +7,7 @@
//
import UIKit
import SCLAlertView
class MainVC: UIViewController {
@ -38,6 +39,7 @@ class MainVC: UIViewController {
NSUserDefaults.standardUserDefaults().addObserver(self, forKeyPath: "webViewNotInjectJavascriptToAdjustPageLayout", options: .New, context: context)
NSUserDefaults.standardUserDefaults().addObserver(self, forKeyPath: "webViewZoomScale", options: .New, context: context)
configureButtonColor()
showGetStartedAlert()
}
deinit {
@ -63,6 +65,15 @@ class MainVC: UIViewController {
configureUIElements(self.traitCollection)
}
// MARK: - First Time Launch Alert
func showGetStartedAlert() {
guard !Preference.hasShowGetStartedAlert else {return}
let operation = GetStartedAlert(mainController: self)
UIApplication.appDelegate.globalOperationQueue.addOperation(operation)
Preference.hasShowGetStartedAlert = true
}
// MARK: - Configure
func configureUIElements(traitCollection: UITraitCollection) {
@ -85,7 +96,6 @@ class MainVC: UIViewController {
break
}
configureWebViewInsets()
}
func configureButtonColor() {
@ -126,10 +136,6 @@ class MainVC: UIViewController {
}
}
func configureSearchBarCancelButton() {
}
// MARK: - UIViewAnimations
func animateInSearchResultController() {

View File

@ -1,5 +1,5 @@
//
// AlertOperations.swift
// UIOperations.swift
// Kiwix
//
// Created by Chris Li on 3/22/16.
@ -8,6 +8,8 @@
import UIKit
// MARK: - Alerts
class SpaceCautionAlert: AlertOperation {
init(book: Book, presentationContext: UIViewController?) {
super.init(presentationContext: presentationContext)
@ -103,3 +105,43 @@ class RefreshLibraryInternetRequiredAlert: AlertOperation {
addAction(LocalizedStrings.ok)
}
}
class GetStartedAlert: AlertOperation {
init(mainController: MainVC?) {
super.init(presentationContext: mainController)
let comment = "First Time Launch Message"
title = NSLocalizedString("Welcome to Kiwix", comment: comment)
message = NSLocalizedString("Add a Book to Get Started", comment: comment)
addAction(NSLocalizedString("Download", comment: comment), style: .Default) { (alert) in
mainController?.showLibraryButtonTapped()
}
addAction(NSLocalizedString("Import", comment: comment), style: .Default) { (alert) in
let operation = ShowHelpPageOperation(type: .ImportBookLearnMore, presentationContext: mainController)
UIApplication.appDelegate.globalOperationQueue.addOperation(operation)
}
addAction(NSLocalizedString("Dismiss", comment: comment))
}
}
// MARK: - Help Pages
class ShowHelpPageOperation: Operation {
private let type: WebViewVCContentType
private weak var presentationContext: UIViewController?
init(type: WebViewVCContentType, presentationContext: UIViewController?) {
self.type = type
self.presentationContext = presentationContext
}
override func execute() {
NSOperationQueue.mainQueue().addOperationWithBlock {
guard let navController = UIStoryboard.setting.instantiateViewControllerWithIdentifier("WebViewNav") as? UINavigationController,
let controller = navController.topViewController as? WebViewVC else {return}
controller.page = self.type
self.presentationContext?.presentViewController(navController, animated: true, completion: nil)
}
}
}

View File

@ -12,7 +12,7 @@ class WebViewVC: UIViewController, UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
var page: WebViewVCHTML?
var page: WebViewVCContentType?
override func viewDidLoad() {
super.viewDidLoad()
@ -46,6 +46,6 @@ class WebViewVC: UIViewController, UIWebViewDelegate {
}
}
enum WebViewVCHTML: String {
enum WebViewVCContentType: String {
case DownloaderLearnMore, ImportBookLearnMore
}