100 lines
2.6 KiB
Swift
100 lines
2.6 KiB
Swift
//
|
|
// TimelinePreviewTableViewController.swift
|
|
// NetNewsWire-iOS
|
|
//
|
|
// Created by Maurice Parker on 11/8/19.
|
|
// Copyright © 2019 Ranchero Software. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import Articles
|
|
|
|
final class TimelinePreviewTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
|
|
|
|
@IBOutlet weak var tableView: UITableView!
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
tableView.delegate = self
|
|
tableView.dataSource = self
|
|
|
|
}
|
|
|
|
func heightFor(width: CGFloat) -> CGFloat {
|
|
if UIApplication.shared.preferredContentSizeCategory.isAccessibilityCategory {
|
|
let layout = MainTimelineAccessibilityCellLayout(width: width, insets: tableView.safeAreaInsets, cellData: prototypeCellData)
|
|
return layout.height
|
|
} else {
|
|
let layout = MainTimelineDefaultCellLayout(width: width, insets: tableView.safeAreaInsets, cellData: prototypeCellData)
|
|
return layout.height
|
|
}
|
|
}
|
|
|
|
// MARK: - Table view data source
|
|
|
|
func numberOfSections(in tableView: UITableView) -> Int {
|
|
return 1
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
return 1
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! MainTimelineTableViewCell
|
|
cell.cellData = prototypeCellData
|
|
return cell
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
tableView.selectRow(at: nil, animated: true, scrollPosition: .none)
|
|
}
|
|
// MARK: API
|
|
|
|
func reload() {
|
|
tableView.reloadData()
|
|
}
|
|
|
|
}
|
|
|
|
// MARK: Private
|
|
|
|
private extension TimelinePreviewTableViewController {
|
|
|
|
var prototypeCellData: MainTimelineCellData {
|
|
let longTitle = Constants.prototypeText
|
|
|
|
let prototypeID = "prototype"
|
|
let status = ArticleStatus(articleID: prototypeID, read: false, starred: false, dateArrived: Date())
|
|
let prototypeArticle = Article(
|
|
accountID: prototypeID,
|
|
articleID: prototypeID,
|
|
feedID: prototypeID,
|
|
uniqueID: prototypeID,
|
|
title: longTitle, contentHTML: nil,
|
|
contentText: nil,
|
|
url: nil,
|
|
externalURL: nil,
|
|
summary: nil,
|
|
imageURL: nil,
|
|
datePublished: nil,
|
|
dateModified: nil,
|
|
authors: nil,
|
|
status: status
|
|
)
|
|
|
|
let iconImage = IconImage(AppImage.faviconTemplate.withTintColor(AppColor.secondaryAccent))
|
|
|
|
return MainTimelineCellData(
|
|
article: prototypeArticle,
|
|
showFeedName: .feed,
|
|
feedName: "Feed Name",
|
|
byline: nil, iconImage: iconImage,
|
|
showIcon: true,
|
|
numberOfLines: AppDefaults.timelineNumberOfLines,
|
|
iconSize: AppDefaults.timelineIconSize
|
|
)
|
|
}
|
|
}
|