mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
[anisette-servers]: Fix: List was not updated since data was published from a non UI thread
This commit is contained in:
@@ -39,7 +39,12 @@ class AnisetteViewModel: ObservableObject {
|
|||||||
func getDefaultListOfServers() {
|
func getDefaultListOfServers() {
|
||||||
// initiate fetch but do not wait in blocking manner
|
// initiate fetch but do not wait in blocking manner
|
||||||
Task{
|
Task{
|
||||||
self.servers = await AnisetteViewModel.getListOfServers(serverSource: self.source)
|
let anisetteServers = await AnisetteViewModel.getListOfServers(serverSource: self.source)
|
||||||
|
|
||||||
|
// always update on main thread for Observables
|
||||||
|
DispatchQueue.main.async {
|
||||||
|
self.servers = anisetteServers
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,11 +66,9 @@ class AnisetteViewModel: ObservableObject {
|
|||||||
do {
|
do {
|
||||||
let decoder = Foundation.JSONDecoder()
|
let decoder = Foundation.JSONDecoder()
|
||||||
let servers = try decoder.decode(AnisetteServerData.self, from: data)
|
let servers = try decoder.decode(AnisetteServerData.self, from: data)
|
||||||
DispatchQueue.main.async {
|
aniServers.append(contentsOf: servers.servers)
|
||||||
aniServers.append(contentsOf: servers.servers)
|
// store server addresses as list
|
||||||
// store server addresses as list
|
UserDefaults.standard.menuAnisetteServersList = aniServers.map(\.self.address)
|
||||||
UserDefaults.standard.menuAnisetteServersList = aniServers.map(\.self.address)
|
|
||||||
}
|
|
||||||
} catch {
|
} catch {
|
||||||
// Handle decoding error
|
// Handle decoding error
|
||||||
print("Failed to decode JSON: \(error)")
|
print("Failed to decode JSON: \(error)")
|
||||||
|
|||||||
Reference in New Issue
Block a user