Make user displayName live in the setting, it should fix #1926

This commit is contained in:
Benoit Marty 2020-08-21 22:24:29 +02:00
parent 20e2b3beb8
commit bd238dcbfa
2 changed files with 17 additions and 3 deletions

View File

@ -8,7 +8,7 @@ Improvements 🙌:
-
Bugfix 🐛:
-
- Display name not shown under Settings/General (#1926)
Translations 🗣:
-

View File

@ -128,6 +128,7 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() {
super.onViewCreated(view, savedInstanceState)
observeUserAvatar()
observeUserDisplayName()
}
private fun observeUserAvatar() {
@ -140,6 +141,21 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() {
.disposeOnDestroyView()
}
private fun observeUserDisplayName() {
session.rx()
.liveUser(session.myUserId)
.unwrap()
.distinctUntilChanged { user -> user.displayName }
.observeOn(AndroidSchedulers.mainThread())
.subscribe { user ->
mDisplayNamePreference.let {
it.summary = user.displayName ?: ""
it.text = user.displayName ?: ""
}
}
.disposeOnDestroyView()
}
override fun bindPref() {
// Avatar
mUserAvatarPreference.let {
@ -151,8 +167,6 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() {
// Display name
mDisplayNamePreference.let {
it.summary = session.getUser(session.myUserId)?.displayName ?: ""
it.text = it.summary.toString()
it.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
newValue
?.let { value -> (value as? String)?.trim() }