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 @@ + + + markAsReadAbove + + + + + + + Weight/Scale Variations + + + Ultralight + + + Thin + + + Light + + + Regular + + + Medium + + + Semibold + + + Bold + + + Heavy + + + Black + + + + + + + + + + + + + Design Variations + + + Symbols are supported in up to nine weights and three scales. + + + For optimal layout with text and other symbols, vertically align + + + symbols with the adjacent text. + + + + + + + + Margins + + + Leading and trailing margins on the left and right side of each symbol + + + can be adjusted by modifying the width of the blue rectangles. + + + Modifications are automatically applied proportionally to all + + + scales and weights. + + + + + + Exporting + + + Symbols should be outlined when exporting to ensure the + + + design is preserved when submitting to Xcode. + + + Template v.1.0 + + + Generated from circle + + + Typeset at 100 points + + + Small + + + Medium + + + Large + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 @@ + + + markBelowAsRead + + + + + + + Weight/Scale Variations + + + Ultralight + + + Thin + + + Light + + + Regular + + + Medium + + + Semibold + + + Bold + + + Heavy + + + Black + + + + + + + + + + + + + Design Variations + + + Symbols are supported in up to nine weights and three scales. + + + For optimal layout with text and other symbols, vertically align + + + symbols with the adjacent text. + + + + + + + + Margins + + + Leading and trailing margins on the left and right side of each symbol + + + can be adjusted by modifying the width of the blue rectangles. + + + Modifications are automatically applied proportionally to all + + + scales and weights. + + + + + + Exporting + + + Symbols should be outlined when exporting to ensure the + + + design is preserved when submitting to Xcode. + + + Template v.1.0 + + + Generated from circle + + + Typeset at 100 points + + + Small + + + Medium + + + Large + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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