[ABANDONED] Mastodon iOS client.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
2.3 KiB

6 years ago
6 years ago
  1. //
  2. // SettingsTableViewController.swift
  3. // elpha-ios
  4. //
  5. // Created by Dwayne Harris on 11/12/18.
  6. // Copyright © 2018 Elpha. All rights reserved.
  7. //
  8. import Kingfisher
  9. import UIKit
  10. class SettingsTableViewController: UITableViewController {
  11. @IBOutlet var headerImageView: UIImageView!
  12. @IBOutlet var avatarImageView: UIImageView!
  13. @IBOutlet var displayNameLabel: UILabel!
  14. @IBOutlet var usernameLabel: UILabel!
  15. @IBOutlet var gifSwitch: UISwitch!
  16. @IBOutlet var refreshTimelinesSwitch: UISwitch!
  17. override func viewDidLoad() {
  18. super.viewDidLoad()
  19. navigationItem.title = "Settings"
  20. avatarImageView.setShadow()
  21. avatarImageView.setRoundedCorners()
  22. if let account = AuthenticationManager.session?.account {
  23. let options: KingfisherOptionsInfo = SettingsManager.automaticallyPlayGIFs ? [] : [.onlyLoadFirstFrame]
  24. headerImageView.kf.setImage(with: account.headerURL!)
  25. avatarImageView.kf.setImage(with: account.avatarURL!, options: options)
  26. displayNameLabel.text = account.displayName
  27. usernameLabel.text = "@\(account.acct!)"
  28. }
  29. gifSwitch.isOn = SettingsManager.automaticallyPlayGIFs
  30. refreshTimelinesSwitch.isOn = SettingsManager.automaticallyRefreshTimelines
  31. }
  32. override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  33. switch indexPath.row {
  34. case 2:
  35. let storyboard = UIStoryboard(name: "Main", bundle: nil)
  36. if let controller = storyboard.instantiateViewController(withIdentifier: "InstancesNavigationController") as? InstancesNavigationController {
  37. self.parent?.present(controller, animated: true)
  38. }
  39. case 3:
  40. unauthenticate()
  41. default:
  42. return
  43. }
  44. }
  45. @IBAction func gifChanged(_ sender: Any) {
  46. SettingsManager.automaticallyPlayGIFs = gifSwitch.isOn
  47. }
  48. @IBAction func refreshTimelinesChanged(_ sender: Any) {
  49. SettingsManager.automaticallyRefreshTimelines = refreshTimelinesSwitch.isOn
  50. }
  51. func unauthenticate() {
  52. AuthenticationManager.deleteSelectedSession()
  53. NotificationCenter.default.post(name: .didUnauthenticate, object: nil)
  54. self.dismiss(animated: true)
  55. }
  56. }