Save the previous feed instead of relying on the currentFeedIndexPath which may have been reset. Issue #2139
This commit is contained in:
parent
5356189654
commit
b3c0fac5d3
@ -70,11 +70,14 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
private var expandedTable = Set<ContainerIdentifier>()
|
private var expandedTable = Set<ContainerIdentifier>()
|
||||||
private var readFilterEnabledTable = [FeedIdentifier: Bool]()
|
private var readFilterEnabledTable = [FeedIdentifier: Bool]()
|
||||||
private var shadowTable = [[Node]]()
|
private var shadowTable = [[Node]]()
|
||||||
|
|
||||||
|
private(set) var preSearchTimelineFeed: Feed?
|
||||||
private var lastSearchString = ""
|
private var lastSearchString = ""
|
||||||
private var lastSearchScope: SearchScope? = nil
|
private var lastSearchScope: SearchScope? = nil
|
||||||
private var isSearching: Bool = false
|
private var isSearching: Bool = false
|
||||||
private var savedSearchArticles: ArticleArray? = nil
|
private var savedSearchArticles: ArticleArray? = nil
|
||||||
private var savedSearchArticleIds: Set<String>? = nil
|
private var savedSearchArticleIds: Set<String>? = nil
|
||||||
|
|
||||||
var isTimelineViewControllerPending = false
|
var isTimelineViewControllerPending = false
|
||||||
var isArticleViewControllerPending = false
|
var isArticleViewControllerPending = false
|
||||||
|
|
||||||
@ -830,6 +833,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
|
|
||||||
func beginSearching() {
|
func beginSearching() {
|
||||||
isSearching = true
|
isSearching = true
|
||||||
|
preSearchTimelineFeed = timelineFeed
|
||||||
savedSearchArticles = articles
|
savedSearchArticles = articles
|
||||||
savedSearchArticleIds = Set(articles.map { $0.articleID })
|
savedSearchArticleIds = Set(articles.map { $0.articleID })
|
||||||
setTimelineFeed(nil, animated: true)
|
setTimelineFeed(nil, animated: true)
|
||||||
@ -837,9 +841,9 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func endSearching() {
|
func endSearching() {
|
||||||
if let ip = currentFeedIndexPath, let node = nodeFor(ip), let feed = node.representedObject as? Feed {
|
if let oldTimelineFeed = preSearchTimelineFeed {
|
||||||
emptyTheTimeline()
|
emptyTheTimeline()
|
||||||
timelineFeed = feed
|
timelineFeed = oldTimelineFeed
|
||||||
masterTimelineViewController?.reinitializeArticles(resetScroll: true)
|
masterTimelineViewController?.reinitializeArticles(resetScroll: true)
|
||||||
replaceArticles(with: savedSearchArticles!, animated: true)
|
replaceArticles(with: savedSearchArticles!, animated: true)
|
||||||
} else {
|
} else {
|
||||||
@ -848,6 +852,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
|
|
||||||
lastSearchString = ""
|
lastSearchString = ""
|
||||||
lastSearchScope = nil
|
lastSearchScope = nil
|
||||||
|
preSearchTimelineFeed = nil
|
||||||
savedSearchArticleIds = nil
|
savedSearchArticleIds = nil
|
||||||
savedSearchArticles = nil
|
savedSearchArticles = nil
|
||||||
isSearching = false
|
isSearching = false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user