Archived
109 lines
4.2 KiB
Swift
109 lines
4.2 KiB
Swift
//
|
|
// CustomizationViewController.swift
|
|
// AvH Plan
|
|
//
|
|
// Created by Deniz Duezgoeren on 19.07.19.
|
|
// Copyright © 2019 Deniz Duezgoeren. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class CustomizationViewController: UITableViewController, UITextFieldDelegate {
|
|
|
|
let prefs = UserDefaults.standard
|
|
let df = DataFetcher.sharedInstance
|
|
var buttonTextChanged = false
|
|
|
|
@IBOutlet weak var txtName: UITextField!
|
|
@IBOutlet weak var txtClasses: UITextField!
|
|
@IBOutlet weak var txtCourses: UITextField!
|
|
@IBOutlet weak var defaultSwitch: UISwitch!
|
|
@IBOutlet weak var textToolbar: UIToolbar!
|
|
@IBOutlet weak var orderingSegments: UISegmentedControl!
|
|
@IBOutlet weak var autoRefreshToggle: UISwitch!
|
|
@IBOutlet weak var customizeCourseColorsButton: UIButton!
|
|
|
|
@IBAction func textDismissButton(_ sender: UIBarButtonItem) {
|
|
view.endEditing(true)
|
|
}
|
|
|
|
@IBAction func groupHelpButton(_ sender: UIButton) {
|
|
self.present(self.df.getInfoAlert(for: "grade"), animated: true)
|
|
}
|
|
|
|
@IBAction func courseHelpButton(_ sender: UIButton) {
|
|
self.present(self.df.getInfoAlert(for: "course"), animated: true)
|
|
}
|
|
|
|
@IBAction func orderHelpButton(_ sender: UIButton) {
|
|
self.present(self.df.getInfoAlert(for: "order"), animated: true)
|
|
}
|
|
|
|
func textFieldDidBeginEditing(_ textField: UITextField) {
|
|
textField.inputAccessoryView = textToolbar
|
|
}
|
|
|
|
@IBAction func done(_ sender: UIBarButtonItem) {
|
|
self.prefs.set(self.txtName.text, forKey: "username")
|
|
self.prefs.set(self.txtClasses.text, forKey: "classes")
|
|
self.prefs.set(self.txtCourses.text, forKey: "courses")
|
|
|
|
let defaultPlan = self.defaultSwitch.isOn ? 1 : 0
|
|
self.prefs.set(defaultPlan, forKey: "default-plan")
|
|
self.prefs.set(self.orderingSegments.selectedSegmentIndex == 1, forKey: "original_sorting")
|
|
self.prefs.set(self.autoRefreshToggle.isOn, forKey: "auto_refresh")
|
|
|
|
self.dismiss(animated: true, completion: nil)
|
|
}
|
|
|
|
@IBAction func customizeColoursButton(_ sender: UIButton) {
|
|
if let s = storyboard?.instantiateViewController(withIdentifier: "CoursePickerViewController") as? CoursePickerViewController {
|
|
self.present(s, animated: true)
|
|
}
|
|
}
|
|
|
|
@IBAction func longPressListener(_ sender: UILongPressGestureRecognizer) {
|
|
sender.minimumPressDuration = 2
|
|
if sender.state == .ended {
|
|
if !buttonTextChanged {
|
|
self.customizeCourseColorsButton.setTitle(NSLocalizedString("made_by_deniz", comment: ""), for: .normal)
|
|
buttonTextChanged = true
|
|
} else {
|
|
self.customizeCourseColorsButton.setTitle(NSLocalizedString("customize_course_colors", comment: ""), for: .normal)
|
|
buttonTextChanged = false
|
|
}
|
|
}
|
|
}
|
|
|
|
@IBAction func infoLongPressListener(_ sender: UILongPressGestureRecognizer) {
|
|
sender.minimumPressDuration = 2
|
|
if sender.state == .ended {
|
|
let youtubeId = "Jc2xfYuLWgE"
|
|
if let youtubeURL = URL(string: "youtube://\(youtubeId)"),
|
|
UIApplication.shared.canOpenURL(youtubeURL) {
|
|
// redirect to app
|
|
UIApplication.shared.open(youtubeURL, options: [:], completionHandler: nil)
|
|
} else if let youtubeURL = URL(string: "https://www.youtube.com/watch?v=\(youtubeId)") {
|
|
// redirect through safari
|
|
UIApplication.shared.open(youtubeURL, options: [:], completionHandler: nil)
|
|
}
|
|
}
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
self.txtName.delegate = self
|
|
self.txtClasses.delegate = self
|
|
self.txtCourses.delegate = self
|
|
|
|
self.txtName.text = prefs.string(forKey: "username")
|
|
self.txtClasses.text = prefs.string(forKey: "classes")
|
|
self.txtCourses.text = prefs.string(forKey: "courses")
|
|
self.defaultSwitch.isOn = self.prefs.integer(forKey: "default-plan") == 1 ? true : false
|
|
let order = self.prefs.bool(forKey: "original_sorting") ? 1 : 0
|
|
self.orderingSegments.selectedSegmentIndex = order
|
|
self.autoRefreshToggle.isOn = self.prefs.bool(forKey: "auto_refresh")
|
|
}
|
|
}
|