mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Remove Master from names.
This commit is contained in:
78
iOS/Feeds/Cell/MasterFeedTableViewIdentifier.swift
Normal file
78
iOS/Feeds/Cell/MasterFeedTableViewIdentifier.swift
Normal file
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// MasterFeedTableViewIdentifier.swift
|
||||
// NetNewsWire-iOS
|
||||
//
|
||||
// Created by Maurice Parker on 6/3/20.
|
||||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Account
|
||||
import RSTree
|
||||
|
||||
final class MasterFeedTableViewIdentifier: NSObject, NSCopying {
|
||||
|
||||
let feedID: FeedIdentifier?
|
||||
let containerID: ContainerIdentifier?
|
||||
let parentContainerID: ContainerIdentifier?
|
||||
|
||||
let isEditable: Bool
|
||||
let isPsuedoFeed: Bool
|
||||
let isFolder: Bool
|
||||
let isWebFeed: Bool
|
||||
|
||||
let nameForDisplay: String
|
||||
let url: String?
|
||||
let unreadCount: Int
|
||||
let childCount: Int
|
||||
|
||||
var account: Account? {
|
||||
if isFolder, let parentContainerID = parentContainerID {
|
||||
return AccountManager.shared.existingContainer(with: parentContainerID) as? Account
|
||||
}
|
||||
if isWebFeed, let feedID = feedID {
|
||||
return (AccountManager.shared.existingFeed(with: feedID) as? WebFeed)?.account
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
init(node: Node, unreadCount: Int) {
|
||||
let feed = node.representedObject as! Feed
|
||||
self.feedID = feed.feedID
|
||||
self.containerID = (node.representedObject as? Container)?.containerID
|
||||
self.parentContainerID = (node.parent?.representedObject as? Container)?.containerID
|
||||
|
||||
self.isEditable = !(node.representedObject is PseudoFeed)
|
||||
self.isPsuedoFeed = node.representedObject is PseudoFeed
|
||||
self.isFolder = node.representedObject is Folder
|
||||
self.isWebFeed = node.representedObject is WebFeed
|
||||
self.nameForDisplay = feed.nameForDisplay
|
||||
|
||||
if let webFeed = node.representedObject as? WebFeed {
|
||||
self.url = webFeed.url
|
||||
} else {
|
||||
self.url = nil
|
||||
}
|
||||
|
||||
self.unreadCount = unreadCount
|
||||
self.childCount = node.numberOfChildNodes
|
||||
}
|
||||
|
||||
override func isEqual(_ object: Any?) -> Bool {
|
||||
guard let otherIdentifier = object as? MasterFeedTableViewIdentifier else { return false }
|
||||
if self === otherIdentifier { return true }
|
||||
return feedID == otherIdentifier.feedID && parentContainerID == otherIdentifier.parentContainerID
|
||||
}
|
||||
|
||||
override var hash: Int {
|
||||
var hasher = Hasher()
|
||||
hasher.combine(feedID)
|
||||
hasher.combine(parentContainerID)
|
||||
return hasher.finalize()
|
||||
}
|
||||
|
||||
func copy(with zone: NSZone? = nil) -> Any {
|
||||
return self
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user