diff --git a/LockScreenWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/LockScreenWidget/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index 3e6643afa..000000000 --- a/LockScreenWidget/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0.933", - "green" : "0.416", - "red" : "0.031" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "display-p3", - "components" : { - "alpha" : "1.000", - "blue" : "0.929", - "green" : "0.611", - "red" : "0.426" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 8fd2ff09d..000000000 --- a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "images" : [ - { - "filename" : "icon-41.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "icon-60.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "filename" : "icon-58.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "icon-87.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "icon-80.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "icon-121.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "filename" : "icon-120.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "filename" : "icon-180.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "filename" : "icon-20.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "filename" : "icon-42.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "icon-29.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "filename" : "icon-59.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "icon-40.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "filename" : "icon-81.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "icon-76.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "filename" : "icon-152.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "filename" : "icon-167.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "filename" : "icon-1024.png", - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-1024.png deleted file mode 100644 index c2bb5d540..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-1024.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-120.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-120.png deleted file mode 100644 index 6d1a94fd9..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-120.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-121.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-121.png deleted file mode 100644 index 6d1a94fd9..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-121.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-152.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-152.png deleted file mode 100644 index b217d09c4..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-152.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-167.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-167.png deleted file mode 100644 index 4cd8fa6c0..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-167.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-180.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-180.png deleted file mode 100644 index 8c5c93b8c..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-180.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-20.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-20.png deleted file mode 100644 index 6be295367..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-20.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-29.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-29.png deleted file mode 100644 index c9c8ffb32..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-29.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-40.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-40.png deleted file mode 100644 index 180a98b25..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-40.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-41.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-41.png deleted file mode 100644 index 180a98b25..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-41.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-42.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-42.png deleted file mode 100644 index 180a98b25..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-42.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-58.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-58.png deleted file mode 100644 index a53d44864..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-58.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-59.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-59.png deleted file mode 100644 index a53d44864..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-59.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-60.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-60.png deleted file mode 100644 index 7a01bc978..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-60.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-76.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-76.png deleted file mode 100644 index 4aea101ae..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-76.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-80.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-80.png deleted file mode 100644 index 85289428d..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-80.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-81.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-81.png deleted file mode 100644 index 85289428d..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-81.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-87.png b/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-87.png deleted file mode 100644 index dd27b3ca3..000000000 Binary files a/LockScreenWidget/Assets.xcassets/AppIcon.appiconset/icon-87.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/Contents.json b/LockScreenWidget/Assets.xcassets/Contents.json deleted file mode 100644 index 73c00596a..000000000 --- a/LockScreenWidget/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/LockScreenWidget/Assets.xcassets/CornerIcon.imageset/Contents.json b/LockScreenWidget/Assets.xcassets/CornerIcon.imageset/Contents.json deleted file mode 100644 index 16c1410ab..000000000 --- a/LockScreenWidget/Assets.xcassets/CornerIcon.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "icon-1024.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/LockScreenWidget/Assets.xcassets/CornerIcon.imageset/icon-1024.png b/LockScreenWidget/Assets.xcassets/CornerIcon.imageset/icon-1024.png deleted file mode 100644 index c2bb5d540..000000000 Binary files a/LockScreenWidget/Assets.xcassets/CornerIcon.imageset/icon-1024.png and /dev/null differ diff --git a/LockScreenWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/LockScreenWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json deleted file mode 100644 index aa42afaf7..000000000 --- a/LockScreenWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "1.000", - "green" : "1.000", - "red" : "1.000" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0.130", - "green" : "0.130", - "red" : "0.130" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/LockScreenWidget/Info.plist b/LockScreenWidget/Info.plist deleted file mode 100644 index ba4e81057..000000000 --- a/LockScreenWidget/Info.plist +++ /dev/null @@ -1,13 +0,0 @@ - - - - - AppGroup - group.$(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS - NSExtension - - NSExtensionPointIdentifier - com.apple.widgetkit-extension - - - diff --git a/LockScreenWidget/NetNewsWire_Modern_Widget.swift b/LockScreenWidget/NetNewsWire_Modern_Widget.swift deleted file mode 100644 index cb4db346b..000000000 --- a/LockScreenWidget/NetNewsWire_Modern_Widget.swift +++ /dev/null @@ -1,97 +0,0 @@ -// -// NetNewsWire_Modern_Widget.swift -// NetNewsWire Modern Widget -// -// Created by Stuart Breckenridge on 03/08/2022. -// Copyright © 2022 Ranchero Software. All rights reserved. -// - -import WidgetKit -import SwiftUI - -// MARK: - Supported Widgets - -struct UnreadWidget: Widget { - let kind: String = "com.ranchero.NetNewsWire.UnreadWidget" - - var body: some WidgetConfiguration { - - return StaticConfiguration(kind: kind, provider: Provider(), content: { entry in - UnreadWidgetView(entry: entry) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(Color("WidgetBackground")) - - }) - .configurationDisplayName(L10n.unreadWidgetTitle) - .description(L10n.unreadWidgetDescription) - .supportedFamilies([.systemMedium, .systemLarge]) - - } -} - -struct TodayWidget: Widget { - let kind: String = "com.ranchero.NetNewsWire.TodayWidget" - - var body: some WidgetConfiguration { - - return StaticConfiguration(kind: kind, provider: Provider(), content: { entry in - TodayWidgetView(entry: entry) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(Color("WidgetBackground")) - - }) - .configurationDisplayName(L10n.todayWidgetTitle) - .description(L10n.todayWidgetDescription) - .supportedFamilies([.systemMedium, .systemLarge]) - - } -} - -struct StarredWidget: Widget { - let kind: String = "com.ranchero.NetNewsWire.StarredWidget" - - var body: some WidgetConfiguration { - - return StaticConfiguration(kind: kind, provider: Provider(), content: { entry in - StarredWidgetView(entry: entry) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(Color("WidgetBackground")) - - }) - .configurationDisplayName(L10n.starredWidgetTitle) - .description(L10n.starredWidgetDescription) - .supportedFamilies([.systemMedium, .systemLarge]) - - } -} - - - -struct SmartFeedSummaryWidget: Widget { - let kind: String = "com.ranchero.NetNewsWire.SmartFeedSummaryWidget" - - var body: some WidgetConfiguration { - - return StaticConfiguration(kind: kind, provider: Provider(), content: { entry in - SmartFeedSummaryWidgetView(entry: entry) - }) - .configurationDisplayName(L10n.smartFeedSummaryWidgetTitle) - .description(L10n.smartFeedSummaryWidgetDescription) - .supportedFamilies([.accessoryRectangular]) - } -} - - -// MARK: - WidgetBundle -@main -struct NetNewsWire_Modern_Widget: WidgetBundle { - @WidgetBundleBuilder - var body: some Widget { -// UnreadWidget() -// TodayWidget() -// StarredWidget() - SmartFeedSummaryWidget() - } -} - - diff --git a/LockScreenWidget/NetNewsWire_Modern_WidgetExtension.entitlements b/LockScreenWidget/NetNewsWire_Modern_WidgetExtension.entitlements deleted file mode 100644 index 05d04e805..000000000 --- a/LockScreenWidget/NetNewsWire_Modern_WidgetExtension.entitlements +++ /dev/null @@ -1,14 +0,0 @@ - - - - - com.apple.security.application-groups - - group.$(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS - - keychain-access-groups - - $(AppIdentifierPrefix)$(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS - - - diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 14ccde5a9..8605be9b8 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -846,27 +846,7 @@ D5F4EDB720074D6500B9E363 /* WebFeed+Scriptability.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F4EDB620074D6500B9E363 /* WebFeed+Scriptability.swift */; }; D5F4EDB920074D7C00B9E363 /* Folder+Scriptability.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F4EDB820074D7C00B9E363 /* Folder+Scriptability.swift */; }; DD82AB0A231003F6002269DF /* SharingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD82AB09231003F6002269DF /* SharingTests.swift */; }; - DFCEC21A289A159B00251DEB /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 176813F42564BB2C00D98635 /* WidgetKit.framework */; }; - DFCEC21B289A159B00251DEB /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 176813F62564BB2C00D98635 /* SwiftUI.framework */; }; - DFCEC21E289A159B00251DEB /* NetNewsWire_Modern_Widget.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFCEC21D289A159B00251DEB /* NetNewsWire_Modern_Widget.swift */; }; - DFCEC220289A159C00251DEB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DFCEC21F289A159C00251DEB /* Assets.xcassets */; }; - DFCEC224289A159C00251DEB /* NetNewsWire Lock Screen Widget Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = DFCEC219289A159B00251DEB /* NetNewsWire Lock Screen Widget Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - DFCEC229289A170D00251DEB /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1701E1E625689D1E009453D8 /* Localized.swift */; }; - DFCEC22A289A171300251DEB /* widget-sample.json in Resources */ = {isa = PBXBuildFile; fileRef = 1768147A2564BE5400D98635 /* widget-sample.json */; }; - DFCEC22B289A171600251DEB /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1701E1B72568983D009453D8 /* Localizable.strings */; }; - DFCEC22C289A171800251DEB /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 17D0682B2564F47E00C0B37E /* Localizable.stringsdict */; }; - DFCEC22D289A172200251DEB /* SizeCategories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17E0084525941887000C23F0 /* SizeCategories.swift */; }; - DFCEC22E289A172200251DEB /* ArticleItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176814562564BD0600D98635 /* ArticleItemView.swift */; }; - DFCEC22F289A172600251DEB /* StarredWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176814452564BCD200D98635 /* StarredWidget.swift */; }; - DFCEC231289A172600251DEB /* SmartFeedSummaryWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1768144D2564BCE000D98635 /* SmartFeedSummaryWidget.swift */; }; - DFCEC232289A172600251DEB /* TodayWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1768143D2564BCC800D98635 /* TodayWidget.swift */; }; - DFCEC234289A178300251DEB /* TimelineProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1768142C2564BCA800D98635 /* TimelineProvider.swift */; }; - DFCEC235289A17E000251DEB /* WidgetDataDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176813C92564BA5400D98635 /* WidgetDataDecoder.swift */; }; - DFCEC236289A17E000251DEB /* WidgetDeepLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176813D82564BA8700D98635 /* WidgetDeepLinks.swift */; }; - DFCEC238289A17E000251DEB /* WidgetData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176813B62564B9F800D98635 /* WidgetData.swift */; }; - DFCEC23A289A1CBE00251DEB /* RSWeb in Frameworks */ = {isa = PBXBuildFile; productRef = DFCEC239289A1CBE00251DEB /* RSWeb */; }; - DFCEC23B289A1CBE00251DEB /* RSWeb in Embed Frameworks */ = {isa = PBXBuildFile; productRef = DFCEC239289A1CBE00251DEB /* RSWeb */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - DFCEC23D289A1D3C00251DEB /* UnreadWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176814352564BCC000D98635 /* UnreadWidget.swift */; }; + DF5AD10128D6922200CA3BF7 /* SmartFeedSummaryWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1768144D2564BCE000D98635 /* SmartFeedSummaryWidget.swift */; }; DFD6AACF27ADE86E00463FAD /* NewsFax.nnwtheme in Resources */ = {isa = PBXBuildFile; fileRef = DFD6AACD27ADE86E00463FAD /* NewsFax.nnwtheme */; }; DFFB8FC2279B75E300AC21D7 /* Account in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 51BC2F4A24D343A500E90810 /* Account */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; DFFC199827A0D0D7004B7AEF /* NotificationsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFFC199727A0D0D7004B7AEF /* NotificationsViewController.swift */; }; @@ -941,13 +921,6 @@ remoteGlobalIDString = 849C645F1ED37A5D003D8FC0; remoteInfo = NetNewsWire; }; - DFCEC222289A159C00251DEB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 849C64581ED37A5D003D8FC0 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DFCEC218289A159B00251DEB; - remoteInfo = "NetNewsWire iOS 16 WidgetExtension"; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -1017,7 +990,6 @@ files = ( 513C5CF0232571C2003D4054 /* NetNewsWire iOS Share Extension.appex in Embed App Extensions */, 176814002564BB2D00D98635 /* NetNewsWire iOS Widget Extension.appex in Embed App Extensions */, - DFCEC224289A159C00251DEB /* NetNewsWire Lock Screen Widget Extension.appex in Embed App Extensions */, 5131463E235A7BBE00387FDC /* NetNewsWire iOS Intents Extension.appex in Embed App Extensions */, ); name = "Embed App Extensions"; @@ -1140,17 +1112,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DFCEC23C289A1CBE00251DEB /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - DFCEC23B289A1CBE00251DEB /* RSWeb in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -1624,12 +1585,7 @@ D5F4EDB620074D6500B9E363 /* WebFeed+Scriptability.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WebFeed+Scriptability.swift"; sourceTree = ""; }; D5F4EDB820074D7C00B9E363 /* Folder+Scriptability.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Folder+Scriptability.swift"; sourceTree = ""; }; DD82AB09231003F6002269DF /* SharingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharingTests.swift; sourceTree = ""; }; - DFCEC219289A159B00251DEB /* NetNewsWire Lock Screen Widget Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "NetNewsWire Lock Screen Widget Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - DFCEC21D289A159B00251DEB /* NetNewsWire_Modern_Widget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetNewsWire_Modern_Widget.swift; sourceTree = ""; }; - DFCEC21F289A159C00251DEB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - DFCEC221289A159C00251DEB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DFCEC228289A163B00251DEB /* NetNewsWire_iOSlockscreenwidgetextension_target.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetNewsWire_iOSlockscreenwidgetextension_target.xcconfig; sourceTree = ""; }; - DFCEC23E289A1DBE00251DEB /* NetNewsWire_Modern_WidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NetNewsWire_Modern_WidgetExtension.entitlements; sourceTree = ""; }; DFD6AACB27ADE80900463FAD /* NewsFax.nnwtheme */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = NewsFax.nnwtheme; sourceTree = ""; }; DFD6AACD27ADE86E00463FAD /* NewsFax.nnwtheme */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = NewsFax.nnwtheme; sourceTree = ""; }; DFFC199727A0D0D7004B7AEF /* NotificationsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsViewController.swift; sourceTree = ""; }; @@ -1779,16 +1735,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DFCEC216289A159B00251DEB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DFCEC23A289A1CBE00251DEB /* RSWeb in Frameworks */, - DFCEC21B289A159B00251DEB /* SwiftUI.framework in Frameworks */, - DFCEC21A289A159B00251DEB /* WidgetKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -1821,6 +1767,7 @@ 176814342564BCB500D98635 /* Widget Views */ = { isa = PBXGroup; children = ( + 1768144D2564BCE000D98635 /* SmartFeedSummaryWidget.swift */, 176814352564BCC000D98635 /* UnreadWidget.swift */, 1768143D2564BCC800D98635 /* TodayWidget.swift */, 176814452564BCD200D98635 /* StarredWidget.swift */, @@ -2542,7 +2489,6 @@ 84C9FC6522629B3900D921D6 /* Mac */, 84C9FC922262A0E600D921D6 /* iOS */, 176813F82564BB2C00D98635 /* Widget */, - DFCEC21C289A159B00251DEB /* LockScreenWidget */, 84C9FC6822629C9A00D921D6 /* Shared */, 84C9FCA52262A1E600D921D6 /* Tests */, D5907CDA2002F084005947E5 /* xcconfig */, @@ -2573,7 +2519,6 @@ 510C415C24E5CDE3008226FD /* NetNewsWire Share Extension.appex */, 176813F32564BB2C00D98635 /* NetNewsWire iOS Widget Extension.appex */, 653813592680E2DA007A082C /* NetNewsWire Share Extension MAS.appex */, - DFCEC219289A159B00251DEB /* NetNewsWire Lock Screen Widget Extension.appex */, ); name = Products; sourceTree = ""; @@ -2919,26 +2864,6 @@ path = Scriptability; sourceTree = ""; }; - DFCEC21C289A159B00251DEB /* LockScreenWidget */ = { - isa = PBXGroup; - children = ( - DFCEC23E289A1DBE00251DEB /* NetNewsWire_Modern_WidgetExtension.entitlements */, - DFCEC21D289A159B00251DEB /* NetNewsWire_Modern_Widget.swift */, - DFCEC233289A173100251DEB /* Widget Views */, - DFCEC21F289A159C00251DEB /* Assets.xcassets */, - DFCEC221289A159C00251DEB /* Info.plist */, - ); - path = LockScreenWidget; - sourceTree = ""; - }; - DFCEC233289A173100251DEB /* Widget Views */ = { - isa = PBXGroup; - children = ( - 1768144D2564BCE000D98635 /* SmartFeedSummaryWidget.swift */, - ); - path = "Widget Views"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -3162,7 +3087,6 @@ 5138E94324D3404300AFF0FE /* PBXTargetDependency */, 5131463D235A7BBE00387FDC /* PBXTargetDependency */, 176813FF2564BB2D00D98635 /* PBXTargetDependency */, - DFCEC223289A159C00251DEB /* PBXTargetDependency */, ); name = "NetNewsWire-iOS"; packageProductDependencies = ( @@ -3248,27 +3172,6 @@ productReference = 849C64711ED37A5D003D8FC0 /* NetNewsWireTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DFCEC218289A159B00251DEB /* NetNewsWire Lock Screen Widget Extension */ = { - isa = PBXNativeTarget; - buildConfigurationList = DFCEC227289A159C00251DEB /* Build configuration list for PBXNativeTarget "NetNewsWire Lock Screen Widget Extension" */; - buildPhases = ( - DFCEC215289A159B00251DEB /* Sources */, - DFCEC216289A159B00251DEB /* Frameworks */, - DFCEC217289A159B00251DEB /* Resources */, - DFCEC23C289A1CBE00251DEB /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "NetNewsWire Lock Screen Widget Extension"; - packageProductDependencies = ( - DFCEC239289A1CBE00251DEB /* RSWeb */, - ); - productName = "NetNewsWire iOS 16 WidgetExtension"; - productReference = DFCEC219289A159B00251DEB /* NetNewsWire Lock Screen Widget Extension.appex */; - productType = "com.apple.product-type.app-extension"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -3341,9 +3244,6 @@ ProvisioningStyle = Automatic; TestTargetID = 849C645F1ED37A5D003D8FC0; }; - DFCEC218289A159B00251DEB = { - CreatedOnToolsVersion = 14.0; - }; }; }; buildConfigurationList = 849C645B1ED37A5D003D8FC0 /* Build configuration list for PBXProject "NetNewsWire" */; @@ -3381,7 +3281,6 @@ 518B2ED12351B3DD00400001 /* NetNewsWire-iOSTests */, 510C415B24E5CDE3008226FD /* NetNewsWire Share Extension */, 6538133E2680E2DA007A082C /* NetNewsWire Share Extension MAS */, - DFCEC218289A159B00251DEB /* NetNewsWire Lock Screen Widget Extension */, ); }; /* End PBXProject section */ @@ -3618,17 +3517,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DFCEC217289A159B00251DEB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DFCEC220289A159C00251DEB /* Assets.xcassets in Resources */, - DFCEC22C289A171800251DEB /* Localizable.stringsdict in Resources */, - DFCEC22B289A171600251DEB /* Localizable.strings in Resources */, - DFCEC22A289A171300251DEB /* widget-sample.json in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -3829,6 +3717,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + DF5AD10128D6922200CA3BF7 /* SmartFeedSummaryWidget.swift in Sources */, 176814362564BCC000D98635 /* UnreadWidget.swift in Sources */, 1768146C2564BD8100D98635 /* WidgetDeepLinks.swift in Sources */, 1768143E2564BCC800D98635 /* TodayWidget.swift in Sources */, @@ -4505,25 +4394,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DFCEC215289A159B00251DEB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DFCEC23D289A1D3C00251DEB /* UnreadWidget.swift in Sources */, - DFCEC236289A17E000251DEB /* WidgetDeepLinks.swift in Sources */, - DFCEC232289A172600251DEB /* TodayWidget.swift in Sources */, - DFCEC235289A17E000251DEB /* WidgetDataDecoder.swift in Sources */, - DFCEC21E289A159B00251DEB /* NetNewsWire_Modern_Widget.swift in Sources */, - DFCEC229289A170D00251DEB /* Localized.swift in Sources */, - DFCEC22F289A172600251DEB /* StarredWidget.swift in Sources */, - DFCEC22E289A172200251DEB /* ArticleItemView.swift in Sources */, - DFCEC234289A178300251DEB /* TimelineProvider.swift in Sources */, - DFCEC22D289A172200251DEB /* SizeCategories.swift in Sources */, - DFCEC231289A172600251DEB /* SmartFeedSummaryWidget.swift in Sources */, - DFCEC238289A17E000251DEB /* WidgetData.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -4572,11 +4442,6 @@ target = 849C645F1ED37A5D003D8FC0 /* NetNewsWire */; targetProxy = 849C64721ED37A5D003D8FC0 /* PBXContainerItemProxy */; }; - DFCEC223289A159C00251DEB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DFCEC218289A159B00251DEB /* NetNewsWire Lock Screen Widget Extension */; - targetProxy = DFCEC222289A159C00251DEB /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -4896,162 +4761,6 @@ }; name = Release; }; - DFCEC225289A159C00251DEB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DFCEC228289A163B00251DEB /* NetNewsWire_iOSlockscreenwidgetextension_target.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LockScreenWidget/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = "NetNewsWire Lock Screen Widget"; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Ranchero Software. All rights reserved."; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 1.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.stuartbreckenridge.opensource.NetNewsWire.iOS.NetNewsWire-iOS-16-Widget"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - DFCEC226289A159C00251DEB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DFCEC228289A163B00251DEB /* NetNewsWire_iOSlockscreenwidgetextension_target.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LockScreenWidget/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = "NetNewsWire Lock Screen Widget"; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Ranchero Software. All rights reserved."; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 1.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.stuartbreckenridge.opensource.NetNewsWire.iOS.NetNewsWire-iOS-16-Widget"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -5172,15 +4881,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DFCEC227289A159C00251DEB /* Build configuration list for PBXNativeTarget "NetNewsWire Lock Screen Widget Extension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DFCEC225289A159C00251DEB /* Debug */, - DFCEC226289A159C00251DEB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ @@ -5485,11 +5185,6 @@ package = 653813412680E2DA007A082C /* XCRemoteSwiftPackageReference "RSCore" */; productName = RSCore; }; - DFCEC239289A1CBE00251DEB /* RSWeb */ = { - isa = XCSwiftPackageProductDependency; - package = 51383A3024D1F90E0027E272 /* XCRemoteSwiftPackageReference "RSWeb" */; - productName = RSWeb; - }; /* End XCSwiftPackageProductDependency section */ }; rootObject = 849C64581ED37A5D003D8FC0 /* Project object */; diff --git a/LockScreenWidget/Widget Views/SmartFeedSummaryWidget.swift b/Widget/Widget Views/SmartFeedSummaryWidget.swift similarity index 97% rename from LockScreenWidget/Widget Views/SmartFeedSummaryWidget.swift rename to Widget/Widget Views/SmartFeedSummaryWidget.swift index 178ade1c5..23c83f7f9 100644 --- a/LockScreenWidget/Widget Views/SmartFeedSummaryWidget.swift +++ b/Widget/Widget Views/SmartFeedSummaryWidget.swift @@ -85,6 +85,7 @@ struct SmartFeedSummaryWidgetView: View { } +@available(iOSApplicationExtension 16.0, *) struct SmartFeedSummaryWidgetView_Previews: PreviewProvider { static var previews: some View { diff --git a/Widget/WidgetBundle.swift b/Widget/WidgetBundle.swift index c3b8d08d6..6a4907ad9 100644 --- a/Widget/WidgetBundle.swift +++ b/Widget/WidgetBundle.swift @@ -65,13 +65,36 @@ struct StarredWidget: Widget { } } + +@available(iOSApplicationExtension 16.0, *) +struct SmartFeedSummaryWidget: Widget { + let kind: String = "com.ranchero.NetNewsWire.SmartFeedSummaryWidget" + + var body: some WidgetConfiguration { + + return StaticConfiguration(kind: kind, provider: Provider(), content: { entry in + SmartFeedSummaryWidgetView(entry: entry) + }) + .configurationDisplayName(L10n.smartFeedSummaryWidgetTitle) + .description(L10n.smartFeedSummaryWidgetDescription) + .supportedFamilies([.accessoryRectangular]) + } +} + // MARK: - WidgetBundle @main struct NetNewsWireWidgets: WidgetBundle { @WidgetBundleBuilder var body: some Widget { - UnreadWidget() - TodayWidget() - StarredWidget() + widgets() } + + func widgets() -> some Widget { + if #available(iOS 16.0, *) { + return WidgetBundleBuilder.buildBlock(UnreadWidget(), TodayWidget(), StarredWidget(), SmartFeedSummaryWidget()) + } else { + return WidgetBundleBuilder.buildBlock(UnreadWidget(), TodayWidget(), StarredWidget()) + } + } + }