diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift index f3995ef9c..321110e56 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift @@ -573,17 +573,17 @@ struct AnimatingCellHeight: AnimatableModifier { HStack { Menu(content: { Button(action: { - viewModel.fetcher.updateFeatureFilter(context: dataService.viewContext, filter: .continueReading) + viewModel.updateFeatureFilter(context: dataService.viewContext, filter: .continueReading) }, label: { Text("Continue Reading") }) Button(action: { - viewModel.fetcher.updateFeatureFilter(context: dataService.viewContext, filter: .pinned) + viewModel.updateFeatureFilter(context: dataService.viewContext, filter: .pinned) }, label: { Text("Pinned") }) Button(action: { - viewModel.fetcher.updateFeatureFilter(context: dataService.viewContext, filter: .newsletters) + viewModel.updateFeatureFilter(context: dataService.viewContext, filter: .newsletters) }, label: { Text("Newsletters") }) @@ -597,7 +597,7 @@ struct AnimatingCellHeight: AnimatableModifier { HStack(alignment: .center) { Image(systemName: "line.3.horizontal.decrease") .font(Font.system(size: 13, weight: .regular)) - Text((FeaturedItemFilter(rawValue: viewModel.fetcher.featureFilter) ?? .continueReading).title) + Text((FeaturedItemFilter(rawValue: viewModel.featureFilter) ?? .continueReading).title) .font(Font.system(size: 13, weight: .medium)) } .tint(Color(hex: "#007AFF")) @@ -753,6 +753,9 @@ struct AnimatingCellHeight: AnimatableModifier { await viewModel.loadMore(dataService: dataService) } } + + // reload this in case it was changed in settings + viewModel.hideFeatureSection = UserDefaults.standard.bool(forKey: UserDefaultKey.hideFeatureSection.rawValue) } } } diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift index 0000ce363..2bd2261a7 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift @@ -49,6 +49,8 @@ enum LoadingBarStyle { @AppStorage(UserDefaultKey.stopUsingFollowingPrimer.rawValue) var stopUsingFollowingPrimer = false @AppStorage("LibraryTabView::hideFollowingTab") var hideFollowingTab = false + @AppStorage(UserDefaultKey.lastSelectedFeaturedItemFilter.rawValue) var featureFilter = FeaturedItemFilter.continueReading.rawValue + @Published var appliedFilter: InternalFilter? { didSet { if let filterName = appliedFilter?.name.lowercased() { @@ -363,4 +365,11 @@ enum LoadingBarStyle { snackbar("Error modifying emails") } } + + func updateFeatureFilter(context: NSManagedObjectContext, filter: FeaturedItemFilter?) { + if let filter = filter { + featureFilter = filter.rawValue + fetcher.updateFeatureFilter(context: context, filter: filter) + } + } } diff --git a/apple/Sources/AppIntents.swift b/apple/Sources/AppIntents.swift index ee9d12fb3..6b183e23a 100644 --- a/apple/Sources/AppIntents.swift +++ b/apple/Sources/AppIntents.swift @@ -41,6 +41,14 @@ var omnivoreWebURL: String @Property(title: "Omnivore deeplink URL") var omnivoreShortcutURL: String + @Property(title: "Author if set") + var author: String? + @Property(title: "Site name if set") + var siteName: String? + @Property(title: "Published date if set") + var publishedAt: Date? + @Property(title: "Time the item was saved") + var savedAt: Date? init(item: Models.LibraryItem) { self.id = UUID(uuidString: item.unwrappedID)! @@ -48,6 +56,10 @@ self.originalURL = item.pageURLString self.omnivoreWebURL = "https://omnivore.app/me/\(item.slug!)" self.omnivoreShortcutURL = "omnivore://read/\(item.unwrappedID)" + self.author = item.author + self.siteName = item.siteName + self.publishedAt = item.publishDate + self.savedAt = item.savedAt } static var typeDisplayRepresentation = TypeDisplayRepresentation(