forked from shadowfacts/Tusker
76 lines
2.1 KiB
Swift
76 lines
2.1 KiB
Swift
//
|
|
// AccountListTableViewController.swift
|
|
// Tusker
|
|
//
|
|
// Created by Shadowfacts on 9/5/19.
|
|
// Copyright © 2019 Shadowfacts. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class AccountListTableViewController: EnhancedTableViewController {
|
|
|
|
private let accountCell = "accountCell"
|
|
|
|
let mastodonController: MastodonController
|
|
|
|
let accountIDs: [String]
|
|
|
|
init(accountIDs: [String], mastodonController: MastodonController) {
|
|
self.accountIDs = accountIDs
|
|
self.mastodonController = mastodonController
|
|
|
|
super.init(style: .grouped)
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
dragEnabled = true
|
|
|
|
tableView.register(UINib(nibName: "AccountTableViewCell", bundle: .main), forCellReuseIdentifier: accountCell)
|
|
|
|
tableView.rowHeight = UITableView.automaticDimension
|
|
tableView.estimatedRowHeight = 66
|
|
|
|
tableView.alwaysBounceVertical = true
|
|
|
|
tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNormalMagnitude))
|
|
}
|
|
|
|
// MARK: - Table view data source
|
|
|
|
override func numberOfSections(in tableView: UITableView) -> Int {
|
|
return 1
|
|
}
|
|
|
|
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
return accountIDs.count
|
|
}
|
|
|
|
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
guard let cell = tableView.dequeueReusableCell(withIdentifier: accountCell, for: indexPath) as? AccountTableViewCell else { fatalError() }
|
|
|
|
let id = accountIDs[indexPath.row]
|
|
cell.delegate = self
|
|
cell.updateUI(accountID: id)
|
|
|
|
return cell
|
|
}
|
|
|
|
}
|
|
|
|
extension AccountListTableViewController: TuskerNavigationDelegate {
|
|
var apiController: MastodonController { mastodonController }
|
|
}
|
|
|
|
extension AccountListTableViewController: ToastableViewController {
|
|
}
|
|
|
|
extension AccountListTableViewController: MenuActionProvider {
|
|
}
|