diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings index 874363db8..cb13f4017 100644 --- a/Riot/Assets/en.lproj/Vector.strings +++ b/Riot/Assets/en.lproj/Vector.strings @@ -520,6 +520,8 @@ "identity_server_settings_description" = "You are currently using %@ to discover and be discoverable by existing contacts you know."; "identity_server_settings_no_is_description" = "You are not currently using an identity server. To discover and be discoverable by existing contacts, add one above."; +"identity_server_settings_place_holder" = "Enter an identity server"; + "identity_server_settings_add" = "Add"; "identity_server_settings_change" = "Change"; diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift index 282dbd2a6..7de2c4223 100644 --- a/Riot/Generated/Strings.swift +++ b/Riot/Generated/Strings.swift @@ -1210,6 +1210,10 @@ internal enum VectorL10n { internal static var identityServerSettingsNoIsDescription: String { return VectorL10n.tr("Vector", "identity_server_settings_no_is_description") } + /// Enter an identity server + internal static var identityServerSettingsPlaceHolder: String { + return VectorL10n.tr("Vector", "identity_server_settings_place_holder") + } /// Identity Server internal static var identityServerSettingsTitle: String { return VectorL10n.tr("Vector", "identity_server_settings_title") diff --git a/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewController.swift b/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewController.swift index 9210b8810..b783cd0b6 100644 --- a/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewController.swift +++ b/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewController.swift @@ -141,7 +141,10 @@ final class SettingsIdentityServerViewController: UIViewController { self.identityServerLabel.text = VectorL10n.identityServerSettingsTitle + self.identityServerTextField.placeholder = VectorL10n.identityServerSettingsPlaceHolder + self.identityServerTextField.keyboardType = .URL self.identityServerTextField.addTarget(self, action: #selector(identityServerTextFieldDidChange(_:)), for: .editingChanged) + self.identityServerTextField.addTarget(self, action: #selector(identityServerTextFieldDidEndOnExit(_:)), for: .editingDidEndOnExit) self.disconnectMessageLabel.text = VectorL10n.identityServerSettingsDisconnectInfo self.disconnectButton.setTitle(VectorL10n.identityServerSettingsDisconnect, for: .normal) @@ -181,8 +184,9 @@ final class SettingsIdentityServerViewController: UIViewController { } private func renderNoIdentityServer() { + self.identityServerTextField.text = nil self.messageLabel.text = VectorL10n.identityServerSettingsNoIsDescription - + self.addOrChangeButton.setTitle(VectorL10n.identityServerSettingsAdd, for: .normal) self.addOrChangeButton.setTitle(VectorL10n.identityServerSettingsAdd, for: .highlighted) @@ -191,10 +195,7 @@ final class SettingsIdentityServerViewController: UIViewController { } private func renderIdentityServer(host: String) { - self.identityServerTextField.text = host - self.identityServerTextField.placeholder = RiotDefaults.identityserverurl - self.messageLabel.text = VectorL10n.identityServerSettingsDescription(host.hostname()) self.addOrChangeButton.setTitle(VectorL10n.identityServerSettingsChange, for: .normal) @@ -309,7 +310,16 @@ final class SettingsIdentityServerViewController: UIViewController { && (textField.text?.hostname() != self.viewModel.identityServer?.hostname()) } + @objc private func identityServerTextFieldDidEndOnExit(_ textField: UITextField) { + self.addOrChangeAction() + } + + @IBAction private func addOrChangeButtonAction(_ sender: Any) { + self.addOrChangeAction() + } + + private func addOrChangeAction() { self.identityServerTextField.resignFirstResponder() guard let displayMode = self.displayMode, let identityServer = self.identityServerTextField.text else {