From 016143e3063fb4917e74cd7ad8cdd56e4c225719 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sun, 18 Oct 2020 18:25:30 -0700 Subject: [PATCH 01/10] Bump version and build number for 5.0.5 TestFlight build. --- xcconfig/common/NetNewsWire_ios_target_common.xcconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xcconfig/common/NetNewsWire_ios_target_common.xcconfig b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig index 5069c364b..186ab57f8 100644 --- a/xcconfig/common/NetNewsWire_ios_target_common.xcconfig +++ b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig @@ -1,7 +1,7 @@ // High Level Settings common to both the iOS application and any extensions we bundle with it -MARKETING_VERSION = 5.0.4 -CURRENT_PROJECT_VERSION = 53 +MARKETING_VERSION = 5.0.5 +CURRENT_PROJECT_VERSION = 54 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon From def5d84647a17f3f771fa1a8da2ae47cebf9e434 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sun, 18 Oct 2020 18:39:22 -0700 Subject: [PATCH 02/10] Remove no-longer-used variable and fix warning. --- Frameworks/Account/LocalAccount/LocalAccountRefresher.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift b/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift index 3ed75b47a..cd088d720 100644 --- a/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift +++ b/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift @@ -98,7 +98,7 @@ extension LocalAccountRefresher: DownloadSessionDelegate { } func downloadSession(_ downloadSession: DownloadSession, shouldContinueAfterReceivingData data: Data, representedObject: AnyObject) -> Bool { - guard !isSuspended, let feed = representedObject as? WebFeed else { + guard !isSuspended else { return false } From 8dbe5691e3c6efe45701527e7f567f445f55ff4a Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 20 Oct 2020 13:45:28 -0500 Subject: [PATCH 03/10] Update the user interface style on the main thread. --- iOS/SceneDelegate.swift | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/iOS/SceneDelegate.swift b/iOS/SceneDelegate.swift index 0a4ffdf80..49c541090 100644 --- a/iOS/SceneDelegate.swift +++ b/iOS/SceneDelegate.swift @@ -111,13 +111,15 @@ private extension SceneDelegate { } func updateUserInterfaceStyle() { - switch AppDefaults.userInterfaceColorPalette { - case .automatic: - window!.overrideUserInterfaceStyle = .unspecified - case .light: - window!.overrideUserInterfaceStyle = .light - case .dark: - window!.overrideUserInterfaceStyle = .dark + DispatchQueue.main.async { + switch AppDefaults.userInterfaceColorPalette { + case .automatic: + self.window?.overrideUserInterfaceStyle = .unspecified + case .light: + self.window?.overrideUserInterfaceStyle = .light + case .dark: + self.window?.overrideUserInterfaceStyle = .dark + } } } From 64bb2e58e9b14a9dd4be9b3df2cc43b94afc655d Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 20 Oct 2020 13:51:24 -0500 Subject: [PATCH 04/10] Update to RSCore with image scaling fix --- submodules/RSCore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/RSCore b/submodules/RSCore index a175db500..d685c33ff 160000 --- a/submodules/RSCore +++ b/submodules/RSCore @@ -1 +1 @@ -Subproject commit a175db5009f8222fcbaa825d9501305e8727da6f +Subproject commit d685c33ffbc8a5350d376f44384c0ca3592507db From 6d9dcecd81faf4e88a3b0f25021f5bb10ed83f68 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sat, 24 Oct 2020 18:15:59 -0500 Subject: [PATCH 05/10] Prevent backgrounds from showing up when displaying symbol icons. Fixes #2523 --- Shared/Extensions/IconImage.swift | 6 ++++-- iOS/AppAssets.swift | 10 +++++----- iOS/IconView.swift | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Shared/Extensions/IconImage.swift b/Shared/Extensions/IconImage.swift index 1ddc2935d..1839b4abf 100644 --- a/Shared/Extensions/IconImage.swift +++ b/Shared/Extensions/IconImage.swift @@ -25,9 +25,11 @@ final class IconImage { }() let image: RSImage - - init(_ image: RSImage) { + let isSymbol: Bool + + init(_ image: RSImage, isSymbol: Bool = false) { self.image = image + self.isSymbol = isSymbol } } diff --git a/iOS/AppAssets.swift b/iOS/AppAssets.swift index 287e27b23..b982bc677 100644 --- a/iOS/AppAssets.swift +++ b/iOS/AppAssets.swift @@ -126,7 +126,7 @@ struct AppAssets { }() static var masterFolderImage: IconImage = { - return IconImage(UIImage(systemName: "folder.fill")!) + return IconImage(UIImage(systemName: "folder.fill")!, isSymbol: true) }() static var moreImage: UIImage = { @@ -158,7 +158,7 @@ struct AppAssets { }() static var searchFeedImage: IconImage = { - return IconImage(UIImage(systemName: "magnifyingglass")!) + return IconImage(UIImage(systemName: "magnifyingglass")!, isSymbol: true) }() static var secondaryAccentColor: UIColor = { @@ -190,7 +190,7 @@ struct AppAssets { }() static var starredFeedImage: IconImage = { - return IconImage(UIImage(systemName: "star.fill")!) + return IconImage(UIImage(systemName: "star.fill")!, isSymbol: true) }() static var tickMarkColor: UIColor = { @@ -203,7 +203,7 @@ struct AppAssets { }() static var todayFeedImage: IconImage = { - return IconImage(UIImage(systemName: "sun.max.fill")!) + return IconImage(UIImage(systemName: "sun.max.fill")!, isSymbol: true) }() static var trashImage: UIImage = { @@ -211,7 +211,7 @@ struct AppAssets { }() static var unreadFeedImage: IconImage = { - return IconImage(UIImage(systemName: "largecircle.fill.circle")!) + return IconImage(UIImage(systemName: "largecircle.fill.circle")!, isSymbol: true) }() static var vibrantTextColor: UIColor = { diff --git a/iOS/IconView.swift b/iOS/IconView.swift index 7ce9faf3f..0c3885a5b 100644 --- a/iOS/IconView.swift +++ b/iOS/IconView.swift @@ -52,7 +52,7 @@ final class IconView: UIView { } private var isSymbolImage: Bool { - return imageView.image?.isSymbolImage ?? false + return iconImage?.isSymbol ?? false } override init(frame: CGRect) { From f0f86953ae3ea5ee60ac6c128e8ca47497ca08bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kiel=20Gillard=20=F0=9F=A4=AA?= Date: Mon, 26 Oct 2020 10:27:36 +1100 Subject: [PATCH 06/10] iOS: Ingest a change of feed name on Feedly into NNW. #2520 --- ...yCreateFeedsForCollectionFoldersOperation.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Frameworks/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift b/Frameworks/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift index 264c046a1..b166d1e48 100644 --- a/Frameworks/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift +++ b/Frameworks/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift @@ -59,6 +59,20 @@ final class FeedlyCreateFeedsForCollectionFoldersOperation: FeedlyOperation { // find an existing feed previously added to the account if let feed = account.existingWebFeed(withWebFeedID: collectionFeed.id) { + + // If the feed was renamed on Feedly, ensure we ingest the new name. + if feed.nameForDisplay != collectionFeed.title { + feed.name = collectionFeed.title + + // Let the rest of the app (e.g.: the sidebar) know the feed name changed + // `editedName` would post this if its value is changing. + // Setting the `name` property has no side effects like this. + if feed.editedName != nil { + feed.editedName = nil + } else { + feed.postDisplayNameDidChangeNotification() + } + } return (feed, folder) } else { // find an existing feed we created below in an earlier value From 61a86a5ad4f4bc78f82bf685cd031697b7a55493 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Thu, 29 Oct 2020 12:01:27 -0500 Subject: [PATCH 07/10] Allow Feedbin credentials to be updated. Fixes #2533 --- iOS/Account/FeedbinAccountViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iOS/Account/FeedbinAccountViewController.swift b/iOS/Account/FeedbinAccountViewController.swift index c9c60d5e0..a8489abbd 100644 --- a/iOS/Account/FeedbinAccountViewController.swift +++ b/iOS/Account/FeedbinAccountViewController.swift @@ -81,7 +81,7 @@ class FeedbinAccountViewController: UITableViewController { // When you fill in the email address via auto-complete it adds extra whitespace let trimmedEmail = email.trimmingCharacters(in: .whitespaces) - guard !AccountManager.shared.duplicateServiceAccount(type: .feedbin, username: trimmedEmail) else { + guard account != nil || !AccountManager.shared.duplicateServiceAccount(type: .feedbin, username: trimmedEmail) else { showError(NSLocalizedString("There is already a Feedbin account with that username created.", comment: "Duplicate Error")) return } From 1d7af8e4b84528b5970e67909f9fc83bacc84b95 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Thu, 29 Oct 2020 19:41:51 -0700 Subject: [PATCH 08/10] Bump build number. --- xcconfig/common/NetNewsWire_ios_target_common.xcconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcconfig/common/NetNewsWire_ios_target_common.xcconfig b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig index 186ab57f8..a4d788c03 100644 --- a/xcconfig/common/NetNewsWire_ios_target_common.xcconfig +++ b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig @@ -1,7 +1,7 @@ // High Level Settings common to both the iOS application and any extensions we bundle with it MARKETING_VERSION = 5.0.5 -CURRENT_PROJECT_VERSION = 54 +CURRENT_PROJECT_VERSION = 55 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon From 5739c819af143bf78ae3f48d5e4194bd8d9e8540 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 30 Oct 2020 03:52:57 -0500 Subject: [PATCH 09/10] Fix logic test to determine if an image is symbol or not. Fixes #2523 --- iOS/IconView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iOS/IconView.swift b/iOS/IconView.swift index 0c3885a5b..a7d9f3e28 100644 --- a/iOS/IconView.swift +++ b/iOS/IconView.swift @@ -75,7 +75,7 @@ final class IconView: UIView { override func layoutSubviews() { imageView.setFrameIfNotEqual(rectForImageView()) - if (iconImage != nil && isVerticalBackgroundExposed && !isSymbolImage) || !isDisconcernable { + if !isSymbolImage && ((iconImage != nil && isVerticalBackgroundExposed) || !isDisconcernable) { backgroundColor = AppAssets.iconBackgroundColor } else { backgroundColor = nil From 9621021b9ca26737dc4a3f91f9c02826a8eaa022 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Fri, 30 Oct 2020 11:14:47 -0700 Subject: [PATCH 10/10] Bump build to 56. --- xcconfig/common/NetNewsWire_ios_target_common.xcconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcconfig/common/NetNewsWire_ios_target_common.xcconfig b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig index a4d788c03..7a5663a23 100644 --- a/xcconfig/common/NetNewsWire_ios_target_common.xcconfig +++ b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig @@ -1,7 +1,7 @@ // High Level Settings common to both the iOS application and any extensions we bundle with it MARKETING_VERSION = 5.0.5 -CURRENT_PROJECT_VERSION = 55 +CURRENT_PROJECT_VERSION = 56 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon