Merge branch 'ios-release'
This commit is contained in:
commit
ee2e2f8fa6
@ -175,7 +175,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
// * Once the article has loaded, navigate to the iPad home screen
|
// * Once the article has loaded, navigate to the iPad home screen
|
||||||
// * While in landscape, select a feed and then select an article
|
// * While in landscape, select a feed and then select an article
|
||||||
// * Install a fresh build of NNW to an iPad simulator (11 or 12.9' will do) running iPadOS 15
|
// * Install a fresh build of NNW to an iPad simulator (11 or 12.9' will do) running iPadOS 15
|
||||||
private var deferredFeedAndArticleSelect: (feedIndexPath: IndexPath, articleID: String, isShowingExtractedArticle: Bool, articleWindowScrollY: Int)?
|
private var deferredFeedAndArticleSelect: (feedIdentifier: FeedIdentifier, articleID: String, isShowingExtractedArticle: Bool, articleWindowScrollY: Int)?
|
||||||
|
|
||||||
var timelineMiddleIndexPath: IndexPath?
|
var timelineMiddleIndexPath: IndexPath?
|
||||||
|
|
||||||
@ -456,14 +456,16 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
guard notification.object is AccountManager else {
|
guard notification.object is AccountManager else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
rebuildBackingStores(initialLoad: true)
|
|
||||||
treeControllerDelegate.resetFilterExceptions()
|
|
||||||
|
|
||||||
if let (feedIndexPath, articleID, isShowingExtractedArticle, articleWindowScrollY) = deferredFeedAndArticleSelect {
|
rebuildBackingStores(initialLoad: true, completion: {
|
||||||
selectFeed(indexPath: feedIndexPath) {
|
if let (feedIdentifier, articleID, isShowingExtractedArticle, articleWindowScrollY) = self.deferredFeedAndArticleSelect,
|
||||||
self.selectArticleInCurrentFeed(articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
let feedNode = self.nodeFor(feedID: feedIdentifier),
|
||||||
|
let feedIndexPath = self.indexPathFor(feedNode) {
|
||||||
|
self.selectFeed(indexPath: feedIndexPath) {
|
||||||
|
self.selectArticleInCurrentFeed(articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func unreadCountDidChange(_ note: Notification) {
|
@objc func unreadCountDidChange(_ note: Notification) {
|
||||||
@ -2297,37 +2299,21 @@ private extension SceneCoordinator {
|
|||||||
|
|
||||||
switch feedIdentifier {
|
switch feedIdentifier {
|
||||||
|
|
||||||
case .smartFeed:
|
|
||||||
if let smartFeedNode = nodeFor(feedID: feedIdentifier) {
|
|
||||||
let found = deferSelectFeedAndArticle(feedNode: smartFeedNode, articleID: articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
|
||||||
if found {
|
|
||||||
treeControllerDelegate.addFilterException(feedIdentifier)
|
|
||||||
}
|
|
||||||
return found
|
|
||||||
}
|
|
||||||
|
|
||||||
case .script:
|
case .script:
|
||||||
return false
|
return false
|
||||||
|
|
||||||
case .folder(let accountID, let folderName):
|
case .smartFeed, .folder:
|
||||||
guard let accountNode = findAccountNode(accountID: accountID),
|
let found = deferSelectFeedAndArticle(feedIdentifier: feedIdentifier, articleID: articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
||||||
let folderNode = findFolderNode(folderName: folderName, beginningAt: accountNode) else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
let found = deferSelectFeedAndArticle(feedNode: folderNode, articleID: articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
|
||||||
if found {
|
if found {
|
||||||
treeControllerDelegate.addFilterException(feedIdentifier)
|
treeControllerDelegate.addFilterException(feedIdentifier)
|
||||||
}
|
}
|
||||||
return found
|
return found
|
||||||
|
|
||||||
case .webFeed:
|
case .webFeed:
|
||||||
guard let accountNode = findAccountNode(accountID: accountID), let webFeedNode = findWebFeedNode(webFeedID: webFeedID, beginningAt: accountNode) else {
|
let found = deferSelectFeedAndArticle(feedIdentifier: feedIdentifier, articleID: articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
||||||
return false
|
|
||||||
}
|
|
||||||
let found = deferSelectFeedAndArticle(feedNode: webFeedNode, articleID: articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
|
||||||
if found {
|
if found {
|
||||||
treeControllerDelegate.addFilterException(feedIdentifier)
|
treeControllerDelegate.addFilterException(feedIdentifier)
|
||||||
if let folder = webFeedNode.parent?.representedObject as? Folder, let folderFeedID = folder.feedID {
|
if let webFeedNode = nodeFor(feedID: feedIdentifier), let folder = webFeedNode.parent?.representedObject as? Folder, let folderFeedID = folder.feedID {
|
||||||
treeControllerDelegate.addFilterException(folderFeedID)
|
treeControllerDelegate.addFilterException(folderFeedID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2335,7 +2321,6 @@ private extension SceneCoordinator {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func findAccountNode(accountID: String, accountName: String? = nil) -> Node? {
|
func findAccountNode(accountID: String, accountName: String? = nil) -> Node? {
|
||||||
@ -2364,12 +2349,18 @@ private extension SceneCoordinator {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func deferSelectFeedAndArticle(feedNode: Node, articleID: String, isShowingExtractedArticle: Bool, articleWindowScrollY: Int) -> Bool {
|
func deferSelectFeedAndArticle(feedIdentifier: FeedIdentifier, articleID: String, isShowingExtractedArticle: Bool, articleWindowScrollY: Int) -> Bool {
|
||||||
if let feedIndexPath = indexPathFor(feedNode) {
|
guard let feedNode = nodeFor(feedID: feedIdentifier), let feedIndexPath = indexPathFor(feedNode) else { return false }
|
||||||
deferredFeedAndArticleSelect = (feedIndexPath, articleID, isShowingExtractedArticle, articleWindowScrollY)
|
|
||||||
return true
|
if AccountManager.shared.isUnreadCountsInitialized {
|
||||||
|
selectFeed(indexPath: feedIndexPath) {
|
||||||
|
self.selectArticleInCurrentFeed(articleID, isShowingExtractedArticle: isShowingExtractedArticle, articleWindowScrollY: articleWindowScrollY)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
deferredFeedAndArticleSelect = (feedIdentifier, articleID, isShowingExtractedArticle, articleWindowScrollY)
|
||||||
}
|
}
|
||||||
return false
|
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func confirmImportSuccess(themeName: String) {
|
func confirmImportSuccess(themeName: String) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
// High Level Settings common to both the iOS application and any extensions we bundle with it
|
// High Level Settings common to both the iOS application and any extensions we bundle with it
|
||||||
MARKETING_VERSION = 6.0.1
|
MARKETING_VERSION = 6.0.2
|
||||||
CURRENT_PROJECT_VERSION = 608
|
CURRENT_PROJECT_VERSION = 609
|
||||||
|
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
|
||||||
|
Loading…
x
Reference in New Issue
Block a user