Make digest refresh less
This commit is contained in:
@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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")
|
||||
|
||||
@ -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
Reference in New Issue
Block a user