diff --git a/IceCubesApp.xcodeproj/project.pbxproj b/IceCubesApp.xcodeproj/project.pbxproj index c0ccb757..a5cc6b79 100644 --- a/IceCubesApp.xcodeproj/project.pbxproj +++ b/IceCubesApp.xcodeproj/project.pbxproj @@ -122,7 +122,7 @@ 9FE6A42E2BD043A90055D388 /* RevenueCat in Frameworks */ = {isa = PBXBuildFile; productRef = 9FE6A42D2BD043A90055D388 /* RevenueCat */; }; 9FF2FB622BE7F5D5001560CE /* HashtagPostsWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF2FB602BE7F5A7001560CE /* HashtagPostsWidget.swift */; }; 9FF2FB632BE7F5D9001560CE /* HashtagPostsWidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF2FB5E2BE7F56F001560CE /* HashtagPostsWidgetConfiguration.swift */; }; - 9FF2FB672BE7F816001560CE /* LastestPostsUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF2FB652BE7F805001560CE /* LastestPostsUI.swift */; }; + 9FF2FB672BE7F816001560CE /* PostsWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF2FB652BE7F805001560CE /* PostsWidgetView.swift */; }; 9FF2FB6A2BE7F84E001560CE /* SharedUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF2FB682BE7F842001560CE /* SharedUtils.swift */; }; 9FFF677C299B7B2C00FE700A /* Notifications in Frameworks */ = {isa = PBXBuildFile; productRef = 9FFF677B299B7B2C00FE700A /* Notifications */; }; 9FFF6780299B7D2B00FE700A /* DesignSystem in Frameworks */ = {isa = PBXBuildFile; productRef = 9FFF677F299B7D2B00FE700A /* DesignSystem */; }; @@ -296,7 +296,7 @@ 9FE3DB55296FEF5800628CB0 /* AppAccount */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = AppAccount; path = Packages/AppAccount; sourceTree = ""; }; 9FF2FB5E2BE7F56F001560CE /* HashtagPostsWidgetConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HashtagPostsWidgetConfiguration.swift; sourceTree = ""; }; 9FF2FB602BE7F5A7001560CE /* HashtagPostsWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HashtagPostsWidget.swift; sourceTree = ""; }; - 9FF2FB652BE7F805001560CE /* LastestPostsUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LastestPostsUI.swift; sourceTree = ""; }; + 9FF2FB652BE7F805001560CE /* PostsWidgetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostsWidgetView.swift; sourceTree = ""; }; 9FF2FB682BE7F842001560CE /* SharedUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedUtils.swift; sourceTree = ""; }; B0BAB49E29B3D7A9008F54D7 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = ""; }; C4CBB90B298A0DA3007E1707 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/InfoPlist.strings"; sourceTree = ""; }; @@ -662,7 +662,7 @@ 9FF2FB642BE7F7FA001560CE /* Shared */ = { isa = PBXGroup; children = ( - 9FF2FB652BE7F805001560CE /* LastestPostsUI.swift */, + 9FF2FB652BE7F805001560CE /* PostsWidgetView.swift */, 9FF2FB682BE7F842001560CE /* SharedUtils.swift */, ); path = Shared; @@ -988,7 +988,7 @@ 9F7788EE2BE78D7B004E6BEF /* TimelineFilterEntity.swift in Sources */, 9F7788CC2BE652B1004E6BEF /* IceCubesAppWidgetsExtensionBundle.swift in Sources */, 9F7788D02BE652B1004E6BEF /* LatestPostsWidgetConfiguration.swift in Sources */, - 9FF2FB672BE7F816001560CE /* LastestPostsUI.swift in Sources */, + 9FF2FB672BE7F816001560CE /* PostsWidgetView.swift in Sources */, 9FF2FB632BE7F5D9001560CE /* HashtagPostsWidgetConfiguration.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/IceCubesAppWidgetsExtension/HashtagPostsWidget/HashtagPostsWidget.swift b/IceCubesAppWidgetsExtension/HashtagPostsWidget/HashtagPostsWidget.swift index fdf8ea9d..2c8a33e5 100644 --- a/IceCubesAppWidgetsExtension/HashtagPostsWidget/HashtagPostsWidget.swift +++ b/IceCubesAppWidgetsExtension/HashtagPostsWidget/HashtagPostsWidget.swift @@ -6,14 +6,14 @@ import Models import Timeline struct HashtagPostsWidgetProvider: AppIntentTimelineProvider { - func placeholder(in context: Context) -> LatestPostWidgetEntry { + func placeholder(in context: Context) -> PostsWidgetEntry { .init(date: Date(), timeline: .hashtag(tag: "Mastodon", accountId: nil), statuses: [.placeholder()], images: [:]) } - func snapshot(for configuration: HashtagPostsWidgetConfiguration, in context: Context) async -> LatestPostWidgetEntry { + func snapshot(for configuration: HashtagPostsWidgetConfiguration, in context: Context) async -> PostsWidgetEntry { if let entry = await timeline(for: configuration, context: context).entries.first { return entry } @@ -23,11 +23,11 @@ struct HashtagPostsWidgetProvider: AppIntentTimelineProvider { images: [:]) } - func timeline(for configuration: HashtagPostsWidgetConfiguration, in context: Context) async -> Timeline { + func timeline(for configuration: HashtagPostsWidgetConfiguration, in context: Context) async -> Timeline { await timeline(for: configuration, context: context) } - private func timeline(for configuration: HashtagPostsWidgetConfiguration, context: Context) async -> Timeline { + private func timeline(for configuration: HashtagPostsWidgetConfiguration, context: Context) async -> Timeline { guard let account = configuration.account, let hashgtag = configuration.hashgtag else { return Timeline(entries: [.init(date: Date(), timeline: .hashtag(tag: "Mastodon", accountId: nil), @@ -61,7 +61,7 @@ struct HashtagPostsWidget: Widget { AppIntentConfiguration(kind: kind, intent: HashtagPostsWidgetConfiguration.self, provider: HashtagPostsWidgetProvider()) { entry in - LatestPostsWidgetView(entry: entry) + PostsWidgetView(entry: entry) .containerBackground(Color("WidgetBackground").gradient, for: .widget) } .configurationDisplayName("Hashtag timeline") @@ -74,7 +74,7 @@ struct HashtagPostsWidget: Widget { #Preview(as: .systemMedium) { HashtagPostsWidget() } timeline: { - LatestPostWidgetEntry(date: .now, + PostsWidgetEntry(date: .now, timeline: .hashtag(tag: "Matodon", accountId: nil), statuses: [.placeholder(), .placeholder(), .placeholder(), .placeholder()], images: [:]) diff --git a/IceCubesAppWidgetsExtension/LatestPosts/LatestPostsWidget.swift b/IceCubesAppWidgetsExtension/LatestPosts/LatestPostsWidget.swift index 3ecd9283..526ee947 100644 --- a/IceCubesAppWidgetsExtension/LatestPosts/LatestPostsWidget.swift +++ b/IceCubesAppWidgetsExtension/LatestPosts/LatestPostsWidget.swift @@ -6,14 +6,14 @@ import Models import Timeline struct LatestPostsWidgetProvider: AppIntentTimelineProvider { - func placeholder(in context: Context) -> LatestPostWidgetEntry { + func placeholder(in context: Context) -> PostsWidgetEntry { .init(date: Date(), timeline: .home, statuses: [.placeholder()], images: [:]) } - func snapshot(for configuration: LatestPostsWidgetConfiguration, in context: Context) async -> LatestPostWidgetEntry { + func snapshot(for configuration: LatestPostsWidgetConfiguration, in context: Context) async -> PostsWidgetEntry { if let entry = await timeline(for: configuration, context: context).entries.first { return entry } @@ -22,11 +22,11 @@ struct LatestPostsWidgetProvider: AppIntentTimelineProvider { images: [:]) } - func timeline(for configuration: LatestPostsWidgetConfiguration, in context: Context) async -> Timeline { + func timeline(for configuration: LatestPostsWidgetConfiguration, in context: Context) async -> Timeline { await timeline(for: configuration, context: context) } - private func timeline(for configuration: LatestPostsWidgetConfiguration, context: Context) async -> Timeline { + private func timeline(for configuration: LatestPostsWidgetConfiguration, context: Context) async -> Timeline { guard let account = configuration.account, let timeline = configuration.timeline else { return Timeline(entries: [.init(date: Date(), timeline: .home, @@ -80,7 +80,7 @@ struct LatestPostsWidget: Widget { AppIntentConfiguration(kind: kind, intent: LatestPostsWidgetConfiguration.self, provider: LatestPostsWidgetProvider()) { entry in - LatestPostsWidgetView(entry: entry) + PostsWidgetView(entry: entry) .containerBackground(Color("WidgetBackground").gradient, for: .widget) } .configurationDisplayName("Latest posts") @@ -93,7 +93,7 @@ struct LatestPostsWidget: Widget { #Preview(as: .systemMedium) { LatestPostsWidget() } timeline: { - LatestPostWidgetEntry(date: .now, + PostsWidgetEntry(date: .now, timeline: .home, statuses: [.placeholder(), .placeholder(), .placeholder(), .placeholder()], images: [:]) diff --git a/IceCubesAppWidgetsExtension/Shared/LastestPostsUI.swift b/IceCubesAppWidgetsExtension/Shared/PostsWidgetView.swift similarity index 96% rename from IceCubesAppWidgetsExtension/Shared/LastestPostsUI.swift rename to IceCubesAppWidgetsExtension/Shared/PostsWidgetView.swift index 78634d98..77309ec5 100644 --- a/IceCubesAppWidgetsExtension/Shared/LastestPostsUI.swift +++ b/IceCubesAppWidgetsExtension/Shared/PostsWidgetView.swift @@ -5,14 +5,14 @@ import DesignSystem import Models import Timeline -struct LatestPostWidgetEntry: TimelineEntry { +struct PostsWidgetEntry: TimelineEntry { let date: Date let timeline: TimelineFilter let statuses: [Status] let images: [URL: UIImage] } -struct LatestPostsWidgetView : View { +struct PostsWidgetView : View { var entry: LatestPostsWidgetProvider.Entry @Environment(\.widgetFamily) var family