Make digest refresh less

This commit is contained in:
Jackson Harper
2024-05-13 21:51:48 +08:00
parent cbba54111f
commit 7ef643f549
9 changed files with 91 additions and 163 deletions

View File

@ -16,20 +16,14 @@ public class DigestConfigViewModel: ObservableObject {
@AppStorage(UserDefaultKey.lastVisitedDigestId.rawValue) var lastVisitedDigestId = ""
func load(dataService: DataService) async {
func enableDigest(dataService: DataService) async {
isLoading = true
if !dataService.digestNeedsRefresh() {
if let digest = dataService.loadStoredDigest() {
self.digest = digest
}
} else {
do {
if let digest = try await dataService.getLatestDigest(timeoutInterval: 10) {
self.digest = digest
}
} catch {
print("ERROR WITH DIGEST: ", error)
self.digest = nil
do {
try await dataService.optInFeature(name: "ai-digest")
} catch {
if let err as? IneligibleError {
}
}
@ -126,7 +120,9 @@ struct DigestConfigView: View {
Button(action: {}, label: { Text("Hide digest") })
.buttonStyle(RoundedRectButtonStyle())
Button(action: {}, label: { Text("Enable digest") })
Button(action: {
viewModel.en
}, label: { Text("Enable digest") })
.buttonStyle(RoundedRectButtonStyle(color: Color.blue, textColor: Color.white))
}
}

View File

@ -1,3 +1,4 @@
// swiftlint:disable file_length type_body_length
import CoreData
import Models
import Services
@ -415,15 +416,14 @@ struct AnimatingCellHeight: AnimatableModifier {
)
.buttonStyle(.plain)
.padding(.trailing, 4)
} else if #available(iOS 17.0, *), !dataService.featureFlags.digestEnabled, !viewModel.digestHidden {
Button(
action: { showDigestConfig = true },
label: { Image.tabDigestSelected }
)
.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 #available(iOS 17.0, *), !dataService.featureFlags.digestEnabled, !viewModel.digestHidden {
// Give the user an opportunity to enable digest
Button(

View File

@ -403,7 +403,8 @@ enum LoadingBarStyle {
func checkForDigestUpdate(dataService: DataService) async {
do {
if dataService.featureFlags.digestEnabled, 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

@ -97,8 +97,7 @@ public struct ExplainResult: Codable {
public let text: String
}
extension DataService {
extension DataService {
public func digestNeedsRefresh() -> Bool {
let fileManager = FileManager.default
let localURL = URL.om_cachesDirectory.appendingPathComponent("digest.json")

View File

@ -1,10 +1,3 @@
//
// File.swift
//
//
// Created by Jackson Harper on 11/10/22.
//
import Foundation
import Models
import SwiftGraphQL

File diff suppressed because one or more lines are too long