From bd238dcbfa7e09bb529ba5bc947585ae20829f50 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 21 Aug 2020 22:24:29 +0200 Subject: [PATCH 1/2] 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() } From 50495ef604e878f8050bc636e5c5717bc847ee0a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 24 Aug 2020 11:12:19 +0200 Subject: [PATCH 2/2] Improve algo --- .../features/settings/VectorSettingsGeneralFragment.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 e4120e8133..e225f61c4f 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 @@ -145,12 +145,13 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() { session.rx() .liveUser(session.myUserId) .unwrap() - .distinctUntilChanged { user -> user.displayName } + .map { it.displayName ?: "" } + .distinctUntilChanged() .observeOn(AndroidSchedulers.mainThread()) - .subscribe { user -> + .subscribe { displayName -> mDisplayNamePreference.let { - it.summary = user.displayName ?: "" - it.text = user.displayName ?: "" + it.summary = displayName + it.text = displayName } } .disposeOnDestroyView()