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() }