--- /dev/null
+//
+// SettingsViewController.swift
+// WolneLektury
+//
+// Created by Pawel Dabrowski on 17/09/2018.
+// Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved.
+//
+
+import UIKit
+import UserNotifications
+class SettingsViewController: MainViewController {
+
+ @IBOutlet weak var notificationsLabel: UILabel!
+ @IBOutlet weak var notificationsSwitch: UISwitch!
+ @IBOutlet weak var subscriptionLabel: UILabel!
+ @IBOutlet weak var subscriptionStatusLabel: UILabel!
+ @IBOutlet weak var deleteFilesLabel: UILabel!
+ @IBOutlet weak var deleteFilesButton: UIButton!
+ @IBOutlet weak var becomeFriendButton: UIButton!
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ title = "nav_settings".localized
+ notificationsLabel.text = "settings_notifications".localized.uppercased()
+ subscriptionLabel.text = "subscribtion_state".localized.uppercased()
+ deleteFilesLabel.text = "delete_files".localized.uppercased()
+ deleteFilesButton.text = "delete".localized.uppercased()
+ deleteFilesButton.layer.cornerRadius = 15
+ deleteFilesButton.layer.borderColor = UIColor.white.cgColor
+ deleteFilesButton.layer.borderWidth = 1.0
+ deleteFilesButton.backgroundColor = Constants.Colors.navbarBgColor()
+
+ let userIsPremium = DatabaseManager.shared.isUserPremium()
+ subscriptionStatusLabel.text = userIsPremium ? "active".localized.uppercased() : "inactive".localized.uppercased()
+
+ var becomeFriendButtonHidden = DatabaseManager.shared.isUserPremium()
+ if Constants.donateEnabled == false {
+ becomeFriendButtonHidden = true
+ }
+
+ becomeFriendButton.isHidden = becomeFriendButtonHidden
+ becomeFriendButton.layer.cornerRadius = 18
+ }
+
+ override func viewWillAppear(_ animated: Bool) {
+ super.viewWillAppear(animated)
+ updateNotificationsSwitchValue()
+ }
+
+ func updateNotificationsSwitchValue() {
+ if #available(iOS 10.0, *) {
+ let current = UNUserNotificationCenter.current()
+ current.getNotificationSettings(completionHandler: { [weak self] settings in
+ DispatchQueue.main.async {
+ switch settings.authorizationStatus {
+ case .notDetermined:
+ self?.notificationsSwitch.setOn(false, animated: true)
+ // Authorization request has not been made yet
+ case .denied:
+ self?.notificationsSwitch.setOn(false, animated: true)
+ // User has denied authorization.
+ // You could tell them to change this in Settings
+ case .authorized:
+ self?.notificationsSwitch.setOn(true, animated: true)
+ }
+ }
+
+ })
+ } else {
+ // Fallback on earlier versions
+ if UIApplication.shared.isRegisteredForRemoteNotifications {
+ notificationsSwitch.setOn(true, animated: true)
+ } else {
+ notificationsSwitch.setOn(false, animated: true)
+ }
+ }
+ }
+
+ @IBAction func deleteFilesButtonAction() {
+
+ let alertController = UIAlertController(
+ title: nil,
+ message: "delete_files_question".localized,
+ preferredStyle: UIAlertControllerStyle.alert
+ )
+
+ let yesAction = UIAlertAction(title: "yes".localized, style: UIAlertActionStyle.default) { [weak self]
+ (result : UIAlertAction) -> Void in
+ self?.deleteAllFiles()
+ }
+
+ let noAction = UIAlertAction(title: "no".localized, style: UIAlertActionStyle.cancel) { [weak self]
+ (result : UIAlertAction) -> Void in
+ }
+ alertController.addAction(yesAction)
+ alertController.addAction(noAction)
+
+ self.present(alertController, animated: true, completion: nil)
+ }
+
+ private func deleteAllFiles() {
+
+ PlayerController.shared.stopAndClear()
+ DatabaseManager.shared.removeAllBooksFromDownloaded()
+ presentToast(message: "all_files_removed".localized)
+ }
+
+ @IBAction func switchAction() {
+ UIApplication.shared.openURL(URL(string: UIApplicationOpenSettingsURLString)!)
+ }
+
+ @IBAction func becomeFriendButtonAction() {
+ appDelegate.mainNavigator.presentPayPalForm()
+ }
+}