mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2024-12-23 08:09:41 +01:00
Create and use anyLocalOriCloudAccountHasAtLeastOneTwitterFeed in AccountManager, so both iOS and Mac apps can use it. Also: simplify the Date comparison in presentTwitterDeprecationAlertIfRequired by using Dates instead of TimeInterval.
This commit is contained in:
parent
33c4cfcc3a
commit
e2aa15f08a
@ -351,6 +351,26 @@ public final class AccountManager: UnreadCountProvider {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func anyLocalOriCloudAccountHasAtLeastOneTwitterFeed() -> Bool {
|
||||||
|
// We removed our Twitter code, and the ability to read feeds from Twitter,
|
||||||
|
// when Twitter announced the end of the free tier for the Twitter API.
|
||||||
|
// We are cheering on Twitter’s increasing irrelevancy.
|
||||||
|
|
||||||
|
for account in accounts {
|
||||||
|
if account.type == .cloudKit || account.type == .onMyMac {
|
||||||
|
for webfeed in account.flattenedWebFeeds() {
|
||||||
|
if let components = URLComponents(string: webfeed.url), let host = components.host {
|
||||||
|
if host == "twitter.com" { // Allow, for instance, blog.twitter.com, which might have an actual RSS feed
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - Fetching Articles
|
// MARK: - Fetching Articles
|
||||||
|
|
||||||
// These fetch articles from active accounts and return a merged Set<Article>.
|
// These fetch articles from active accounts and return a merged Set<Article>.
|
||||||
|
@ -717,28 +717,13 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner {
|
|||||||
private func presentTwitterDeprecationAlertIfRequired() {
|
private func presentTwitterDeprecationAlertIfRequired() {
|
||||||
if AppDefaults.shared.twitterDeprecationAlertShown { return }
|
if AppDefaults.shared.twitterDeprecationAlertShown { return }
|
||||||
|
|
||||||
let expiryDate = Date(timeIntervalSince1970: 1691539200).timeIntervalSince1970 // August 9th 2023, 00:00 UTC
|
let expiryDate = Date(timeIntervalSince1970: 1691539200) // August 9th 2023, 00:00 UTC
|
||||||
let currentDate = Date().timeIntervalSince1970
|
let currentDate = Date()
|
||||||
if currentDate > expiryDate {
|
if currentDate > expiryDate {
|
||||||
return // If after August 9th, don't show
|
return // If after August 9th, don't show
|
||||||
}
|
}
|
||||||
|
|
||||||
var twitterIsActive: Bool = false
|
if AccountManager.shared.anyLocalOriCloudAccountHasAtLeastOneTwitterFeed() {
|
||||||
AccountManager.shared.accounts.forEach({ account in
|
|
||||||
if account.type == .cloudKit || account.type == .onMyMac {
|
|
||||||
account.flattenedWebFeeds().forEach({ webfeed in
|
|
||||||
guard let components = URLComponents(string: webfeed.url),
|
|
||||||
let host = components.host else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if host == "twitter.com" {
|
|
||||||
twitterIsActive = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if twitterIsActive {
|
|
||||||
showTwitterDeprecationAlert()
|
showTwitterDeprecationAlert()
|
||||||
}
|
}
|
||||||
AppDefaults.shared.twitterDeprecationAlertShown = true
|
AppDefaults.shared.twitterDeprecationAlertShown = true
|
||||||
@ -752,7 +737,6 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner {
|
|||||||
alert.addAction(UIAlertAction(title: "OK", style: .cancel))
|
alert.addAction(UIAlertAction(title: "OK", style: .cancel))
|
||||||
present(alert, animated: true)
|
present(alert, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: UIContextMenuInteractionDelegate
|
// MARK: UIContextMenuInteractionDelegate
|
||||||
|
Loading…
Reference in New Issue
Block a user