diff --git a/AgileWorks/AgileWorks.xcodeproj/project.pbxproj b/AgileWorks/AgileWorks.xcodeproj/project.pbxproj index 5c364a5c7268980f4d269f75a749200868e823be..12a7cb625d84c7c3b131691e8a77b366f0cf5019 100644 --- a/AgileWorks/AgileWorks.xcodeproj/project.pbxproj +++ b/AgileWorks/AgileWorks.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ 31AA003024347BD1000177B4 /* ApprovalResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31AA002E24347BBD000177B4 /* ApprovalResponse.swift */; }; 3AF4A84524A06A73006C0C0A /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3AF4A84724A06A73006C0C0A /* Localizable.strings */; }; 430C967B2E966FC047726763 /* Pods_All_AgileWorks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CF516C40B9AA44C977664C98 /* Pods_All_AgileWorks.framework */; }; + 5B3C0583429101EF000E5B66 /* Pods_All_AgileWorks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75D4EC7F2A3C2CAD0096F9D2 /* Pods_All_AgileWorks.framework */; }; 752FE4D02966B9C2004922AD /* ISO8859 in Frameworks */ = {isa = PBXBuildFile; productRef = 752FE4CF2966B9C2004922AD /* ISO8859 */; }; 7549FC8F27EAF42C00FF9E0C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3AF4A84724A06A73006C0C0A /* Localizable.strings */; }; 7549FC9027EAF42C00FF9E0C /* English.strings in Resources */ = {isa = PBXBuildFile; fileRef = 75917F9D27BDF1C30051E201 /* English.strings */; }; @@ -56,7 +57,6 @@ 75D4EC732A3C12730096F9D2 /* WidgetConfiguration.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 75D4EC702A3C01D90096F9D2 /* WidgetConfiguration.intentdefinition */; }; 75D4EC742A3C168C0096F9D2 /* IntentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D4EC672A3C00B00096F9D2 /* IntentHandler.swift */; }; 75D4EC782A3C29830096F9D2 /* UserDefaultsDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD928CCD2407500400ED04C2 /* UserDefaultsDataStore.swift */; }; - 75D4EC802A3C2CAD0096F9D2 /* Pods_All_AgileWorks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75D4EC7F2A3C2CAD0096F9D2 /* Pods_All_AgileWorks.framework */; }; 75D4EC812A3C2CAD0096F9D2 /* Pods_All_AgileWorks.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 75D4EC7F2A3C2CAD0096F9D2 /* Pods_All_AgileWorks.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 75D4EC872A3C32F10096F9D2 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5061B3242866780014F3FA /* Configuration.swift */; }; 75D4EC882A3C33310096F9D2 /* KeychainDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDEA2CD4246CDAEF00D3E15F /* KeychainDataStore.swift */; }; @@ -445,7 +445,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 75D4EC802A3C2CAD0096F9D2 /* Pods_All_AgileWorks.framework in Frameworks */, 75D4EC652A3C00B00096F9D2 /* Intents.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -472,6 +471,7 @@ files = ( 752FE4D02966B9C2004922AD /* ISO8859 in Frameworks */, 430C967B2E966FC047726763 /* Pods_All_AgileWorks.framework in Frameworks */, + 5B3C0583429101EF000E5B66 /* Pods_All_AgileWorks.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1258,7 +1258,7 @@ ); mainGroup = BDA1830623F3FD7F00C9A6DD; packageReferences = ( - 752FE4CE2966B9C1004922AD /* XCRemoteSwiftPackageReference "ISO8859" */, + 752FE4CE2966B9C1004922AD /* XCRemoteSwiftPackageReference "ISO8859.git" */, ); productRefGroup = BDA1831023F3FD7F00C9A6DD /* Products */; projectDirPath = ""; @@ -2477,7 +2477,7 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 752FE4CE2966B9C1004922AD /* XCRemoteSwiftPackageReference "ISO8859" */ = { + 752FE4CE2966B9C1004922AD /* XCRemoteSwiftPackageReference "ISO8859.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/Cosmo/ISO8859.git"; requirement = { @@ -2490,7 +2490,7 @@ /* Begin XCSwiftPackageProductDependency section */ 752FE4CF2966B9C2004922AD /* ISO8859 */ = { isa = XCSwiftPackageProductDependency; - package = 752FE4CE2966B9C1004922AD /* XCRemoteSwiftPackageReference "ISO8859" */; + package = 752FE4CE2966B9C1004922AD /* XCRemoteSwiftPackageReference "ISO8859.git" */; productName = ISO8859; }; /* End XCSwiftPackageProductDependency section */ diff --git a/AgileWorks/AgileWorks/App/RootViewController.swift b/AgileWorks/AgileWorks/App/RootViewController.swift index bf268dce41794b201982b938c5cf958ed97aba2b..77102984917768fce52688884dcd6fe0583b9988 100644 --- a/AgileWorks/AgileWorks/App/RootViewController.swift +++ b/AgileWorks/AgileWorks/App/RootViewController.swift @@ -111,7 +111,7 @@ extension RootViewController { KeychainDataStore().removeSessionID(serverNumber: serverNumber) } //認証情報削除 - KeychainDataStore().removeServerName() + KeychainDataStore().removeSystemName() KeychainDataStore().removeLanguage() } diff --git a/AgileWorks/AgileWorks/Login/View/LoginViewController.swift b/AgileWorks/AgileWorks/Login/View/LoginViewController.swift index e96cf0acf3d840cecbe96dba4e82fca62d7c4133..04c7c1ef00c038eca11d0b231c38977821687446 100644 --- a/AgileWorks/AgileWorks/Login/View/LoginViewController.swift +++ b/AgileWorks/AgileWorks/Login/View/LoginViewController.swift @@ -206,8 +206,8 @@ class LoginViewController: UIViewController { let serverList = UserDefaultsDataStore().readServerList() var serverCheckFlg = false for serverNumber in serverList { - let serverName = KeychainDataStore().readServerName(serverNumber: serverNumber)! - if serverName == serverHost { + let systemName = KeychainDataStore().readSystemName(serverNumber: serverNumber) + if systemName == serverHost { serverCheckFlg = true let alert = UIAlertController(title: "", message: getLocalizableStrings(key: "LoginServerAlert", comment: ""), preferredStyle: .alert) let ok = UIAlertAction(title: "OK", style: .default) { (action) in @@ -269,10 +269,10 @@ class LoginViewController: UIViewController { Session.send(sessionEndpoint) { result in switch result { // セッション情報取得成功 - case .success(let response): + case .success(var response): setStringsName(language: response.user.displayLanguage) KeychainDataStore().writeSessionID(sessionID: response.sessionId) - KeychainDataStore().writeServerName(serverName: "サーバー識別名") //TODO response.server.name + KeychainDataStore().writeSystemName(systemName: response.systemName) DispatchQueue.main.async { UserDefaultsDataStore().addServerList() let serverList = UserDefaultsDataStore().readServerList() diff --git a/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift b/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift index b7888267b1a41fed29e61e4f67a5bfb18a146ce6..6520864444dd407f8fbdf8704dcd3a466e81b1b0 100644 --- a/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift +++ b/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift @@ -48,9 +48,9 @@ class ServerSwitchingTableTableViewController: UITableViewController { let cell = tableView.dequeueReusableCell(withIdentifier: "ServerSwitchingTableViewCell", for: indexPath) let serverList = UserDefaultsDataStore().readServerList() - let serverName = cell.viewWithTag(1) as! UILabel + let systemName = cell.viewWithTag(1) as! UILabel let serverNumber = serverList[indexPath.row] - serverName.text = KeychainDataStore().readServerName(serverNumber: serverNumber) + systemName.text = KeychainDataStore().readSystemName(serverNumber: serverNumber) let badgeIcon = cell.viewWithTag(2) as! UIImageView badgeIcon.image = UIImage(systemName: "circle.fill", withConfiguration: UIImage.SymbolConfiguration(font: .systemFont(ofSize: 25))) diff --git a/AgileWorks/AgileWorks/WebView/View/MenuViewController.swift b/AgileWorks/AgileWorks/WebView/View/MenuViewController.swift index 0129ea3ff158c2b45851f55b092c67bb6f47ad20..1700e93c630508f1a5203b21e0d8254198cc6da4 100644 --- a/AgileWorks/AgileWorks/WebView/View/MenuViewController.swift +++ b/AgileWorks/AgileWorks/WebView/View/MenuViewController.swift @@ -65,15 +65,15 @@ class MenuViewController: UIViewController { // セッション情報取得 loadSessionInfo { result in switch result { - case .success(let response): + case .success(var response): let userName = response.user.name - let serverName = KeychainDataStore().readServerURL()! //TODO response.server.name let sessionId = response.sessionId + let systemName = response.systemName DispatchQueue.main.async { self.nameLabel.text = userName - self.serverLabel.text = serverName KeychainDataStore().writeSessionID(sessionID: sessionId) - KeychainDataStore().writeServerName(serverName: serverName) + KeychainDataStore().writeSystemName(systemName: systemName) + self.serverLabel.text = KeychainDataStore().readSystemName() } case .failure: DispatchQueue.main.async { diff --git a/AgileWorks/AgileWorks/WebView/View/WebViewController.swift b/AgileWorks/AgileWorks/WebView/View/WebViewController.swift index 823cf8832f930401464768b1f87c7669dc9ab18c..6e4143690bd4155f4aa3901ef831fcb08cf5c9c3 100644 --- a/AgileWorks/AgileWorks/WebView/View/WebViewController.swift +++ b/AgileWorks/AgileWorks/WebView/View/WebViewController.swift @@ -224,9 +224,9 @@ class WebViewController: UIViewController { Session.send(sessionEndpoint) { result in switch result { // セッション情報取得成功 - case .success(let response): + case .success(var response): KeychainDataStore().writeSessionID(sessionID: response.sessionId) - KeychainDataStore().writeServerName(serverName: "サーバー識別名") //TODO response.server.name + KeychainDataStore().writeSystemName(systemName: response.systemName) setStringsName(language: response.user.displayLanguage) if isInit { // 画面ロード diff --git a/AgileWorks/Common/DataStore/KeychainDataStore.swift b/AgileWorks/Common/DataStore/KeychainDataStore.swift index 7d7c600649aa502456e84cb3965bae834cdf7e16..03de57d9aad1e30614ffe427c83b906ed362b5b2 100644 --- a/AgileWorks/Common/DataStore/KeychainDataStore.swift +++ b/AgileWorks/Common/DataStore/KeychainDataStore.swift @@ -19,7 +19,7 @@ final class KeychainDataStore: DataStoreProtocol { private let kContextPath: String = "ContextPath" private let kDeviceID: String = "DeviceID" private let kSessionID: String = "SessionID" - private let kServerName: String = "ServerName" + private let kSystemName: String = "SystemName" private let kCertificateLabel: String = "CertificateLabel" // アクセストークンの書き込み @@ -177,21 +177,27 @@ final class KeychainDataStore: DataStoreProtocol { } // サーバー識別名の書き込み - func writeServerName(serverName: String) { - setKeychainValue(key: kServerName, value: serverName) + func writeSystemName(systemName: String?) { + if systemName != nil { + setKeychainValue(key: kSystemName, value: systemName!) + } else { + //systemNameがレスポンスに無い場合、serverURLをsystemNameとして設定 + let systemName = readServerURL() + setKeychainValue(key: kSystemName, value: systemName!) + } } // サーバー識別名の読み込み - func readServerName(serverNumber: Int? = nil) -> String? { + func readSystemName(serverNumber: Int? = nil) -> String? { if let serverNumber = serverNumber { - return getKeychainValue(key: kServerURL, serverNumber: serverNumber) + return getKeychainValue(key: kSystemName, serverNumber: serverNumber) } - return getKeychainValue(key: kServerURL) + return getKeychainValue(key: kSystemName) } // サーバー識別名の削除 - func removeServerName() { - removeKeychainValue(key: kServerName) + func removeSystemName() { + removeKeychainValue(key: kSystemName) } func writeCertificateLabel(label: String) { diff --git a/AgileWorks/Common/Entity/SessionInfo.swift b/AgileWorks/Common/Entity/SessionInfo.swift index 695a4e85af69b993c0d59e4217327c46100fc6d0..a9a3e60037e7ce265498ff52be5e6c6a58ba6adc 100644 --- a/AgileWorks/Common/Entity/SessionInfo.swift +++ b/AgileWorks/Common/Entity/SessionInfo.swift @@ -34,4 +34,5 @@ struct SessionInfo: Codable { let unit: [Unit] let role: [Role] let sessionId: String + var systemName: String? } diff --git a/AgileWorks/Common/WidgetView.swift b/AgileWorks/Common/WidgetView.swift index ed1a4f5660cfb72b971cd39ea6bed13c5340e932..7120725734f2638707cbed98cb52dcc499bae39c 100644 --- a/AgileWorks/Common/WidgetView.swift +++ b/AgileWorks/Common/WidgetView.swift @@ -56,7 +56,7 @@ struct TodayWidgetView: View { if !UserDefaultsDataStore().readServerList().isEmpty { Picker(selection: $selection, label: Text("")) { ForEach(0..