Fix ServerAPI not reading school preference from preferences on iOS

This commit is contained in:
2020-12-03 23:58:35 +01:00
parent fe9111e81c
commit bbab650305
6 changed files with 24 additions and 12 deletions

View File

@@ -11,7 +11,7 @@
9547205B2573B688005AA401 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9547205A2573B688005AA401 /* Settings.bundle */; }; 9547205B2573B688005AA401 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9547205A2573B688005AA401 /* Settings.bundle */; };
954E68352574E3890034EBA8 /* iOSServerApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954E68342574E3890034EBA8 /* iOSServerApi.swift */; }; 954E68352574E3890034EBA8 /* iOSServerApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954E68342574E3890034EBA8 /* iOSServerApi.swift */; };
954E683D2574ED9E0034EBA8 /* UserDefaultsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954E683C2574ED9E0034EBA8 /* UserDefaultsExtensions.swift */; }; 954E683D2574ED9E0034EBA8 /* UserDefaultsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954E683C2574ED9E0034EBA8 /* UserDefaultsExtensions.swift */; };
9553DB09257173ED006AE167 /* iOSDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9553DB08257173ED006AE167 /* iOSDatabase.swift */; }; 9553DB09257173ED006AE167 /* iOSRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9553DB08257173ED006AE167 /* iOSRepository.swift */; };
95906F48257508660060F5D0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95906F47257506360060F5D0 /* Assets.xcassets */; }; 95906F48257508660060F5D0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95906F47257506360060F5D0 /* Assets.xcassets */; };
95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 95906F4C257510370060F5D0 /* GoogleService-Info.plist */; }; 95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 95906F4C257510370060F5D0 /* GoogleService-Info.plist */; };
95BC3BF82572BCF900F24400 /* AttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95BC3BF72572BCF900F24400 /* AttachmentView.swift */; }; 95BC3BF82572BCF900F24400 /* AttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95BC3BF72572BCF900F24400 /* AttachmentView.swift */; };
@@ -46,7 +46,7 @@
9547205A2573B688005AA401 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; }; 9547205A2573B688005AA401 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; };
954E68342574E3890034EBA8 /* iOSServerApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSServerApi.swift; sourceTree = "<group>"; }; 954E68342574E3890034EBA8 /* iOSServerApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSServerApi.swift; sourceTree = "<group>"; };
954E683C2574ED9E0034EBA8 /* UserDefaultsExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtensions.swift; sourceTree = "<group>"; }; 954E683C2574ED9E0034EBA8 /* UserDefaultsExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtensions.swift; sourceTree = "<group>"; };
9553DB08257173ED006AE167 /* iOSDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSDatabase.swift; sourceTree = "<group>"; }; 9553DB08257173ED006AE167 /* iOSRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSRepository.swift; sourceTree = "<group>"; };
95906F47257506360060F5D0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 95906F47257506360060F5D0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
95906F4C257510370060F5D0 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; }; 95906F4C257510370060F5D0 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
959B531E25764726009AD895 /* circolapp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = circolapp.entitlements; sourceTree = "<group>"; }; 959B531E25764726009AD895 /* circolapp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = circolapp.entitlements; sourceTree = "<group>"; };
@@ -104,7 +104,7 @@
95906F46257506050060F5D0 /* Model */ = { 95906F46257506050060F5D0 /* Model */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9553DB08257173ED006AE167 /* iOSDatabase.swift */, 9553DB08257173ED006AE167 /* iOSRepository.swift */,
954E68342574E3890034EBA8 /* iOSServerApi.swift */, 954E68342574E3890034EBA8 /* iOSServerApi.swift */,
); );
path = Model; path = Model;
@@ -271,7 +271,7 @@
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
9553DB09257173ED006AE167 /* iOSDatabase.swift in Sources */, 9553DB09257173ED006AE167 /* iOSRepository.swift in Sources */,
95CA31C0255C28C300AC095B /* CircularView.swift in Sources */, 95CA31C0255C28C300AC095B /* CircularView.swift in Sources */,
952DEDDF2576F8DC001DF85D /* SceneDelegate.swift in Sources */, 952DEDDF2576F8DC001DF85D /* SceneDelegate.swift in Sources */,
95CA31B2255C1EDE00AC095B /* ContentView.swift in Sources */, 95CA31B2255C1EDE00AC095B /* ContentView.swift in Sources */,

View File

@@ -41,8 +41,6 @@ class CircularViewModel: ObservableObject {
if (self.circularWatcher != nil) { if (self.circularWatcher != nil) {
self.startObservingCirculars() self.startObservingCirculars()
} }
self.updateCirculars()
}) })
} }

View File

@@ -19,9 +19,15 @@
import Foundation import Foundation
import Shared import Shared
class iOSDatabase { class iOSRepository {
static let database = DatabaseFactory().createDatabase(sqlDriver: DatabaseDriverFactory().createDriver()) static let database = DatabaseFactory().createDatabase(sqlDriver: DatabaseDriverFactory().createDriver())
public static func getCircularDao() -> CircularDao { public static func getCircularDao() -> CircularDao {
return CircularDao(database: database) return CircularDao(database: database)
} }
public static func getCircularRepository() -> CircularRepository {
let serverAPI = iOSServerApi.instance.serverAPI
return CircularRepository(circularDao: getCircularDao(), serverAPI: serverAPI)
}
} }

View File

@@ -20,6 +20,8 @@ import Foundation
import Shared import Shared
class iOSServerApi { class iOSServerApi {
static let instance = iOSServerApi()
private let key = "school" private let key = "school"
private let serverCompanion = ServerAPI.Companion() private let serverCompanion = ServerAPI.Companion()
@@ -29,7 +31,7 @@ class iOSServerApi {
init() { init() {
let serverID = UserDefaults.standard.integer(forKey: key) let serverID = UserDefaults.standard.integer(forKey: key)
let server = serverCompanion.getServer(serverID: Int32(serverID)) let server = serverCompanion.getServer(serverID: Int32(serverID))
serverAPI = ServerAPI(server: serverCompanion.createServer(server: server)) serverAPI = ServerAPI(serverName: server)
userDefaultsObserver = UserDefaults.standard.observe(\.school, options: [.initial, .new], changeHandler: { (defaults, change) in userDefaultsObserver = UserDefaults.standard.observe(\.school, options: [.initial, .new], changeHandler: { (defaults, change) in
self.changeServer(serverID: change.newValue ?? 0) self.changeServer(serverID: change.newValue ?? 0)
@@ -43,7 +45,13 @@ class iOSServerApi {
func changeServer(serverID: Int) { func changeServer(serverID: Int) {
let serverID = UserDefaults.standard.integer(forKey: key) let serverID = UserDefaults.standard.integer(forKey: key)
let server = serverCompanion.getServer(serverID: Int32(serverID)) let server = serverCompanion.getServer(serverID: Int32(serverID))
serverAPI = ServerAPI(serverName: server)
serverAPI.changeServer(server: serverCompanion.createServer(server: server)) CircularRepository(circularDao: iOSRepository.getCircularDao(), serverAPI: serverAPI).updateCirculars(returnNewCirculars: false, completionHandler:
{ result, error in
if let errorReal = error {
print(errorReal.localizedDescription)
}
})
} }
} }

View File

@@ -89,7 +89,7 @@ struct CircularView: View {
.buttonStyle(PlainButtonStyle()) .buttonStyle(PlainButtonStyle())
Button(action: { Button(action: {
iOSDatabase.getCircularDao().update(id: circular.id, school: circular.school, favourite: !circular.favourite, reminder: circular.reminder, completionHandler: {_,_ in }) iOSRepository.getCircularDao().update(id: circular.id, school: circular.school, favourite: !circular.favourite, reminder: circular.reminder, completionHandler: {_,_ in })
}) { }) {
Image(systemName: circular.favourite ? "bookmark.fill" : "bookmark") Image(systemName: circular.favourite ? "bookmark.fill" : "bookmark")
.foregroundColor(.blue) .foregroundColor(.blue)
@@ -99,7 +99,7 @@ struct CircularView: View {
.buttonStyle(PlainButtonStyle()) .buttonStyle(PlainButtonStyle())
Button(action: { Button(action: {
iOSDatabase.getCircularDao().update(id: circular.id, school: circular.school, favourite: circular.favourite, reminder: !circular.reminder, completionHandler: {_,_ in }) iOSRepository.getCircularDao().update(id: circular.id, school: circular.school, favourite: circular.favourite, reminder: !circular.reminder, completionHandler: {_,_ in })
}) { }) {
Image(systemName: circular.reminder ? "alarm.fill" : "alarm") Image(systemName: circular.reminder ? "alarm.fill" : "alarm")
.foregroundColor(.blue) .foregroundColor(.blue)

View File

@@ -21,7 +21,7 @@ import UIKit
import Shared import Shared
struct ContentView: View { struct ContentView: View {
@ObservedObject var circularViewModel = CircularViewModel(repository: CircularRepository(circularDao: iOSDatabase.getCircularDao(), serverAPI: ServerAPI(server: CurieServer()))) @ObservedObject var circularViewModel = CircularViewModel(repository: iOSRepository.getCircularRepository())
var body: some View { var body: some View {
NavigationView { NavigationView {