minor concurrency improvements

This commit is contained in:
neon443
2025-05-29 18:32:54 +01:00
parent 69047010d7
commit 2ef000458f
5 changed files with 16 additions and 13 deletions

View File

@@ -27,10 +27,10 @@ struct ContentView: View {
var body: some View {
TabView(selection: $selection) {
HomeView(viewModel: viewModel, settingsModel: settingsModel)
.tabItem {
Label("Home", systemImage: "house")
}
.tag(Tab.home)
.tabItem {
Label("Home", systemImage: "house")
}
.tag(Tab.home)
ArchiveView(viewModel: viewModel)
.tabItem() {
Label("Archive", systemImage: "tray.full")

View File

@@ -95,8 +95,11 @@ struct SettingsView: View {
List {
if !settingsModel.notifsGranted {
Button("Request Notifications") {
Task {
settingsModel.notifsGranted = await requestNotifs()
Task.detached {
let requestNotifsResult = await requestNotifs()
await MainActor.run {
settingsModel.notifsGranted = requestNotifsResult
}
}
}
Text("\(Image(systemName: "xmark")) Notifications disabled for Near Future")

View File

@@ -248,8 +248,8 @@ class EventViewModel: ObservableObject, @unchecked Sendable {
updateSyncStatus()
loadEvents()
Task {
await checkPendingNotifs(getNotifs())
Task.detached {
await self.checkPendingNotifs(self.getNotifs())
}
WidgetCenter.shared.reloadAllTimelines()//reload all widgets when saving events
objectWillChange.send()

View File

@@ -76,7 +76,7 @@ class SettingsViewModel: ObservableObject {
self.device = getDevice()
if load {
loadSettings()
Task {
Task.detached {
let requestResult = await requestNotifs()
await MainActor.run {
self.notifsGranted = requestResult

View File

@@ -11,13 +11,13 @@ import SwiftData
@main
struct NearFutureApp: App {
@StateObject var settingsModel: SettingsViewModel = SettingsViewModel()
var body: some Scene {
WindowGroup {
var body: some Scene {
WindowGroup {
ContentView(
viewModel: EventViewModel(),
settingsModel: settingsModel
)
.tint(settingsModel.settings.tint.color)
}
}
}
}
}