diff --git a/Mac/AppAssets.swift b/Mac/AppAssets.swift
index cefbe0423..eb7f24dbb 100644
--- a/Mac/AppAssets.swift
+++ b/Mac/AppAssets.swift
@@ -161,6 +161,16 @@ struct AppAssets {
let image = RSImage(named: "markAllAsRead")
return image!
}()
+
+ static var markBelowAsReadImage: RSImage = {
+ let image = RSImage(named: "markBelowAsRead")
+ return image!
+ }()
+
+ static var markAboveAsReadImage: RSImage = {
+ let image = RSImage(named: "markAboveAsRead")
+ return image!
+ }()
static var nextUnreadImage: RSImage = {
diff --git a/Mac/MainWindow/MainWindowController.swift b/Mac/MainWindow/MainWindowController.swift
index 0f90b85b1..40e961e35 100644
--- a/Mac/MainWindow/MainWindowController.swift
+++ b/Mac/MainWindow/MainWindowController.swift
@@ -90,6 +90,7 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
timelineContainerViewController = splitViewController?.splitViewItems[1].viewController as? TimelineContainerViewController
timelineContainerViewController!.delegate = self
+ splitViewController?.splitViewItems[1].automaticallyAdjustsSafeAreaInsets = true
detailViewController = splitViewController?.splitViewItems[2].viewController as? DetailViewController
diff --git a/Mac/MainWindow/Sidebar/UnreadCountView.swift b/Mac/MainWindow/Sidebar/UnreadCountView.swift
index 75ab94e6b..dda16e165 100644
--- a/Mac/MainWindow/Sidebar/UnreadCountView.swift
+++ b/Mac/MainWindow/Sidebar/UnreadCountView.swift
@@ -35,7 +35,7 @@ class UnreadCountView : NSView {
}
private var currentTextColor: NSColor {
- return isSelected ? NSColor.white : NSColor.tertiaryLabelColor
+ return isSelected ? NSColor.white : NSColor.secondaryLabelColor
}
private var textAttributes: [NSAttributedString.Key: AnyObject] {
diff --git a/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift b/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift
index 32ce32ac0..843a32f79 100644
--- a/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift
+++ b/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift
@@ -241,11 +241,11 @@ private extension TimelineViewController {
}
func markAboveReadMenuItem(_ articles: [Article]) -> NSMenuItem {
- return menuItem(NSLocalizedString("Mark Above as Read", comment: "Command"), #selector(markAboveArticlesReadFromContextualMenu(_:)), articles, image: nil)
+ return menuItem(NSLocalizedString("Mark Above as Read", comment: "Command"), #selector(markAboveArticlesReadFromContextualMenu(_:)), articles, image: AppAssets.markAboveAsReadImage)
}
func markBelowReadMenuItem(_ articles: [Article]) -> NSMenuItem {
- return menuItem(NSLocalizedString("Mark Below as Read", comment: "Command"), #selector(markBelowArticlesReadFromContextualMenu(_:)), articles, image: nil)
+ return menuItem(NSLocalizedString("Mark Below as Read", comment: "Command"), #selector(markBelowArticlesReadFromContextualMenu(_:)), articles, image: AppAssets.markBelowAsReadImage)
}
func selectFeedInSidebarMenuItem(_ feed: WebFeed) -> NSMenuItem {
diff --git a/Mac/Resources/Assets.xcassets/markAboveAsRead.symbolset/Contents.json b/Mac/Resources/Assets.xcassets/markAboveAsRead.symbolset/Contents.json
new file mode 100644
index 000000000..a564ef15f
--- /dev/null
+++ b/Mac/Resources/Assets.xcassets/markAboveAsRead.symbolset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "symbols" : [
+ {
+ "filename" : "markAsReadAbove.svg",
+ "idiom" : "universal"
+ }
+ ]
+}
diff --git a/Mac/Resources/Assets.xcassets/markAboveAsRead.symbolset/markAsReadAbove.svg b/Mac/Resources/Assets.xcassets/markAboveAsRead.symbolset/markAsReadAbove.svg
new file mode 100644
index 000000000..33ae08783
--- /dev/null
+++ b/Mac/Resources/Assets.xcassets/markAboveAsRead.symbolset/markAsReadAbove.svg
@@ -0,0 +1,159 @@
+
+
\ No newline at end of file
diff --git a/Mac/Resources/Assets.xcassets/markBelowAsRead.symbolset/Contents.json b/Mac/Resources/Assets.xcassets/markBelowAsRead.symbolset/Contents.json
new file mode 100644
index 000000000..2a23fbc06
--- /dev/null
+++ b/Mac/Resources/Assets.xcassets/markBelowAsRead.symbolset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "symbols" : [
+ {
+ "filename" : "markBelowAsRead.svg",
+ "idiom" : "universal"
+ }
+ ]
+}
diff --git a/Mac/Resources/Assets.xcassets/markBelowAsRead.symbolset/markBelowAsRead.svg b/Mac/Resources/Assets.xcassets/markBelowAsRead.symbolset/markBelowAsRead.svg
new file mode 100644
index 000000000..6edb2d188
--- /dev/null
+++ b/Mac/Resources/Assets.xcassets/markBelowAsRead.symbolset/markBelowAsRead.svg
@@ -0,0 +1,159 @@
+
+
\ No newline at end of file
diff --git a/iOS/SceneCoordinator.swift b/iOS/SceneCoordinator.swift
index 71c9e5efd..360d9cba3 100644
--- a/iOS/SceneCoordinator.swift
+++ b/iOS/SceneCoordinator.swift
@@ -85,7 +85,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner {
var isArticleViewControllerPending = false
/// `Bool` to track whether a refresh is scheduled.
- private var isRefreshScheduled: Bool = false
+ private var isNavigationBarSubtitleRefreshScheduled: Bool = false
private(set) var sortDirection = AppDefaults.shared.timelineSortDirection {
didSet {
@@ -628,12 +628,12 @@ class SceneCoordinator: NSObject, UndoableCommandRunner {
}
func scheduleNavigationBarSubtitleUpdate() {
- if isRefreshScheduled {
+ if isNavigationBarSubtitleRefreshScheduled {
return
}
- isRefreshScheduled = true
+ isNavigationBarSubtitleRefreshScheduled = true
DispatchQueue.main.asyncAfter(deadline: .now() + 60) { [weak self] in
- self?.isRefreshScheduled = false
+ self?.isNavigationBarSubtitleRefreshScheduled = false
self?.updateNavigationBarSubtitles(nil)
}
}
diff --git a/xcconfig/NetNewsWire_iOSapp_target.xcconfig b/xcconfig/NetNewsWire_iOSapp_target.xcconfig
index cd5380c77..10400c2ad 100644
--- a/xcconfig/NetNewsWire_iOSapp_target.xcconfig
+++ b/xcconfig/NetNewsWire_iOSapp_target.xcconfig
@@ -44,8 +44,7 @@ PRODUCT_NAME = NetNewsWire
CLANG_ENABLE_MODULES = YES
SWIFT_OBJC_BRIDGING_HEADER = iOS/Resources/NetNewsWire-iOS-Bridging-Header.h
SWIFT_VERSION = 5.7
-SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
-SUPPORTS_MACCATALYST = NO;
-SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
-SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
-TARGETED_DEVICE_FAMILY = "1,2";
+SUPPORTED_PLATFORMS = iphoneos iphonesimulator
+SUPPORTS_MACCATALYST = NO
+SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO
+SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO