From af3fc22e2d84fa8c1da6d699e5bcdcd1400f590b Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 11 May 2020 00:31:57 +0200 Subject: [PATCH] Identity: correctly handle terms update --- .idea/dictionaries/bmarty.xml | 2 ++ .../features/discovery/DiscoverySettingsController.kt | 8 ++++---- .../riotx/features/discovery/DiscoverySettingsFragment.kt | 3 +-- .../features/discovery/DiscoverySettingsViewModel.kt | 3 +-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.idea/dictionaries/bmarty.xml b/.idea/dictionaries/bmarty.xml index 26606fedd0..93ac86f417 100644 --- a/.idea/dictionaries/bmarty.xml +++ b/.idea/dictionaries/bmarty.xml @@ -18,7 +18,9 @@ linkify megolm msisdn + msisdns pbkdf + pids pkcs riotx signin diff --git a/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsController.kt b/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsController.kt index d65dbcc397..fb344662d7 100644 --- a/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsController.kt +++ b/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsController.kt @@ -65,7 +65,7 @@ class DiscoverySettingsController @Inject constructor( is Success -> { buildIdentityServerSection(data) val hasIdentityServer = data.identityServer().isNullOrBlank().not() - if (hasIdentityServer) { + if (hasIdentityServer && !data.termsNotSigned) { buildEmailsSection(data.emailList) buildMsisdnSection(data.phoneNumbersList) } @@ -77,7 +77,7 @@ class DiscoverySettingsController @Inject constructor( val identityServer = data.identityServer() ?: stringProvider.getString(R.string.none) settingsSectionTitleItem { - id("idsTitle") + id("idServerTitle") titleResId(R.string.identity_server) } @@ -91,7 +91,7 @@ class DiscoverySettingsController @Inject constructor( if (data.termsNotSigned) { helperText(stringProvider.getString(R.string.settings_agree_to_terms, identityServer)) showCompoundDrawable(true) - itemClickListener(View.OnClickListener { listener?.onSelectIdentityServer() }) + itemClickListener(View.OnClickListener { listener?.openIdentityServerTerms() }) } else { showCompoundDrawable(false) if (data.identityServer() != null) { @@ -357,7 +357,7 @@ class DiscoverySettingsController @Inject constructor( } interface Listener { - fun onSelectIdentityServer() + fun openIdentityServerTerms() fun onTapRevoke(threePid: ThreePid) fun onTapShare(threePid: ThreePid) fun checkEmailVerification(threePid: ThreePid.Email) diff --git a/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsFragment.kt b/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsFragment.kt index ef26d09927..0c148a3538 100644 --- a/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsFragment.kt @@ -103,9 +103,8 @@ class DiscoverySettingsFragment @Inject constructor( super.onActivityResult(requestCode, resultCode, data) } - override fun onSelectIdentityServer() = withState(viewModel) { state -> + override fun openIdentityServerTerms() = withState(viewModel) { state -> if (state.termsNotSigned) { - // TODO Use ViewEvents? navigator.openTerms( this, TermsService.ServiceType.IdentityService, diff --git a/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsViewModel.kt b/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsViewModel.kt index dcad4c644a..a33c9313ac 100644 --- a/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/discovery/DiscoverySettingsViewModel.kt @@ -52,7 +52,7 @@ data class DiscoverySettingsState( val identityServer: Async = Uninitialized, val emailList: Async> = Uninitialized, val phoneNumbersList: Async> = Uninitialized, - // TODO Use ViewEvents? + // Can be true if terms are updated val termsNotSigned: Boolean = false ) : MvRxState @@ -329,7 +329,6 @@ class DiscoverySettingsViewModel @AssistedInject constructor( override fun onFailure(failure: Throwable) { if (failure is IdentityServiceError.TermsNotSignedException) { setState { - // TODO Use ViewEvent ? copy(termsNotSigned = true) } }