mirror of
https://github.com/neon443/NearFuture.git
synced 2026-03-11 06:49:12 +00:00
minor concurrency improvements
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user