67 lines
2.2 KiB
Swift
67 lines
2.2 KiB
Swift
//
|
|
// TwitterSelectTypeTableViewController.swift
|
|
// NetNewsWire-iOS
|
|
//
|
|
// Created by Maurice Parker on 4/23/20.
|
|
// Copyright © 2020 Ranchero Software. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import Account
|
|
|
|
class TwitterSelectTypeTableViewController: UITableViewController, SelectURLBuilder {
|
|
|
|
private var twitterFeedProviders = [TwitterFeedProvider]()
|
|
|
|
weak var delegate: SelectURLBuilderDelegate?
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
twitterFeedProviders = ExtensionPointManager.shared.activeExtensionPoints.values.compactMap { $0 as? TwitterFeedProvider }
|
|
}
|
|
|
|
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
let cell = super.tableView(tableView, cellForRowAt: indexPath)
|
|
if indexPath.row < 2 {
|
|
if twitterFeedProviders.count > 1 {
|
|
cell.accessoryType = .disclosureIndicator
|
|
}
|
|
}
|
|
return cell
|
|
}
|
|
|
|
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
switch indexPath.row {
|
|
case 0:
|
|
if twitterFeedProviders.count == 1 {
|
|
let username = twitterFeedProviders.first!.screenName
|
|
if let url = TwitterFeedProvider.buildURL(.homeTimeline, username: username, screenName: nil, searchField: nil) {
|
|
delegate?.selectURLBuilderDidBuildURL(url)
|
|
}
|
|
dismiss(animated: true)
|
|
} else {
|
|
let selectAccount = UIStoryboard.twitterAdd.instantiateController(ofType: TwitterSelectAccountTableViewController.self)
|
|
selectAccount.twitterFeedType = .homeTimeline
|
|
selectAccount.delegate = delegate
|
|
navigationController?.pushViewController(selectAccount, animated: true)
|
|
}
|
|
case 1:
|
|
if twitterFeedProviders.count == 1 {
|
|
let username = twitterFeedProviders.first!.screenName
|
|
if let url = TwitterFeedProvider.buildURL(.mentions, username: username, screenName: nil, searchField: nil) {
|
|
delegate?.selectURLBuilderDidBuildURL(url)
|
|
}
|
|
dismiss(animated: true)
|
|
} else {
|
|
let selectAccount = UIStoryboard.twitterAdd.instantiateController(ofType: TwitterSelectAccountTableViewController.self)
|
|
selectAccount.twitterFeedType = .mentions
|
|
selectAccount.delegate = delegate
|
|
navigationController?.pushViewController(selectAccount, animated: true)
|
|
}
|
|
default:
|
|
fatalError()
|
|
}
|
|
}
|
|
|
|
}
|