diff --git a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsController.kt b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsController.kt index 171a73c61d..2ed45c127b 100644 --- a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsController.kt +++ b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsController.kt @@ -121,8 +121,8 @@ class DiscoverySettingsController @Inject constructor( title(identityServerUrl) } - val terms = identityServer?.terms - if (terms != null) { + val policies = identityServer?.policies + if (policies != null) { formAdvancedToggleItem { id("policy-urls") val titleRes = if (data.isIdentityPolicyUrlsExpanded) { @@ -133,14 +133,12 @@ class DiscoverySettingsController @Inject constructor( listener { host.listener?.onPolicyUrlsExpandedStateToggled() } } if (data.isIdentityPolicyUrlsExpanded) { - terms.forEach { term -> + policies.forEach { policy -> discoveryPolicyItem { - id(term.url) - name(term.name) - url(term.url) - clickListener { - // TODO - } + id(policy.url) + name(policy.name) + url(policy.url) + clickListener { host.listener?.onPolicyTapped(policy) } } } } @@ -428,5 +426,6 @@ class DiscoverySettingsController @Inject constructor( fun onTapUpdateUserConsent(newValue: Boolean) fun onTapRetryToRetrieveBindings() fun onPolicyUrlsExpandedStateToggled() + fun onPolicyTapped(policy: IdentityServerPolicy) } } diff --git a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsFragment.kt b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsFragment.kt index a1582d1a44..1302df48ec 100644 --- a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsFragment.kt @@ -31,7 +31,9 @@ import im.vector.app.core.extensions.exhaustive import im.vector.app.core.extensions.observeEvent import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.utils.displayInWebView import im.vector.app.core.utils.ensureProtocol +import im.vector.app.core.utils.openUrlInChromeCustomTab import im.vector.app.core.utils.showIdentityServerConsentDialog import im.vector.app.databinding.FragmentGenericRecyclerBinding import im.vector.app.features.discovery.change.SetIdentityServerFragment @@ -198,6 +200,10 @@ class DiscoverySettingsFragment @Inject constructor( viewModel.handle(DiscoverySettingsAction.PolicyUrlsExpandedStateToggled) } + override fun onPolicyTapped(policy: IdentityServerPolicy) { + openUrlInChromeCustomTab(requireContext(), null, policy.url) + } + private fun navigateToChangeIdentityServerFragment() { (vectorBaseActivity as? VectorSettingsActivity)?.navigateTo(SetIdentityServerFragment::class.java) } diff --git a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsState.kt b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsState.kt index a70b66941b..1d7346e463 100644 --- a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsState.kt +++ b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsState.kt @@ -19,7 +19,6 @@ package im.vector.app.features.discovery import com.airbnb.mvrx.Async import com.airbnb.mvrx.MvRxState import com.airbnb.mvrx.Uninitialized -import org.matrix.android.sdk.internal.auth.registration.LocalizedFlowDataLoginTerms data class DiscoverySettingsState( val identityServer: Async = Uninitialized, @@ -33,7 +32,7 @@ data class DiscoverySettingsState( data class IdentityServerWithTerms( val serverUrl: String, - val terms: List + val policies: List ) -data class IdentityServerTerms(val name: String, val url: String) +data class IdentityServerPolicy(val name: String, val url: String) diff --git a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsViewModel.kt b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsViewModel.kt index 4240bdedad..6d872e5043 100644 --- a/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/discovery/DiscoverySettingsViewModel.kt @@ -427,7 +427,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( if (name == null || url == null) { null } else { - IdentityServerTerms(name = name, url = url) + IdentityServerPolicy(name = name, url = url) } } IdentityServerWithTerms(identityServerUrl, policyUrls)