Improve feature flag checks, improve digest view
This commit is contained in:
@ -223,10 +223,11 @@ struct FullScreenDigestView: View {
|
||||
.foregroundColor(Color(hex: "#898989"))
|
||||
.lineLimit(1)
|
||||
} else {
|
||||
Text("We're building you a new digest")
|
||||
.font(Font.system(size: 17, weight: .semibold))
|
||||
.lineLimit(3)
|
||||
ProgressView()
|
||||
HStack {
|
||||
Spacer()
|
||||
ProgressView()
|
||||
Spacer()
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(15)
|
||||
|
||||
@ -192,6 +192,7 @@ struct AnimatingCellHeight: AnimatableModifier {
|
||||
@State var listTitle = ""
|
||||
@State var showExpandedAudioPlayer = false
|
||||
@State var showLibraryDigest = false
|
||||
@State var showDigestConfig = false
|
||||
|
||||
@Binding var isEditMode: EditMode
|
||||
|
||||
@ -330,6 +331,15 @@ struct AnimatingCellHeight: AnimatableModifier {
|
||||
Text("Sorry digest is only available on iOS 17 and above")
|
||||
}
|
||||
}
|
||||
// .sheet(isPresented: $showDigestConfig) {
|
||||
// if #available(iOS 17.0, *) {
|
||||
// NavigationView {
|
||||
// DigestConfigView(dataService: dataService)
|
||||
// }
|
||||
// } else {
|
||||
// Text("Sorry digest is only available on iOS 17 and above")
|
||||
// }
|
||||
// }
|
||||
.toolbar {
|
||||
toolbarItems
|
||||
}
|
||||
@ -404,6 +414,14 @@ struct AnimatingCellHeight: AnimatableModifier {
|
||||
.buttonStyle(.plain)
|
||||
.padding(.trailing, 4)
|
||||
}
|
||||
// if #available(iOS 17.0, *), !dataService.featureFlags.digestEnabled, !viewModel.digestHidden {
|
||||
// Button(
|
||||
// action: { showDigestConfig = true },
|
||||
// label: { Image.tabDigestSelected }
|
||||
// )
|
||||
// .buttonStyle(.plain)
|
||||
// .padding(.trailing, 4)
|
||||
// }
|
||||
if prefersListLayout {
|
||||
Button(
|
||||
action: { isEditMode = isEditMode == .active ? .inactive : .active },
|
||||
|
||||
@ -49,6 +49,7 @@ enum LoadingBarStyle {
|
||||
@AppStorage(UserDefaultKey.hideFeatureSection.rawValue) var hideFeatureSection = false
|
||||
@AppStorage(UserDefaultKey.stopUsingFollowingPrimer.rawValue) var stopUsingFollowingPrimer = false
|
||||
@AppStorage("LibraryTabView::hideFollowingTab") var hideFollowingTab = false
|
||||
@AppStorage("LibraryTabView::digestHidden") var digestHidden = false
|
||||
@AppStorage(UserDefaultKey.lastVisitedDigestId.rawValue) var lastVisitedDigestId = ""
|
||||
|
||||
@AppStorage(UserDefaultKey.lastSelectedFeaturedItemFilter.rawValue) var featureFilter = FeaturedItemFilter.continueReading.rawValue
|
||||
@ -401,7 +402,7 @@ enum LoadingBarStyle {
|
||||
|
||||
func checkForDigestUpdate(dataService: DataService) async {
|
||||
do {
|
||||
if let result = try? await dataService.getLatestDigest(timeoutInterval: 2) {
|
||||
if dataService.featureFlags.digestEnabled, let result = try? await dataService.getLatestDigest(timeoutInterval: 2) {
|
||||
if result.id != lastVisitedDigestId {
|
||||
digestIsUnread = true
|
||||
}
|
||||
|
||||
@ -216,5 +216,8 @@ struct LibraryTabView: View {
|
||||
}
|
||||
selectedTab = "inbox"
|
||||
}
|
||||
.task {
|
||||
await dataService.tryUpdateFeatureFlags()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,8 +37,6 @@ public struct RootView: View {
|
||||
Services.scheduleBackgroundFetch()
|
||||
#endif
|
||||
}
|
||||
}.task {
|
||||
await viewModel.services.dataService.tryUpdateFeatureFlags()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -761,9 +761,10 @@ struct WebReaderContainerView: View {
|
||||
}
|
||||
|
||||
func startUserActivity() {
|
||||
if let slug = item.slug, let webpageURL = URL(string: "https://omnivore.app/me/\(slug)") {
|
||||
if let slug = item.slug,
|
||||
let webpageURL = URL(string: "\(dataService.appEnvironment.webAppBaseURL)/me/\(slug)") {
|
||||
let activity = NSUserActivity(activityType: "com.omnivore.omnivore.openURL")
|
||||
activity.title = "Open in Safari"
|
||||
activity.title = "Open in browser"
|
||||
activity.webpageURL = webpageURL
|
||||
activity.isEligibleForHandoff = true
|
||||
activity.becomeCurrent()
|
||||
|
||||
@ -300,7 +300,7 @@ public final class DataService: ObservableObject {
|
||||
}
|
||||
return objectID
|
||||
}
|
||||
|
||||
|
||||
public func tryUpdateFeatureFlags() async {
|
||||
if let features = (try? await fetchViewer())?.enabledFeatures {
|
||||
featureFlags.digestEnabled = features.contains("ai-digest")
|
||||
|
||||
Reference in New Issue
Block a user