From 45e702501e748daeb2d71738b6683b25a72029d6 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 10:43:05 -0500 Subject: [PATCH 1/8] Change to set preferredColorScheme to nil which should make it automatic again (but doesn't) --- Multiplatform/Shared/MainApp.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index 79c0a7669..67b94e866 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -204,7 +204,7 @@ struct PreferredColorSchemeModifier: ViewModifier { func body(content: Content) -> some View { switch preferredColorScheme { case .automatic: - content + content.preferredColorScheme(nil) case .dark: content.preferredColorScheme(.dark) case .light: From 52a868ae7ddf9d17d9fbbded10a6a10458f9e095 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 10:45:12 -0500 Subject: [PATCH 2/8] Refactored PreferredColorSchemeModifier out into its own swift file --- Multiplatform/Shared/MainApp.swift | 17 ------------ .../PreferredColorSchemeModifier.swift | 27 +++++++++++++++++++ NetNewsWire.xcodeproj/project.pbxproj | 7 ++++- 3 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 Multiplatform/Shared/SwiftUI Extensions/PreferredColorSchemeModifier.swift diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index 67b94e866..eea77ae4c 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -195,20 +195,3 @@ struct MainApp: App { #endif } } - -struct PreferredColorSchemeModifier: ViewModifier { - - var preferredColorScheme: UserInterfaceColorPalette - - @ViewBuilder - func body(content: Content) -> some View { - switch preferredColorScheme { - case .automatic: - content.preferredColorScheme(nil) - case .dark: - content.preferredColorScheme(.dark) - case .light: - content.preferredColorScheme(.light) - } - } -} diff --git a/Multiplatform/Shared/SwiftUI Extensions/PreferredColorSchemeModifier.swift b/Multiplatform/Shared/SwiftUI Extensions/PreferredColorSchemeModifier.swift new file mode 100644 index 000000000..ba9a04d36 --- /dev/null +++ b/Multiplatform/Shared/SwiftUI Extensions/PreferredColorSchemeModifier.swift @@ -0,0 +1,27 @@ +// +// PreferredColorSchemeModifier.swift +// NetNewsWire +// +// Created by Maurice Parker on 7/3/20. +// Copyright © 2020 Ranchero Software. All rights reserved. +// + +import SwiftUI + +struct PreferredColorSchemeModifier: ViewModifier { + + var preferredColorScheme: UserInterfaceColorPalette + + @ViewBuilder + func body(content: Content) -> some View { + switch preferredColorScheme { + case .automatic: + content.preferredColorScheme(nil) + case .dark: + content.preferredColorScheme(.dark) + case .light: + content.preferredColorScheme(.light) + } + } + +} diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 541f202df..6931dca1d 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -214,6 +214,8 @@ 517A757A24451C0700B553B9 /* OAuthSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 517A755524451BD500B553B9 /* OAuthSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 517A757B24451C1500B553B9 /* OAuthSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 517A755324451BD500B553B9 /* OAuthSwift.framework */; }; 517A757C24451C1500B553B9 /* OAuthSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 517A755324451BD500B553B9 /* OAuthSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 5181C5AD24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5181C5AC24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift */; }; + 5181C5AE24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5181C5AC24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift */; }; 5183CCD0226E1E880010922C /* NonIntrinsicLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5183CCCF226E1E880010922C /* NonIntrinsicLabel.swift */; }; 5183CCDA226E31A50010922C /* NonIntrinsicImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5183CCD9226E31A50010922C /* NonIntrinsicImageView.swift */; }; 5183CCE5226F4DFA0010922C /* RefreshInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5183CCE4226F4DFA0010922C /* RefreshInterval.swift */; }; @@ -627,7 +629,6 @@ 6581C73D20CED60100F4AD34 /* SafariExtensionViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6581C73B20CED60100F4AD34 /* SafariExtensionViewController.xib */; }; 6581C74020CED60100F4AD34 /* netnewswire-subscribe-to-feed.js in Resources */ = {isa = PBXBuildFile; fileRef = 6581C73F20CED60100F4AD34 /* netnewswire-subscribe-to-feed.js */; }; 6581C74220CED60100F4AD34 /* ToolbarItemIcon.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6581C74120CED60100F4AD34 /* ToolbarItemIcon.pdf */; }; - 65CBAD3624AE02D50006DD91 /* TimelineLayoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B223DB24AC24D2001E4592 /* TimelineLayoutView.swift */; }; 65CBAD5A24AE03C20006DD91 /* ColorPaletteContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65CBAD5924AE03C20006DD91 /* ColorPaletteContainerView.swift */; }; 65ED3FB7235DEF6C0081F399 /* ArticleArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F204DF1FAACBB30076E152 /* ArticleArray.swift */; }; 65ED3FB8235DEF6C0081F399 /* CrashReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848B937121C8C5540038DC0D /* CrashReporter.swift */; }; @@ -1837,6 +1838,7 @@ 517630222336657E00E15FFF /* WebViewProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewProvider.swift; sourceTree = ""; }; 517A745A2443665000B553B9 /* UIPageViewController-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIPageViewController-Extensions.swift"; sourceTree = ""; }; 517A754424451BD500B553B9 /* OAuthSwift.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OAuthSwift.xcodeproj; path = submodules/OAuthSwift/OAuthSwift.xcodeproj; sourceTree = ""; }; + 5181C5AC24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferredColorSchemeModifier.swift; sourceTree = ""; }; 5183CCCF226E1E880010922C /* NonIntrinsicLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonIntrinsicLabel.swift; sourceTree = ""; }; 5183CCD9226E31A50010922C /* NonIntrinsicImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonIntrinsicImageView.swift; sourceTree = ""; }; 5183CCE4226F4DFA0010922C /* RefreshInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefreshInterval.swift; sourceTree = ""; }; @@ -2561,6 +2563,7 @@ isa = PBXGroup; children = ( 514E6C0524AD2B5F00AC6F6E /* Image-Extensions.swift */, + 5181C5AC24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift */, ); path = "SwiftUI Extensions"; sourceTree = ""; @@ -4813,6 +4816,7 @@ 51E4996924A8760C00B667CB /* ArticleStylesManager.swift in Sources */, 51E498F324A8085D00B667CB /* PseudoFeed.swift in Sources */, 51A5769624AE617200078888 /* ArticleContainerView.swift in Sources */, + 5181C5AD24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift in Sources */, 51E4996B24A8762D00B667CB /* ArticleExtractor.swift in Sources */, 51E49A0324A91FF600B667CB /* SceneNavigationView.swift in Sources */, 51E4990124A808BB00B667CB /* FaviconURLFinder.swift in Sources */, @@ -4897,6 +4901,7 @@ 51E4994F24A8734C00B667CB /* TwitterFeedProvider-Extensions.swift in Sources */, 51E498CA24A8085D00B667CB /* SmartFeedDelegate.swift in Sources */, 51E4990524A808C300B667CB /* FeaturedImageDownloader.swift in Sources */, + 5181C5AE24AF89B1002E0F70 /* PreferredColorSchemeModifier.swift in Sources */, 51E4991624A8090300B667CB /* ArticleUtilities.swift in Sources */, 51919FF224AB864A00541E64 /* TimelineModel.swift in Sources */, 51E4991A24A8090F00B667CB /* IconImage.swift in Sources */, From c761a083b5b64d44cf342de3590723d50cc30fec Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 12:21:08 -0500 Subject: [PATCH 3/8] Add Timeline vertical padding for macOS --- Multiplatform/Shared/Timeline/TimelineItemView.swift | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Multiplatform/Shared/Timeline/TimelineItemView.swift b/Multiplatform/Shared/Timeline/TimelineItemView.swift index 1e1a25ae8..252ef97ac 100644 --- a/Multiplatform/Shared/Timeline/TimelineItemView.swift +++ b/Multiplatform/Shared/Timeline/TimelineItemView.swift @@ -14,7 +14,14 @@ struct TimelineItemView: View { @StateObject var articleIconImageLoader = ArticleIconImageLoader() var timelineItem: TimelineItem - + + #if os(macOS) + var verticalPadding: CGFloat = 10 + #endif + #if os(iOS) + var verticalPadding: CGFloat = 0 + #endif + var body: some View { VStack { HStack(alignment: .top) { @@ -46,6 +53,7 @@ struct TimelineItemView: View { } } } + .padding(.vertical, verticalPadding) .onAppear { articleIconImageLoader.loadImage(for: timelineItem.article) } From dd9dca57defc677a8ecfbb9b721a2767d9a82ecf Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 19:19:40 -0500 Subject: [PATCH 4/8] Update design to more closely match the existing iOS design and Big Sur look and feel --- Multiplatform/Shared/AppAssets.swift | 136 +++++++++++++----- .../AccentColor.colorset/Contents.json | 6 +- .../MarkAllAsReadPDF.imageset/Contents.json | 16 +++ .../MarkAllAsReadPDF.pdf | Bin 0 -> 4179 bytes .../StarColor.colorset/Contents.json | 20 +++ .../markAllAsRead.symbolset/markAllAsRead.svg | 9 +- Multiplatform/Shared/MainApp.swift | 45 +++--- .../Shared/Sidebar/SidebarToolbar.swift | 11 +- .../Timeline/TimelineItemStatusView.swift | 2 - .../Contents.json | 28 ++-- .../starColor.colorset/Contents.json | 20 +-- 11 files changed, 199 insertions(+), 94 deletions(-) create mode 100644 Multiplatform/Shared/Assets.xcassets/MarkAllAsReadPDF.imageset/Contents.json create mode 100644 Multiplatform/Shared/Assets.xcassets/MarkAllAsReadPDF.imageset/MarkAllAsReadPDF.pdf create mode 100644 Multiplatform/Shared/Assets.xcassets/StarColor.colorset/Contents.json diff --git a/Multiplatform/Shared/AppAssets.swift b/Multiplatform/Shared/AppAssets.swift index b6930bb34..b31a55a7a 100644 --- a/Multiplatform/Shared/AppAssets.swift +++ b/Multiplatform/Shared/AppAssets.swift @@ -13,70 +13,102 @@ import Account struct AppAssets { static var accountLocalMacImage: RSImage! = { - return RSImage(named: "accountLocalMac") + return RSImage(named: "AccountLocalMac") }() static var accountLocalPadImage: RSImage = { - return RSImage(named: "accountLocalPad")! + return RSImage(named: "AccountLocalPad")! }() static var accountLocalPhoneImage: RSImage = { - return RSImage(named: "accountLocalPhone")! + return RSImage(named: "AccountLocalPhone")! }() static var accountCloudKitImage: RSImage = { - return RSImage(named: "accountCloudKit")! + return RSImage(named: "AccountCloudKit")! }() static var accountFeedbinImage: RSImage = { - return RSImage(named: "accountFeedbin")! + return RSImage(named: "AccountFeedbin")! }() static var accountFeedlyImage: RSImage = { - return RSImage(named: "accountFeedly")! + return RSImage(named: "AccountFeedly")! }() static var accountFeedWranglerImage: RSImage = { - return RSImage(named: "accountFeedWrangler")! + return RSImage(named: "AccountFeedWrangler")! }() static var accountFreshRSSImage: RSImage = { - return RSImage(named: "accountFreshRSS")! + return RSImage(named: "AccountFreshRSS")! }() static var accountNewsBlurImage: RSImage = { - return RSImage(named: "accountNewsBlur")! + return RSImage(named: "AccountNewsBlur")! }() + static var addMenuImage: Image = { + return Image(systemName: "plus") + }() + static var extensionPointMarsEdit: RSImage = { - return RSImage(named: "extensionPointMarsEdit")! + return RSImage(named: "ExtensionPointMarsEdit")! }() static var extensionPointMicroblog: RSImage = { - return RSImage(named: "extensionPointMicroblog")! + return RSImage(named: "ExtensionPointMicroblog")! }() static var extensionPointReddit: RSImage = { - return RSImage(named: "extensionPointReddit")! + return RSImage(named: "ExtensionPointReddit")! }() static var extensionPointTwitter: RSImage = { - return RSImage(named: "extensionPointTwitter")! + return RSImage(named: "ExtensionPointTwitter")! }() static var faviconTemplateImage: RSImage = { - return RSImage(named: "faviconTemplateImage")! + return RSImage(named: "FaviconTemplateImage")! }() - static var masterFolderImage: IconImage = { + static var settingsImage: Image = { + return Image(systemName: "gear") + }() + + static var masterFolderImage: IconImage { #if os(macOS) - return IconImage(NSImage(systemSymbolName: "folder.fill", accessibilityDescription: nil)!) + let image = NSImage(systemSymbolName: "folder.fill", accessibilityDescription: nil)! + let coloredImage = image.tinted(with: NSColor(named: "AccentColor")!) + return IconImage(coloredImage) #endif #if os(iOS) - return IconImage(UIImage(systemName: "folder.fill")!) + let image = UIImage(systemName: "folder.fill")! + let coloredImage = image.tinted(color: UIColor(named: "AccentColor")!)! + return IconImage(coloredImage) #endif + } + + static var markAllAsReadImage: Image = { + return Image("MarkAllAsRead") }() + static var markAllAsReadImagePDF: Image = { + return Image("MarkAllAsReadPDF") + }() + + static var nextUnreadArticleImage: Image = { + return Image(systemName: "chevron.down.circle") + }() + + static var openInBrowserImage: Image = { + return Image(systemName: "safari") + }() + + static var refreshImage: Image = { + return Image(systemName: "arrow.clockwise") + }() + static var searchFeedImage: IconImage = { #if os(macOS) return IconImage(NSImage(systemSymbolName: "magnifyingglass", accessibilityDescription: nil)!) @@ -86,6 +118,10 @@ struct AppAssets { #endif }() + static var shareImage: Image = { + Image(systemName: "square.and.arrow.up") + }() + static var smartFeedImage: RSImage = { #if os(macOS) return NSImage(systemSymbolName: "gear", accessibilityDescription: nil)! @@ -97,40 +133,76 @@ struct AppAssets { static var starredFeedImage: IconImage = { #if os(macOS) - return IconImage(NSImage(systemSymbolName: "star.fill", accessibilityDescription: nil)!) + let image = NSImage(systemSymbolName: "star.fill", accessibilityDescription: nil)! + let coloredImage = image.tinted(with: NSColor(named: "StarColor")!) + return IconImage(coloredImage) #endif #if os(iOS) - return IconImage(UIImage(systemName: "star.fill")!) + let image = UIImage(systemName: "star.fill")! + let coloredImage = image.tinted(color: UIColor(named: "StarColor")!)! + return IconImage(coloredImage) #endif }() static var timelineStarred: Image = { - return Image(systemName: "star.fill") - + #if os(macOS) + let image = NSImage(systemSymbolName: "star.fill", accessibilityDescription: nil)! + let coloredImage = image.tinted(with: NSColor(named: "StarColor")!) + return Image(nsImage: coloredImage) + #endif + #if os(iOS) + let image = UIImage(systemName: "star.fill")! + let coloredImage = image.tinted(color: UIColor(named: "StarColor")!)! + return Image(uiImage: coloredImage) + #endif }() - static var timelineUnread: Image = { - return Image(systemName: "circle.fill") - - }() + static var timelineUnread: Image { + #if os(macOS) + let image = NSImage(systemSymbolName: "circle.fill", accessibilityDescription: nil)! + let coloredImage = image.tinted(with: NSColor(named: "AccentColor")!) + return Image(nsImage: coloredImage) + #endif + #if os(iOS) + let image = UIImage(systemName: "circle.fill")! + let coloredImage = image.tinted(color: UIColor(named: "AccentColor")!)! + return Image(uiImage: coloredImage) + #endif + } static var todayFeedImage: IconImage = { #if os(macOS) - return IconImage(NSImage(systemSymbolName: "sun.max.fill", accessibilityDescription: nil)!) + let image = NSImage(systemSymbolName: "sun.max.fill", accessibilityDescription: nil)! + let coloredImage = image.tinted(with: .orange) + return IconImage(coloredImage) #endif #if os(iOS) - return IconImage(UIImage(systemName: "sun.max.fill")!) + let image = UIImage(systemName: "sun.max.fill")! + let coloredImage = image.tinted(color: .orange)! + return IconImage(coloredImage) #endif }() - - static var unreadFeedImage: IconImage = { + + static var toggleStarred: Image = { + return Image(systemName: "star.fill") + }() + + static var toggleRead: Image = { + return Image(systemName: "largecircle.fill.circle") + }() + + static var unreadFeedImage: IconImage { #if os(macOS) - return IconImage(NSImage(systemSymbolName: "largecircle.fill.circle", accessibilityDescription: nil)!) + let image = NSImage(systemSymbolName: "largecircle.fill.circle", accessibilityDescription: nil)! + let coloredImage = image.tinted(with: NSColor(named: "AccentColor")!) + return IconImage(coloredImage) #endif #if os(iOS) - return IconImage(UIImage(systemName: "largecircle.fill.circle")!) + let image = UIImage(systemName: "largecircle.fill.circle")! + let coloredImage = image.tinted(color: UIColor(named: "AccentColor")!)! + return IconImage(coloredImage) #endif - }() + } static func image(for accountType: AccountType) -> RSImage? { switch accountType { diff --git a/Multiplatform/Shared/Assets.xcassets/AccentColor.colorset/Contents.json b/Multiplatform/Shared/Assets.xcassets/AccentColor.colorset/Contents.json index bf3d625ad..4f1440c52 100644 --- a/Multiplatform/Shared/Assets.xcassets/AccentColor.colorset/Contents.json +++ b/Multiplatform/Shared/Assets.xcassets/AccentColor.colorset/Contents.json @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0.945", - "green" : "0.502", - "red" : "0.176" + "blue" : "0.957", + "green" : "0.620", + "red" : "0.369" } }, "idiom" : "universal" diff --git a/Multiplatform/Shared/Assets.xcassets/MarkAllAsReadPDF.imageset/Contents.json b/Multiplatform/Shared/Assets.xcassets/MarkAllAsReadPDF.imageset/Contents.json new file mode 100644 index 000000000..f23296bcc --- /dev/null +++ b/Multiplatform/Shared/Assets.xcassets/MarkAllAsReadPDF.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "MarkAllAsReadPDF.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Multiplatform/Shared/Assets.xcassets/MarkAllAsReadPDF.imageset/MarkAllAsReadPDF.pdf b/Multiplatform/Shared/Assets.xcassets/MarkAllAsReadPDF.imageset/MarkAllAsReadPDF.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e2a044d563efa11c16626ef66db1589a2f15e443 GIT binary patch literal 4179 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 - - Untitled + + markAllAsRead Created with Sketch. @@ -136,6 +136,11 @@ + + + + + diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index 547b3f8a9..e011aeca0 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -34,61 +34,60 @@ struct MainApp: App { } .toolbar { - ToolbarItem { + ToolbarItem() { Button(action: { showSheet = true }, label: { - Image(systemName: "plus").foregroundColor(.secondary) + AppAssets.addMenuImage }).help("Add Feed") } ToolbarItem { Button(action: {}, label: { - Image(systemName: "folder.fill.badge.plus").foregroundColor(.pink) - }).help("New Folder") - } - - ToolbarItem { - Button(action: {}, label: { - Image(systemName: "arrow.clockwise").foregroundColor(.secondary) + AppAssets.refreshImage }).help("Refresh").padding(.trailing, 40) } - + ToolbarItem { Button(action: {}, label: { - Image(systemName: "circle.dashed").foregroundColor(.orange) + AppAssets.markAllAsReadImagePDF + .resizable() + .scaledToFit() + .frame(width: 20, height: 20, alignment: .center) }).help("Mark All as Read") } ToolbarItem { - Button(action: {}, label: { - Image(systemName: "arrow.triangle.turn.up.right.circle.fill").foregroundColor(.purple) - }).help("Go to Next Unread") + MacSearchField() + .frame(width: 200) } - + ToolbarItem { Button(action: {}, label: { - Image(systemName: "star.fill").foregroundColor(.yellow) + AppAssets.nextUnreadArticleImage + }).help("Go to Next Unread").padding(.trailing, 40) + } + + ToolbarItem { + Button(action: {}, label: { + AppAssets.toggleStarred }).help("Mark as Starred") } ToolbarItem { Button(action: {}, label: { - Image(systemName: "checkmark.circle.fill").foregroundColor(.green) + AppAssets.toggleRead }).help("Mark as Unread") } ToolbarItem { Button(action: {}, label: { - Image(systemName: "safari").foregroundColor(.blue) + AppAssets.openInBrowserImage }).help("Open in Browser") } ToolbarItem { Button(action: {}, label: { - Image(systemName: "square.and.arrow.up") + AppAssets.shareImage }).help("Share") } - ToolbarItem { - MacSearchField() - .frame(width: 300) - } + } } .commands { diff --git a/Multiplatform/Shared/Sidebar/SidebarToolbar.swift b/Multiplatform/Shared/Sidebar/SidebarToolbar.swift index 9aec8c5c8..90d4a7e39 100644 --- a/Multiplatform/Shared/Sidebar/SidebarToolbar.swift +++ b/Multiplatform/Shared/Sidebar/SidebarToolbar.swift @@ -22,19 +22,14 @@ fileprivate class SidebarToolbarViewModel: ObservableObject { } @Published var showActionSheet: Bool = false @Published var showAddSheet: Bool = false + } - struct SidebarToolbar: View { @EnvironmentObject private var appSettings: AppDefaults @StateObject private var viewModel = SidebarToolbarViewModel() - - var addActionSheetButtons = [ - Button(action: {}, label: { Text("Add Feed") }) - ] - var body: some View { VStack { Divider() @@ -42,7 +37,7 @@ struct SidebarToolbar: View { Button(action: { viewModel.sheetToShow = .settings }, label: { - Image(systemName: "gear") + AppAssets.settingsImage .font(.title3) .foregroundColor(.accentColor) }).help("Settings") @@ -58,7 +53,7 @@ struct SidebarToolbar: View { Button(action: { viewModel.showActionSheet = true }, label: { - Image(systemName: "plus") + AppAssets.addMenuImage .font(.title3) .foregroundColor(.accentColor) }) diff --git a/Multiplatform/Shared/Timeline/TimelineItemStatusView.swift b/Multiplatform/Shared/Timeline/TimelineItemStatusView.swift index bef9ff233..0db428879 100644 --- a/Multiplatform/Shared/Timeline/TimelineItemStatusView.swift +++ b/Multiplatform/Shared/Timeline/TimelineItemStatusView.swift @@ -19,12 +19,10 @@ struct TimelineItemStatusView: View { .resizable() .frame(width: 8, height: 8, alignment: .center) .padding(.all, 2) - .foregroundColor(.accentColor) case .showStar: AppAssets.timelineStarred .resizable() .frame(width: 10, height: 10, alignment: .center) - .foregroundColor(.yellow) case .showNone: AppAssets.timelineUnread .resizable() diff --git a/iOS/Resources/Assets.xcassets/secondaryAccentColor.colorset/Contents.json b/iOS/Resources/Assets.xcassets/secondaryAccentColor.colorset/Contents.json index 750f4b573..b94873d3d 100644 --- a/iOS/Resources/Assets.xcassets/secondaryAccentColor.colorset/Contents.json +++ b/iOS/Resources/Assets.xcassets/secondaryAccentColor.colorset/Contents.json @@ -1,23 +1,18 @@ { - "info" : { - "version" : 1, - "author" : "xcode" - }, "colors" : [ { - "idiom" : "universal", "color" : { "color-space" : "srgb", "components" : { - "red" : "0x08", "alpha" : "1.000", "blue" : "0xEE", - "green" : "0x6A" + "green" : "0x6A", + "red" : "0x08" } - } + }, + "idiom" : "universal" }, { - "idiom" : "universal", "appearances" : [ { "appearance" : "luminosity", @@ -27,12 +22,17 @@ "color" : { "color-space" : "srgb", "components" : { - "red" : "0x5E", "alpha" : "1.000", "blue" : "0xF4", - "green" : "0x9E" + "green" : "0x9E", + "red" : "0x5E" } - } + }, + "idiom" : "universal" } - ] -} \ No newline at end of file + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOS/Resources/Assets.xcassets/starColor.colorset/Contents.json b/iOS/Resources/Assets.xcassets/starColor.colorset/Contents.json index b1d4071d7..4811237e1 100644 --- a/iOS/Resources/Assets.xcassets/starColor.colorset/Contents.json +++ b/iOS/Resources/Assets.xcassets/starColor.colorset/Contents.json @@ -1,20 +1,20 @@ { - "info" : { - "version" : 1, - "author" : "xcode" - }, "colors" : [ { - "idiom" : "universal", "color" : { "color-space" : "srgb", "components" : { - "red" : "249", "alpha" : "1.000", "blue" : "52", - "green" : "198" + "green" : "198", + "red" : "249" } - } + }, + "idiom" : "universal" } - ] -} \ No newline at end of file + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} From 217d1ac88080ccdcddee0be47ccbb374f8723eac Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 19:29:25 -0500 Subject: [PATCH 5/8] Changed add button to be a menu. --- Multiplatform/Shared/MainApp.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index e011aeca0..1be5b3720 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -35,9 +35,14 @@ struct MainApp: App { .toolbar { ToolbarItem() { - Button(action: { showSheet = true }, label: { + Menu { + Button("Add Web Feed", action: { showSheet = true }) + Button("Add Reddit Feed", action: { }) + Button("Add Twitter Feed", action: { }) + Button("Add Folder", action: { }) + } label : { AppAssets.addMenuImage - }).help("Add Feed") + } } ToolbarItem { From 4393e54a5cceb1014c94ae0315ccc10d7f63efc5 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 19:41:38 -0500 Subject: [PATCH 6/8] Fix unread indicator color --- Multiplatform/Shared/AppAssets.swift | 8 ++++++++ .../Contents.json | 20 +++++++++++++++++++ .../Contents.json | 20 +++++++++++++++++++ .../Shared/Sidebar/UnreadCountView.swift | 3 ++- .../NSAttributedString+NetNewsWire.swift | 1 - 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountBackground.colorset/Contents.json create mode 100644 Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountForeground.colorset/Contents.json diff --git a/Multiplatform/Shared/AppAssets.swift b/Multiplatform/Shared/AppAssets.swift index b31a55a7a..3ca181288 100644 --- a/Multiplatform/Shared/AppAssets.swift +++ b/Multiplatform/Shared/AppAssets.swift @@ -118,6 +118,14 @@ struct AppAssets { #endif }() + static var sidebarUnreadCountBackground: Color = { + return Color("SidebarUnreadCountBackground") + }() + + static var sidebarUnreadCountForeground: Color = { + return Color("SidebarUnreadCountForeground") + }() + static var shareImage: Image = { Image(systemName: "square.and.arrow.up") }() diff --git a/Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountBackground.colorset/Contents.json b/Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountBackground.colorset/Contents.json new file mode 100644 index 000000000..ceb10be63 --- /dev/null +++ b/Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountBackground.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.500", + "blue" : "0.000", + "green" : "0.000", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountForeground.colorset/Contents.json b/Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountForeground.colorset/Contents.json new file mode 100644 index 000000000..91ae93460 --- /dev/null +++ b/Multiplatform/Shared/Assets.xcassets/SidebarUnreadCountForeground.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.900", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Multiplatform/Shared/Sidebar/UnreadCountView.swift b/Multiplatform/Shared/Sidebar/UnreadCountView.swift index f1c760bfd..c46bc88f5 100644 --- a/Multiplatform/Shared/Sidebar/UnreadCountView.swift +++ b/Multiplatform/Shared/Sidebar/UnreadCountView.swift @@ -17,7 +17,8 @@ struct UnreadCountView: View { .font(.footnote) .padding(.horizontal, 7) .padding(.vertical, 1) - .background(SwiftUI.Color.gray.opacity(0.5)) + .background(AppAssets.sidebarUnreadCountBackground) + .foregroundColor(AppAssets.sidebarUnreadCountForeground) .cornerRadius(8) } } diff --git a/Shared/Extensions/NSAttributedString+NetNewsWire.swift b/Shared/Extensions/NSAttributedString+NetNewsWire.swift index 4037b2489..0d028a283 100644 --- a/Shared/Extensions/NSAttributedString+NetNewsWire.swift +++ b/Shared/Extensions/NSAttributedString+NetNewsWire.swift @@ -12,7 +12,6 @@ import RSParser import AppKit typealias Font = NSFont typealias FontDescriptor = NSFontDescriptor -typealias Color = NSColor private let boldTrait = NSFontDescriptor.SymbolicTraits.bold private let italicTrait = NSFontDescriptor.SymbolicTraits.italic From 6b45a72707648d472c18cdb6d7da26ebf80e295a Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 20:03:36 -0500 Subject: [PATCH 7/8] Change unread indicator font and weight to match existing iOS parameters --- Multiplatform/Shared/Sidebar/UnreadCountView.swift | 3 ++- Shared/Extensions/NSAttributedString+NetNewsWire.swift | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Multiplatform/Shared/Sidebar/UnreadCountView.swift b/Multiplatform/Shared/Sidebar/UnreadCountView.swift index c46bc88f5..72cf9d5ec 100644 --- a/Multiplatform/Shared/Sidebar/UnreadCountView.swift +++ b/Multiplatform/Shared/Sidebar/UnreadCountView.swift @@ -14,7 +14,8 @@ struct UnreadCountView: View { var body: some View { Text(verbatim: String(count)) - .font(.footnote) + .font(.caption) + .fontWeight(.bold) .padding(.horizontal, 7) .padding(.vertical, 1) .background(AppAssets.sidebarUnreadCountBackground) diff --git a/Shared/Extensions/NSAttributedString+NetNewsWire.swift b/Shared/Extensions/NSAttributedString+NetNewsWire.swift index 0d028a283..f778dfb75 100644 --- a/Shared/Extensions/NSAttributedString+NetNewsWire.swift +++ b/Shared/Extensions/NSAttributedString+NetNewsWire.swift @@ -20,7 +20,6 @@ private let monoSpaceTrait = NSFontDescriptor.SymbolicTraits.monoSpace import UIKit typealias Font = UIFont typealias FontDescriptor = UIFontDescriptor -typealias Color = UIColor private let boldTrait = UIFontDescriptor.SymbolicTraits.traitBold private let italicTrait = UIFontDescriptor.SymbolicTraits.traitItalic From b28fc913af86ff0b36e882f0d4752ef4acad42c8 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 3 Jul 2020 20:23:41 -0500 Subject: [PATCH 8/8] Renamed because we just call out view models Models --- ...dViewModel.swift => AddWebFeedModel.swift} | 4 +-- Multiplatform/Shared/Add/AddWebFeedView.swift | 2 +- NetNewsWire.xcodeproj/project.pbxproj | 34 +++++++++---------- 3 files changed, 20 insertions(+), 20 deletions(-) rename Multiplatform/Shared/Add/{AddWebFeedViewModel.swift => AddWebFeedModel.swift} (97%) diff --git a/Multiplatform/Shared/Add/AddWebFeedViewModel.swift b/Multiplatform/Shared/Add/AddWebFeedModel.swift similarity index 97% rename from Multiplatform/Shared/Add/AddWebFeedViewModel.swift rename to Multiplatform/Shared/Add/AddWebFeedModel.swift index a8f7a5280..1520d312e 100644 --- a/Multiplatform/Shared/Add/AddWebFeedViewModel.swift +++ b/Multiplatform/Shared/Add/AddWebFeedModel.swift @@ -1,5 +1,5 @@ // -// AddWebFeedViewModel.swift +// AddWebFeedModel.swift // NetNewsWire // // Created by Stuart Breckenridge on 4/7/20. @@ -30,7 +30,7 @@ enum AddWebFeedError: LocalizedError { } -class AddWebFeedViewModel: ObservableObject { +class AddWebFeedModel: ObservableObject { @Published var shouldDismiss: Bool = false @Published var providedURL: String = "" diff --git a/Multiplatform/Shared/Add/AddWebFeedView.swift b/Multiplatform/Shared/Add/AddWebFeedView.swift index 692484e4f..fa9fb33b6 100644 --- a/Multiplatform/Shared/Add/AddWebFeedView.swift +++ b/Multiplatform/Shared/Add/AddWebFeedView.swift @@ -14,7 +14,7 @@ import RSCore struct AddWebFeedView: View { @Environment(\.presentationMode) private var presentationMode - @ObservedObject private var viewModel = AddWebFeedViewModel() + @ObservedObject private var viewModel = AddWebFeedModel() @ViewBuilder var body: some View { #if os(iOS) diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 56f3cdc60..dfe9076e6 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 17930ED524AF10EE00A9BA52 /* AddWebFeedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17930ED324AF10EE00A9BA52 /* AddWebFeedView.swift */; }; 179DB1DFBCF9177104B12E0F /* AccountsNewsBlurWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 179DBBA2B22A659F81EED6F9 /* AccountsNewsBlurWindowController.swift */; }; 179DB3CE822BFCC2D774D9F4 /* AccountsNewsBlurWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 179DBBA2B22A659F81EED6F9 /* AccountsNewsBlurWindowController.swift */; }; - 17D232A824AFF10A0005F075 /* AddWebFeedViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17D232A724AFF10A0005F075 /* AddWebFeedViewModel.swift */; }; - 17D232A924AFF10A0005F075 /* AddWebFeedViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17D232A724AFF10A0005F075 /* AddWebFeedViewModel.swift */; }; + 17D232A824AFF10A0005F075 /* AddWebFeedModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17D232A724AFF10A0005F075 /* AddWebFeedModel.swift */; }; + 17D232A924AFF10A0005F075 /* AddWebFeedModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17D232A724AFF10A0005F075 /* AddWebFeedModel.swift */; }; 3B3A32A5238B820900314204 /* FeedWranglerAccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B3A328B238B820900314204 /* FeedWranglerAccountViewController.swift */; }; 3B826DCB2385C84800FC1ADB /* AccountsFeedWrangler.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3B826DB02385C84800FC1ADB /* AccountsFeedWrangler.xib */; }; 3B826DCC2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */; }; @@ -1730,7 +1730,7 @@ 17930ED324AF10EE00A9BA52 /* AddWebFeedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddWebFeedView.swift; sourceTree = ""; }; 179DBBA2B22A659F81EED6F9 /* AccountsNewsBlurWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsNewsBlurWindowController.swift; sourceTree = ""; }; 17B223DB24AC24D2001E4592 /* TimelineLayoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineLayoutView.swift; sourceTree = ""; }; - 17D232A724AFF10A0005F075 /* AddWebFeedViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddWebFeedViewModel.swift; sourceTree = ""; }; + 17D232A724AFF10A0005F075 /* AddWebFeedModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddWebFeedModel.swift; sourceTree = ""; }; 3B3A328B238B820900314204 /* FeedWranglerAccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeedWranglerAccountViewController.swift; sourceTree = ""; }; 3B826DB02385C84800FC1ADB /* AccountsFeedWrangler.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsFeedWrangler.xib; sourceTree = ""; }; 3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsFeedWranglerWindowController.swift; sourceTree = ""; }; @@ -2411,7 +2411,7 @@ 17930ED224AF10CD00A9BA52 /* Add */ = { isa = PBXGroup; children = ( - 17D232A724AFF10A0005F075 /* AddWebFeedViewModel.swift */, + 17D232A724AFF10A0005F075 /* AddWebFeedModel.swift */, 17930ED324AF10EE00A9BA52 /* AddWebFeedView.swift */, ); path = Add; @@ -3972,46 +3972,46 @@ TargetAttributes = { 51314636235A7BBE00387FDC = { CreatedOnToolsVersion = 11.2; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; LastSwiftMigration = 1120; ProvisioningStyle = Automatic; }; 513C5CE5232571C2003D4054 = { CreatedOnToolsVersion = 11.0; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; }; 518B2ED12351B3DD00400001 = { CreatedOnToolsVersion = 11.2; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; TestTargetID = 840D617B2029031C009BC708; }; 51C0513C24A77DF800194D5E = { CreatedOnToolsVersion = 12.0; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; }; 51C0514324A77DF800194D5E = { CreatedOnToolsVersion = 12.0; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; }; 6581C73220CED60000F4AD34 = { - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; }; 65ED3FA2235DEF6C0081F399 = { - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; }; 65ED4090235DEF770081F399 = { - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; }; 840D617B2029031C009BC708 = { CreatedOnToolsVersion = 9.3; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.BackgroundModes = { @@ -4021,7 +4021,7 @@ }; 849C645F1ED37A5D003D8FC0 = { CreatedOnToolsVersion = 8.2.1; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.HardenedRuntime = { @@ -4031,7 +4031,7 @@ }; 849C64701ED37A5D003D8FC0 = { CreatedOnToolsVersion = 8.2.1; - DevelopmentTeam = FQLBNX3GP7; + DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; TestTargetID = 849C645F1ED37A5D003D8FC0; }; @@ -4845,7 +4845,7 @@ 51A576BE24AE637400078888 /* ArticleView.swift in Sources */, 51E4995324A8734D00B667CB /* RedditFeedProvider-Extensions.swift in Sources */, 172199C924AB228900A31D04 /* SettingsView.swift in Sources */, - 17D232A824AFF10A0005F075 /* AddWebFeedViewModel.swift in Sources */, + 17D232A824AFF10A0005F075 /* AddWebFeedModel.swift in Sources */, 51E4994224A8713C00B667CB /* ArticleStatusSyncTimer.swift in Sources */, 51E498F624A8085D00B667CB /* SearchFeedDelegate.swift in Sources */, 51E498F224A8085D00B667CB /* SmartFeedsController.swift in Sources */, @@ -4920,7 +4920,7 @@ 51E4992224A8095600B667CB /* URL-Extensions.swift in Sources */, 51E4990424A808C300B667CB /* WebFeedIconDownloader.swift in Sources */, 51E498CB24A8085D00B667CB /* TodayFeedDelegate.swift in Sources */, - 17D232A924AFF10A0005F075 /* AddWebFeedViewModel.swift in Sources */, + 17D232A924AFF10A0005F075 /* AddWebFeedModel.swift in Sources */, 51E4993324A867E700B667CB /* AppNotifications.swift in Sources */, 51E4990624A808C300B667CB /* ImageDownloader.swift in Sources */, 51E4994F24A8734C00B667CB /* TwitterFeedProvider-Extensions.swift in Sources */,