From bd238dcbfa7e09bb529ba5bc947585ae20829f50 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 21 Aug 2020 22:24:29 +0200 Subject: [PATCH] Make user displayName live in the setting, it should fix #1926 --- CHANGES.md | 2 +- .../settings/VectorSettingsGeneralFragment.kt | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 2f850c8a3c..ffd9a5f1af 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,7 +8,7 @@ Improvements 🙌: - Bugfix 🐛: - - + - Display name not shown under Settings/General (#1926) Translations 🗣: - diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsGeneralFragment.kt b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsGeneralFragment.kt index fbeb5b954d..e4120e8133 100644 --- a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsGeneralFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsGeneralFragment.kt @@ -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() }