diff --git a/vector/src/main/java/im/vector/app/core/utils/Dialogs.kt b/vector/src/main/java/im/vector/app/core/utils/Dialogs.kt index ad01546782..11b9a693da 100644 --- a/vector/src/main/java/im/vector/app/core/utils/Dialogs.kt +++ b/vector/src/main/java/im/vector/app/core/utils/Dialogs.kt @@ -23,7 +23,7 @@ import android.webkit.WebViewClient import android.widget.TextView import com.google.android.material.dialog.MaterialAlertDialogBuilder import im.vector.app.R -import im.vector.app.features.discovery.IdentityServerWithTerms +import im.vector.app.features.discovery.ServerAndPolicies import me.gujun.android.span.link import me.gujun.android.span.span @@ -45,7 +45,7 @@ fun Context.displayInWebView(url: String) { .show() } -fun Context.showIdentityServerConsentDialog(identityServerWithTerms: IdentityServerWithTerms?, +fun Context.showIdentityServerConsentDialog(identityServerWithTerms: ServerAndPolicies?, consentCallBack: (() -> Unit)) { // Build the message val content = span { diff --git a/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewEvents.kt b/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewEvents.kt index c7fd13a62c..cb8d137c05 100644 --- a/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewEvents.kt +++ b/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewEvents.kt @@ -17,9 +17,9 @@ package im.vector.app.features.contactsbook import im.vector.app.core.platform.VectorViewEvents -import im.vector.app.features.discovery.IdentityServerWithTerms +import im.vector.app.features.discovery.ServerAndPolicies sealed class ContactsBookViewEvents : VectorViewEvents { data class Failure(val throwable: Throwable) : ContactsBookViewEvents() - data class OnPoliciesRetrieved(val identityServerWithTerms: IdentityServerWithTerms?) : ContactsBookViewEvents() + data class OnPoliciesRetrieved(val identityServerWithTerms: ServerAndPolicies?) : ContactsBookViewEvents() } 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 03c5d981cb..551b72dd82 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 @@ -433,6 +433,6 @@ class DiscoverySettingsController @Inject constructor( fun onTapUpdateUserConsent(newValue: Boolean) fun onTapRetryToRetrieveBindings() fun onPolicyUrlsExpandedStateToggled(newExpandedState: Boolean) - fun onPolicyTapped(policy: IdentityServerPolicy) + fun onPolicyTapped(policy: ServerPolicy) } } 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 e1e1c9a537..2c37a19e7d 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 @@ -204,7 +204,7 @@ class DiscoverySettingsFragment @Inject constructor( viewModel.handle(DiscoverySettingsAction.SetPoliciesExpandState(expanded = newExpandedState)) } - override fun onPolicyTapped(policy: IdentityServerPolicy) { + override fun onPolicyTapped(policy: ServerPolicy) { openUrlInChromeCustomTab(requireContext(), null, policy.url) } 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 da8603a437..e44caa4121 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 @@ -21,7 +21,7 @@ import com.airbnb.mvrx.MavericksState import com.airbnb.mvrx.Uninitialized data class DiscoverySettingsState( - val identityServer: Async = Uninitialized, + val identityServer: Async = Uninitialized, val emailList: Async> = Uninitialized, val phoneNumbersList: Async> = Uninitialized, // Can be true if terms are updated 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 4eb3fada28..19f233fe98 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 @@ -78,7 +78,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( init { setState { copy( - identityServer = Success(identityService.getCurrentIdentityServerUrl()?.let { IdentityServerWithTerms(it, emptyList()) }), + identityServer = Success(identityService.getCurrentIdentityServerUrl()?.let { ServerAndPolicies(it, emptyList()) }), userConsent = identityService.getUserConsent() ) } @@ -151,7 +151,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( val data = session.identityService().setNewIdentityServer(action.url) setState { copy( - identityServer = Success(IdentityServerWithTerms(data, emptyList())), + identityServer = Success(ServerAndPolicies(data, emptyList())), userConsent = false ) } @@ -401,7 +401,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( } } - private suspend fun fetchIdentityServerWithTerms(): IdentityServerWithTerms? { + private suspend fun fetchIdentityServerWithTerms(): ServerAndPolicies? { return session.fetchIdentityServerWithTerms(stringProvider.getString(R.string.resources_language)) } } diff --git a/vector/src/main/java/im/vector/app/features/discovery/Extensions.kt b/vector/src/main/java/im/vector/app/features/discovery/Extensions.kt index 08712f6e68..1360c9e95d 100644 --- a/vector/src/main/java/im/vector/app/features/discovery/Extensions.kt +++ b/vector/src/main/java/im/vector/app/features/discovery/Extensions.kt @@ -20,21 +20,21 @@ import im.vector.app.core.utils.ensureProtocol import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.terms.TermsService -suspend fun Session.fetchIdentityServerWithTerms(userLanguage: String): IdentityServerWithTerms? { +suspend fun Session.fetchIdentityServerWithTerms(userLanguage: String): ServerAndPolicies? { val identityServerUrl = identityService().getCurrentIdentityServerUrl() return identityServerUrl?.let { fetchTerms(it, TermsService.ServiceType.IdentityService, userLanguage) } } -suspend fun Session.fetchHomeserverWithTerms(userLanguage: String): IdentityServerWithTerms { +suspend fun Session.fetchHomeserverWithTerms(userLanguage: String): ServerAndPolicies { val homeserverUrl = sessionParams.homeServerUrl return fetchTerms(homeserverUrl, TermsService.ServiceType.Homeserver, userLanguage) } private suspend fun Session.fetchTerms(serviceUrl: String, serviceType: TermsService.ServiceType, - userLanguage: String): IdentityServerWithTerms { + userLanguage: String): ServerAndPolicies { val terms = getTerms(serviceType, serviceUrl.ensureProtocol()) .serverResponse .getLocalizedTerms(userLanguage) @@ -44,8 +44,8 @@ private suspend fun Session.fetchTerms(serviceUrl: String, if (name == null || url == null) { null } else { - IdentityServerPolicy(name = name, url = url) + ServerPolicy(name = name, url = url) } } - return IdentityServerWithTerms(serviceUrl, policyUrls) + return ServerAndPolicies(serviceUrl, policyUrls) } diff --git a/vector/src/main/java/im/vector/app/features/discovery/IdentityServerWithTerms.kt b/vector/src/main/java/im/vector/app/features/discovery/ServerAndPolicies.kt similarity index 82% rename from vector/src/main/java/im/vector/app/features/discovery/IdentityServerWithTerms.kt rename to vector/src/main/java/im/vector/app/features/discovery/ServerAndPolicies.kt index 0454de70d7..17f1b0cff9 100644 --- a/vector/src/main/java/im/vector/app/features/discovery/IdentityServerWithTerms.kt +++ b/vector/src/main/java/im/vector/app/features/discovery/ServerAndPolicies.kt @@ -16,13 +16,12 @@ package im.vector.app.features.discovery -// TODO Rename for more generic name -data class IdentityServerWithTerms( +data class ServerAndPolicies( val serverUrl: String, - val policies: List + val policies: List ) -data class IdentityServerPolicy( +data class ServerPolicy( val name: String, val url: String ) diff --git a/vector/src/main/java/im/vector/app/features/settings/legals/LegalsController.kt b/vector/src/main/java/im/vector/app/features/settings/legals/LegalsController.kt index 29ad27b4a9..9bfbea6a42 100644 --- a/vector/src/main/java/im/vector/app/features/settings/legals/LegalsController.kt +++ b/vector/src/main/java/im/vector/app/features/settings/legals/LegalsController.kt @@ -26,8 +26,8 @@ import im.vector.app.core.epoxy.errorWithRetryItem import im.vector.app.core.epoxy.loadingItem import im.vector.app.core.error.ErrorFormatter import im.vector.app.core.resources.StringProvider -import im.vector.app.features.discovery.IdentityServerPolicy -import im.vector.app.features.discovery.IdentityServerWithTerms +import im.vector.app.features.discovery.ServerPolicy +import im.vector.app.features.discovery.ServerAndPolicies import im.vector.app.features.discovery.discoveryPolicyItem import im.vector.app.features.discovery.settingsInfoItem import im.vector.app.features.discovery.settingsSectionTitleItem @@ -75,16 +75,16 @@ class LegalsController @Inject constructor( } } - private fun buildPolicy(tag: String, serverWithTerms: Async) { + private fun buildPolicy(tag: String, serverAndPolicies: Async) { val host = this - when (serverWithTerms) { + when (serverAndPolicies) { Uninitialized, is Loading -> loadingItem { id("loading_$tag") } is Success -> { - val policies = serverWithTerms()?.policies + val policies = serverAndPolicies()?.policies if (policies.isNullOrEmpty()) { settingsInfoItem { id("emptyPolicy") @@ -104,7 +104,7 @@ class LegalsController @Inject constructor( is Fail -> { errorWithRetryItem { id("errorRetry_$tag") - text(host.errorFormatter.toHumanReadable(serverWithTerms.error)) + text(host.errorFormatter.toHumanReadable(serverAndPolicies.error)) listener { host.listener?.onTapRetry() } } } @@ -113,6 +113,6 @@ class LegalsController @Inject constructor( interface Listener { fun onTapRetry() - fun openPolicy(policy: IdentityServerPolicy) + fun openPolicy(policy: ServerPolicy) } } diff --git a/vector/src/main/java/im/vector/app/features/settings/legals/LegalsFragment.kt b/vector/src/main/java/im/vector/app/features/settings/legals/LegalsFragment.kt index 9aa7633e84..c6b5c2bf1c 100644 --- a/vector/src/main/java/im/vector/app/features/settings/legals/LegalsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/legals/LegalsFragment.kt @@ -29,7 +29,7 @@ import im.vector.app.core.extensions.exhaustive import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.utils.openUrlInChromeCustomTab import im.vector.app.databinding.FragmentGenericRecyclerBinding -import im.vector.app.features.discovery.IdentityServerPolicy +import im.vector.app.features.discovery.ServerPolicy import javax.inject.Inject class LegalsFragment @Inject constructor( @@ -78,7 +78,7 @@ class LegalsFragment @Inject constructor( viewModel.handle(LegalsAction.Refresh) } - override fun openPolicy(policy: IdentityServerPolicy) { + override fun openPolicy(policy: ServerPolicy) { openUrlInChromeCustomTab(requireContext(), null, policy.url) } } diff --git a/vector/src/main/java/im/vector/app/features/settings/legals/LegalsState.kt b/vector/src/main/java/im/vector/app/features/settings/legals/LegalsState.kt index fea9a06c11..ad01f85338 100644 --- a/vector/src/main/java/im/vector/app/features/settings/legals/LegalsState.kt +++ b/vector/src/main/java/im/vector/app/features/settings/legals/LegalsState.kt @@ -19,10 +19,10 @@ package im.vector.app.features.settings.legals import com.airbnb.mvrx.Async import com.airbnb.mvrx.MavericksState import com.airbnb.mvrx.Uninitialized -import im.vector.app.features.discovery.IdentityServerWithTerms +import im.vector.app.features.discovery.ServerAndPolicies data class LegalsState( - val homeServer: Async = Uninitialized, + val homeServer: Async = Uninitialized, val hasIdentityServer: Boolean = false, - val identityServer: Async = Uninitialized + val identityServer: Async = Uninitialized ) : MavericksState diff --git a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewEvents.kt b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewEvents.kt index ffda0dd505..ef29e8015a 100644 --- a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewEvents.kt +++ b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewEvents.kt @@ -17,13 +17,13 @@ package im.vector.app.features.userdirectory import im.vector.app.core.platform.VectorViewEvents -import im.vector.app.features.discovery.IdentityServerWithTerms +import im.vector.app.features.discovery.ServerAndPolicies /** * Transient events for invite users to room screen */ sealed class UserListViewEvents : VectorViewEvents { data class Failure(val throwable: Throwable) : UserListViewEvents() - data class OnPoliciesRetrieved(val identityServerWithTerms: IdentityServerWithTerms?) : UserListViewEvents() + data class OnPoliciesRetrieved(val identityServerWithTerms: ServerAndPolicies?) : UserListViewEvents() data class OpenShareMatrixToLink(val link: String) : UserListViewEvents() }