mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-02 06:06:57 +02:00
Privacy: IS Settings: Plug the UITextField to the model
This commit is contained in:
@@ -136,6 +136,8 @@ final class SettingsIdentityServerViewController: UIViewController {
|
||||
|
||||
self.identityServerLabel.text = VectorL10n.identityServerSettingsTitle
|
||||
|
||||
self.identityServerTextField.addTarget(self, action: #selector(identityServerTextFieldDidChange(_:)), for: .editingChanged)
|
||||
|
||||
self.disconnectMessageLabel.text = VectorL10n.identityServerSettingsDisconnectInfo
|
||||
self.disconnectButton.setTitle(VectorL10n.identityServerSettingsDisconnect, for: .normal)
|
||||
self.disconnectButton.setTitle(VectorL10n.identityServerSettingsDisconnect, for: .highlighted)
|
||||
@@ -159,6 +161,8 @@ final class SettingsIdentityServerViewController: UIViewController {
|
||||
private func renderLoaded(displayMode: SettingsIdentityServerDisplayMode) {
|
||||
self.activityPresenter.removeCurrentActivityIndicator(animated: true)
|
||||
|
||||
self.displayMode = displayMode
|
||||
|
||||
switch displayMode {
|
||||
case .noIdentityServer:
|
||||
self.renderNoIdentityServer()
|
||||
@@ -179,12 +183,10 @@ final class SettingsIdentityServerViewController: UIViewController {
|
||||
|
||||
private func renderIdentityServer(host: String) {
|
||||
|
||||
let hostname = URL(string: host)?.host ?? host
|
||||
|
||||
self.identityServerTextField.text = host
|
||||
self.identityServerTextField.placeholder = RiotDefaults.identityserverurl
|
||||
|
||||
self.messageLabel.text = VectorL10n.identityServerSettingsDescription(hostname)
|
||||
self.messageLabel.text = VectorL10n.identityServerSettingsDescription(host.hostname())
|
||||
|
||||
self.addOrChangeButton.setTitle(VectorL10n.identityServerSettingsChange, for: .normal)
|
||||
self.addOrChangeButton.setTitle(VectorL10n.identityServerSettingsChange, for: .highlighted)
|
||||
@@ -205,13 +207,18 @@ final class SettingsIdentityServerViewController: UIViewController {
|
||||
|
||||
// MARK: - Actions
|
||||
|
||||
@objc private func identityServerTextFieldDidChange(_ textField: UITextField) {
|
||||
self.addOrChangeButton.isUserInteractionEnabled = textField.text?.count ?? 0 > 0
|
||||
&& (textField.text?.hostname() != self.viewModel.identityServer?.hostname())
|
||||
}
|
||||
|
||||
@IBAction private func addOrChangeButtonAction(_ sender: Any) {
|
||||
guard let displayMode = self.displayMode else {
|
||||
self.identityServerTextField.resignFirstResponder()
|
||||
|
||||
guard let displayMode = self.displayMode, let identityServer = self.identityServerTextField.text else {
|
||||
return
|
||||
}
|
||||
|
||||
let identityServer = "TODO"
|
||||
|
||||
let viewAction: SettingsIdentityServerViewAction?
|
||||
|
||||
switch displayMode {
|
||||
@@ -240,3 +247,9 @@ extension SettingsIdentityServerViewController: SettingsIdentityServerViewModelV
|
||||
self.render(viewState: viewState)
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate extension String {
|
||||
func hostname() -> String {
|
||||
return URL(string: self)?.host ?? self
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,8 @@ final class SettingsIdentityServerViewModel: SettingsIdentityServerViewModelType
|
||||
// MARK: Public
|
||||
|
||||
weak var viewDelegate: SettingsIdentityServerViewModelViewDelegate?
|
||||
|
||||
var identityServer: String?
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
init(session: MXSession) {
|
||||
@@ -125,6 +126,7 @@ final class SettingsIdentityServerViewModel: SettingsIdentityServerViewModelType
|
||||
private func refreshIdentityServerViewState() {
|
||||
if let identityService = self.session.identityService {
|
||||
let host = identityService.identityServer
|
||||
self.identityServer = host
|
||||
self.update(viewState: .loaded(displayMode: .identityServer(host: host)))
|
||||
} else {
|
||||
self.update(viewState: .loaded(displayMode: .noIdentityServer))
|
||||
|
||||
@@ -26,6 +26,8 @@ protocol SettingsIdentityServerViewModelViewDelegate: class {
|
||||
protocol SettingsIdentityServerViewModelType {
|
||||
|
||||
var viewDelegate: SettingsIdentityServerViewModelViewDelegate? { get set }
|
||||
|
||||
var identityServer: String? { get }
|
||||
|
||||
func process(viewAction: SettingsIdentityServerViewAction)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user