Improve feature flag checks, improve digest view

This commit is contained in:
Jackson Harper
2024-05-10 21:36:55 +08:00
parent 2766216ca8
commit ad9d072ea7
7 changed files with 32 additions and 10 deletions

View File

@ -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)

View File

@ -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 },

View File

@ -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
}

View File

@ -216,5 +216,8 @@ struct LibraryTabView: View {
}
selectedTab = "inbox"
}
.task {
await dataService.tryUpdateFeatureFlags()
}
}
}

View File

@ -37,8 +37,6 @@ public struct RootView: View {
Services.scheduleBackgroundFetch()
#endif
}
}.task {
await viewModel.services.dataService.tryUpdateFeatureFlags()
}
}
}

View File

@ -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()

View File

@ -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")