67 lines
2.3 KiB
Swift
67 lines
2.3 KiB
Swift
//
|
||
// CloudKitAccountViewController.swift
|
||
// NetNewsWire-iOS
|
||
//
|
||
// Created by Maurice Parker on 3/28/20.
|
||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
||
//
|
||
|
||
import UIKit
|
||
import Account
|
||
|
||
enum CloudKitAccountViewControllerError: LocalizedError {
|
||
case iCloudDriveMissing
|
||
|
||
var errorDescription: String? {
|
||
return NSLocalizedString("Unable to add iCloud Account. Please make sure you have iCloud and iCloud enabled in System Preferences.", comment: "Unable to add iCloud Account.")
|
||
}
|
||
}
|
||
|
||
class CloudKitAccountViewController: UITableViewController {
|
||
|
||
weak var delegate: AddAccountDismissDelegate?
|
||
@IBOutlet weak var footerLabel: UILabel!
|
||
|
||
override func viewDidLoad() {
|
||
super.viewDidLoad()
|
||
setupFooter()
|
||
|
||
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
||
}
|
||
|
||
private func setupFooter() {
|
||
footerLabel.text = NSLocalizedString("Feeds in your iCloud account will be synced across your Mac and iOS devices.\n\nImportant note: while NetNewsWire itself is very fast, iCloud syncing is sometimes very slow. This can happen after adding a number of feeds and when setting it up on a new device.\n\nIf that happens to you, it may appear stuck. But don’t worry — it’s not. Just let it run.", comment: "iCloud")
|
||
}
|
||
|
||
@IBAction func cancel(_ sender: Any) {
|
||
dismiss(animated: true, completion: nil)
|
||
delegate?.dismiss()
|
||
}
|
||
|
||
@IBAction func add(_ sender: Any) {
|
||
guard FileManager.default.ubiquityIdentityToken != nil else {
|
||
presentError(CloudKitAccountViewControllerError.iCloudDriveMissing)
|
||
return
|
||
}
|
||
|
||
let _ = AccountManager.shared.createAccount(type: .cloudKit)
|
||
dismiss(animated: true, completion: nil)
|
||
delegate?.dismiss()
|
||
}
|
||
|
||
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
||
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
||
}
|
||
|
||
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
|
||
if section == 0 {
|
||
let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "SectionHeader") as! ImageHeaderView
|
||
headerView.imageView.image = AppAssets.image(for: .cloudKit)
|
||
return headerView
|
||
} else {
|
||
return super.tableView(tableView, viewForHeaderInSection: section)
|
||
}
|
||
}
|
||
|
||
}
|