mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-28 12:16:58 +02:00
IM: Terms modal: Check checkboxes of already accepted terms urls
This commit is contained in:
@@ -135,8 +135,8 @@ final class ServiceTermsModalScreenViewController: UIViewController {
|
||||
switch viewState {
|
||||
case .loading:
|
||||
self.renderLoading()
|
||||
case .loaded(let policies):
|
||||
self.renderLoaded(policies: policies)
|
||||
case .loaded(let policies, let alreadyAcceptedPoliciesUrls):
|
||||
self.renderLoaded(policies: policies, alreadyAcceptedPoliciesUrls: alreadyAcceptedPoliciesUrls)
|
||||
case .accepted:
|
||||
self.renderAccepted()
|
||||
case .error(let error):
|
||||
@@ -148,10 +148,12 @@ final class ServiceTermsModalScreenViewController: UIViewController {
|
||||
self.activityPresenter.presentActivityIndicator(on: self.view, animated: true)
|
||||
}
|
||||
|
||||
private func renderLoaded(policies: [MXLoginPolicyData]) {
|
||||
private func renderLoaded(policies: [MXLoginPolicyData], alreadyAcceptedPoliciesUrls: [String]) {
|
||||
self.activityPresenter.removeCurrentActivityIndicator(animated: true)
|
||||
|
||||
self.policies = policies
|
||||
self.updateCheckedPolicies(with: alreadyAcceptedPoliciesUrls)
|
||||
|
||||
self.refreshViews()
|
||||
}
|
||||
|
||||
@@ -178,6 +180,15 @@ final class ServiceTermsModalScreenViewController: UIViewController {
|
||||
self.acceptButton.isEnabled = (self.policies.count == self.checkedPolicies.count)
|
||||
}
|
||||
|
||||
// Pre-check policies already accepted by the user
|
||||
private func updateCheckedPolicies(with acceptedPoliciesUrls: [String]) {
|
||||
for url in acceptedPoliciesUrls {
|
||||
if let policyIndex = self.policies.firstIndex(where: { $0.url == url }) {
|
||||
checkedPolicies.insert(policyIndex)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// MARK: - Actions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user