Add logging to TimelineViewController.

This commit is contained in:
Brent Simmons
2024-10-28 22:43:16 -07:00
parent e039a2b224
commit 9bffd090f3

View File

@@ -30,6 +30,9 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
@IBOutlet var tableView: TimelineTableView!
nonisolated(unsafe) private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "TimelineViewController")
private let debugLoggingEnabled = true
private var readFilterEnabledTable = [SidebarItemIdentifier: Bool]()
var isReadFiltered: Bool? {
guard representedObjects?.count == 1, let timelineFeed = representedObjects?.first as? SidebarItem else {
@@ -65,6 +68,9 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
var representedObjects: [AnyObject]? {
didSet {
if debugLoggingEnabled {
Self.logger.log(level: .debug, "TimelineViewController - did set representedObjects")
}
guard !representedObjectArraysAreEqual(oldValue, representedObjects) else {
return
}
@@ -562,18 +568,26 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
func goToNextUnread(wrappingToTop wrapping: Bool = false) {
guard let ix = indexOfNextUnreadArticle() else {
if debugLoggingEnabled {
Self.logger.log(level: .debug, "TimelineViewController - goToNextUnread — no index of next unread")
}
return
}
if debugLoggingEnabled {
Self.logger.log(level: .debug, "TimelineViewController - goToNextUnread — going to index \(ix)")
}
NSCursor.setHiddenUntilMouseMoves(true)
tableView.selectRow(ix)
tableView.scrollTo(row: ix)
}
func canGoToNextUnread(wrappingToTop wrapping: Bool = false) -> Bool {
guard let _ = indexOfNextUnreadArticle(wrappingToTop: wrapping) else {
return false
let canGo = indexOfNextUnreadArticle(wrappingToTop: wrapping) != nil
if debugLoggingEnabled {
Self.logger.log(level: .debug, "TimelineViewController - canGoToNextUnread -> \(canGo)")
}
return true
return canGo
}
func indexOfNextUnreadArticle(wrappingToTop wrapping: Bool = false) -> Int? {
@@ -1111,6 +1125,10 @@ private extension TimelineViewController {
func fetchAndReplaceArticles() async {
if debugLoggingEnabled {
Self.logger.log(level: .debug, "TimelineViewController - fetchAndReplaceArticles")
}
cancelPendingAsyncFetches()
guard var representedObjects = representedObjects else {