Identity: improve terms not signed case
This commit is contained in:
parent
af3fc22e2d
commit
ce42d2fb8a
@ -86,13 +86,22 @@ class DiscoverySettingsController @Inject constructor(
|
|||||||
title(identityServer)
|
title(identityServer)
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsInfoItem {
|
if (data.identityServer() != null && data.termsNotSigned) {
|
||||||
id("idServerFooter")
|
settingsInfoItem {
|
||||||
if (data.termsNotSigned) {
|
id("idServerFooter")
|
||||||
helperText(stringProvider.getString(R.string.settings_agree_to_terms, identityServer))
|
helperText(stringProvider.getString(R.string.settings_agree_to_terms, identityServer))
|
||||||
showCompoundDrawable(true)
|
showCompoundDrawable(true)
|
||||||
itemClickListener(View.OnClickListener { listener?.openIdentityServerTerms() })
|
itemClickListener(View.OnClickListener { listener?.openIdentityServerTerms() })
|
||||||
} else {
|
}
|
||||||
|
settingsButtonItem {
|
||||||
|
id("seeTerms")
|
||||||
|
colorProvider(colorProvider)
|
||||||
|
buttonTitle(stringProvider.getString(R.string.open_terms_of, identityServer))
|
||||||
|
buttonClickListener { listener?.openIdentityServerTerms() }
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
settingsInfoItem {
|
||||||
|
id("idServerFooter")
|
||||||
showCompoundDrawable(false)
|
showCompoundDrawable(false)
|
||||||
if (data.identityServer() != null) {
|
if (data.identityServer() != null) {
|
||||||
helperText(stringProvider.getString(R.string.settings_discovery_identity_server_info, identityServer))
|
helperText(stringProvider.getString(R.string.settings_discovery_identity_server_info, identityServer))
|
||||||
|
@ -321,24 +321,22 @@ class DiscoverySettingsViewModel @AssistedInject constructor(
|
|||||||
setState {
|
setState {
|
||||||
copy(
|
copy(
|
||||||
emailList = Success(data.filter { it.key is ThreePid.Email }.toPidInfoList()),
|
emailList = Success(data.filter { it.key is ThreePid.Email }.toPidInfoList()),
|
||||||
phoneNumbersList = Success(data.filter { it.key is ThreePid.Msisdn }.toPidInfoList())
|
phoneNumbersList = Success(data.filter { it.key is ThreePid.Msisdn }.toPidInfoList()),
|
||||||
|
termsNotSigned = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onFailure(failure: Throwable) {
|
override fun onFailure(failure: Throwable) {
|
||||||
if (failure is IdentityServiceError.TermsNotSignedException) {
|
if (failure !is IdentityServiceError.TermsNotSignedException) {
|
||||||
setState {
|
_viewEvents.post(DiscoverySettingsViewEvents.Failure(failure))
|
||||||
copy(termsNotSigned = true)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_viewEvents.post(DiscoverySettingsViewEvents.Failure(failure))
|
|
||||||
|
|
||||||
setState {
|
setState {
|
||||||
copy(
|
copy(
|
||||||
emailList = Success(emails.map { PidInfo(it, Fail(failure)) }),
|
emailList = Success(emails.map { PidInfo(it, Fail(failure)) }),
|
||||||
phoneNumbersList = Success(msisdns.map { PidInfo(it, Fail(failure)) })
|
phoneNumbersList = Success(msisdns.map { PidInfo(it, Fail(failure)) }),
|
||||||
|
termsNotSigned = failure is IdentityServiceError.TermsNotSignedException
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2402,4 +2402,5 @@ Not all features in Riot are implemented in RiotX yet. Main missing (and coming
|
|||||||
<string name="choose_locale_other_locales_title">Other available languages</string>
|
<string name="choose_locale_other_locales_title">Other available languages</string>
|
||||||
<string name="choose_locale_loading_locales">Loading available languages…</string>
|
<string name="choose_locale_loading_locales">Loading available languages…</string>
|
||||||
|
|
||||||
</resources>
|
<string name="open_terms_of">Open terms of %s</string>
|
||||||
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user