78 lines
2.9 KiB
Swift
78 lines
2.9 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 {
|
|
|
|
private var twitterFeedProviders = [TwitterFeedProvider]()
|
|
|
|
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
|
|
let url = TwitterFeedProvider.buildURL(.homeTimeline, username: username, screenName: nil, searchField: nil)?.absoluteString
|
|
pushAddFeedController(url)
|
|
} else {
|
|
let selectAccount = UIStoryboard.twitterAdd.instantiateController(ofType: TwitterSelectAccountTableViewController.self)
|
|
selectAccount.twitterFeedType = .homeTimeline
|
|
navigationController?.pushViewController(selectAccount, animated: true)
|
|
}
|
|
case 1:
|
|
if twitterFeedProviders.count == 1 {
|
|
let username = twitterFeedProviders.first!.screenName
|
|
let url = TwitterFeedProvider.buildURL(.mentions, username: username, screenName: nil, searchField: nil)?.absoluteString
|
|
pushAddFeedController(url)
|
|
} else {
|
|
let selectAccount = UIStoryboard.twitterAdd.instantiateController(ofType: TwitterSelectAccountTableViewController.self)
|
|
selectAccount.twitterFeedType = .mentions
|
|
navigationController?.pushViewController(selectAccount, animated: true)
|
|
}
|
|
case 2:
|
|
let enterDetail = UIStoryboard.twitterAdd.instantiateController(ofType: TwitterEnterDetailTableViewController.self)
|
|
enterDetail.twitterFeedType = .screenName
|
|
navigationController?.pushViewController(enterDetail, animated: true)
|
|
case 3:
|
|
let enterDetail = UIStoryboard.twitterAdd.instantiateController(ofType: TwitterEnterDetailTableViewController.self)
|
|
enterDetail.twitterFeedType = .search
|
|
navigationController?.pushViewController(enterDetail, animated: true)
|
|
default:
|
|
fatalError()
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private extension TwitterSelectTypeTableViewController {
|
|
|
|
func pushAddFeedController(_ url: String?) {
|
|
let addViewController = UIStoryboard.add.instantiateViewController(withIdentifier: "AddWebFeedViewController") as! AddFeedViewController
|
|
addViewController.addFeedType = .twitter
|
|
addViewController.initialFeed = url
|
|
navigationController?.pushViewController(addViewController, animated: true)
|
|
}
|
|
|
|
}
|