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 57b8e165e8..1af9788f38 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 @@ -208,8 +208,8 @@ class DiscoverySettingsController @Inject constructor( settingsInformationItem { id("info${pidInfo.threePid.value}") colorProvider(colorProvider) - infoMessageColorId(R.color.vector_error_color) - infoMessage(pidInfo.isShared.error.message ?: "") + textColorId(R.color.vector_error_color) + message(pidInfo.isShared.error.message ?: "") } buildContinueCancel(pidInfo.threePid) } @@ -219,8 +219,7 @@ class DiscoverySettingsController @Inject constructor( settingsInformationItem { id("info${pidInfo.threePid.value}") colorProvider(colorProvider) - infoMessage(stringProvider.getString(R.string.settings_discovery_confirm_mail, pidInfo.threePid.value)) - infoMessageColorId(R.color.vector_info_color) + message(stringProvider.getString(R.string.settings_discovery_confirm_mail, pidInfo.threePid.value)) } buildContinueCancel(pidInfo.threePid) } @@ -228,8 +227,7 @@ class DiscoverySettingsController @Inject constructor( settingsInformationItem { id("info${pidInfo.threePid.value}") colorProvider(colorProvider) - infoMessage(stringProvider.getString(R.string.settings_discovery_confirm_mail, pidInfo.threePid.value)) - infoMessageColorId(R.color.vector_info_color) + message(stringProvider.getString(R.string.settings_discovery_confirm_mail, pidInfo.threePid.value)) } settingsProgressItem { id("progress${pidInfo.threePid.value}") @@ -239,8 +237,8 @@ class DiscoverySettingsController @Inject constructor( settingsInformationItem { id("info${pidInfo.threePid.value}") colorProvider(colorProvider) - infoMessage(stringProvider.getString(R.string.settings_discovery_confirm_mail_not_clicked, pidInfo.threePid.value)) - infoMessageColorId(R.color.riotx_destructive_accent) + message(stringProvider.getString(R.string.settings_discovery_confirm_mail_not_clicked, pidInfo.threePid.value)) + textColorId(R.color.riotx_destructive_accent) } buildContinueCancel(pidInfo.threePid) } @@ -332,8 +330,8 @@ class DiscoverySettingsController @Inject constructor( settingsInformationItem { id("info${pidInfo.threePid.value}") colorProvider(colorProvider) - infoMessageColorId(R.color.vector_error_color) - infoMessage(pidInfo.isShared.error.message ?: "") + textColorId(R.color.vector_error_color) + message(pidInfo.isShared.error.message ?: "") } } when (pidInfo.isShared()) { 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 0d69d80eee..4eb184117b 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 @@ -133,7 +133,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( is DiscoverySettingsAction.ChangeIdentityServer -> changeIdentityServer(action) is DiscoverySettingsAction.RevokeThreePid -> revokeThreePid(action) is DiscoverySettingsAction.ShareThreePid -> shareThreePid(action) - is DiscoverySettingsAction.FinalizeBind3pid -> finalizeBind3pid(action) + is DiscoverySettingsAction.FinalizeBind3pid -> finalizeBind3pid(action, true) is DiscoverySettingsAction.SubmitMsisdnToken -> submitMsisdnToken(action) is DiscoverySettingsAction.CancelBinding -> cancelBinding(action) }.exhaustive @@ -278,7 +278,6 @@ class DiscoverySettingsViewModel @AssistedInject constructor( } private fun cancelBinding(action: DiscoverySettingsAction.CancelBinding) { - // TODO: remove the callback identityService.cancelBindThreePid(action.threePid, object : MatrixCallback { override fun onSuccess(data: Unit) { changeThreePidState(action.threePid, Success(SharedState.NOT_SHARED)) @@ -366,7 +365,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( object : MatrixCallback { override fun onSuccess(data: Unit) { changeThreePidSubmitState(action.threePid, Uninitialized) - finalizeBind3pid(DiscoverySettingsAction.FinalizeBind3pid(action.threePid)) + finalizeBind3pid(DiscoverySettingsAction.FinalizeBind3pid(action.threePid), true) } override fun onFailure(failure: Throwable) { @@ -376,7 +375,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( ) } - private fun finalizeBind3pid(action: DiscoverySettingsAction.FinalizeBind3pid) = withState { state -> + private fun finalizeBind3pid(action: DiscoverySettingsAction.FinalizeBind3pid, fromUser: Boolean) = withState { state -> val threePid = when (action.threePid) { is ThreePid.Email -> { state.emailList()?.find { it.threePid.value == action.threePid.email }?.threePid ?: return@withState @@ -395,7 +394,12 @@ class DiscoverySettingsViewModel @AssistedInject constructor( } override fun onFailure(failure: Throwable) { - changeThreePidSubmitState(action.threePid, Fail(failure)) + // If this is not from user (user did not click to "Continue", but this is a refresh when Fragment is resumed), do no display the error + if (fromUser) { + changeThreePidSubmitState(action.threePid, Fail(failure)) + } else { + changeThreePidSubmitState(action.threePid, Uninitialized) + } } }) @@ -404,7 +408,7 @@ class DiscoverySettingsViewModel @AssistedInject constructor( private fun refreshPendingEmailBindings() = withState { state -> state.emailList()?.forEach { info -> when (info.isShared()) { - SharedState.BINDING_IN_PROGRESS -> finalizeBind3pid(DiscoverySettingsAction.FinalizeBind3pid(info.threePid)) + SharedState.BINDING_IN_PROGRESS -> finalizeBind3pid(DiscoverySettingsAction.FinalizeBind3pid(info.threePid), false) else -> Unit } } diff --git a/vector/src/main/java/im/vector/riotx/features/discovery/SettingsInformationItem.kt b/vector/src/main/java/im/vector/riotx/features/discovery/SettingsInformationItem.kt index b4ba00248b..ad3c445ac3 100644 --- a/vector/src/main/java/im/vector/riotx/features/discovery/SettingsInformationItem.kt +++ b/vector/src/main/java/im/vector/riotx/features/discovery/SettingsInformationItem.kt @@ -30,21 +30,18 @@ abstract class SettingsInformationItem : EpoxyModelWithHolder