From 72c0b9fe3816e8474d12a0122bcf1a864d8b2a41 Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Tue, 14 Jun 2022 17:05:17 +0300 Subject: [PATCH] Add not empty display name --- .../futo/circles/feature/people/user/UserFragment.kt | 11 ++++++----- .../edit_profile/EditProfileDialogFragment.kt | 3 ++- .../sign_up/setup_circles/SetupCirclesDataSource.kt | 3 ++- .../com/futo/circles/mapping/MatrixUserMapping.kt | 10 +++++++--- .../main/java/com/futo/circles/view/ProfileView.kt | 3 ++- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt b/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt index 251e4f365..0b3a8b2fc 100644 --- a/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt +++ b/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt @@ -13,6 +13,7 @@ import com.futo.circles.extensions.loadProfileIcon import com.futo.circles.extensions.observeData import com.futo.circles.extensions.setIsVisible import com.futo.circles.feature.people.user.list.UsersCirclesAdapter +import com.futo.circles.mapping.notEmptyDisplayName import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.parameter.parametersOf import org.matrix.android.sdk.api.session.user.model.User @@ -56,13 +57,13 @@ class UserFragment : Fragment(R.layout.user_fragment) { private fun setupUserInfo(user: User) { with(binding) { - (activity as? AppCompatActivity)?.supportActionBar?.title = user.displayName + (activity as? AppCompatActivity)?.supportActionBar?.title = user.notEmptyDisplayName() tvUserId.text = user.userId - tvUserName.text = user.displayName - ivUser.loadProfileIcon(user.avatarUrl, user.displayName ?: "") - tvCirclesListTitle.text = getString(R.string.users_circles_format, user.displayName) + tvUserName.text = user.notEmptyDisplayName() + ivUser.loadProfileIcon(user.avatarUrl, user.notEmptyDisplayName()) + tvCirclesListTitle.text = getString(R.string.users_circles_format, user.notEmptyDisplayName()) tvEmptyCirclesList.text = - getString(R.string.not_following_any_circles_format, user.displayName) + getString(R.string.not_following_any_circles_format, user.notEmptyDisplayName()) } } diff --git a/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt b/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt index 1b7600540..5a2ef3dee 100644 --- a/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt +++ b/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt @@ -10,6 +10,7 @@ import com.futo.circles.core.fragment.BaseFullscreenDialogFragment import com.futo.circles.core.fragment.HasLoadingState import com.futo.circles.databinding.EditProfileDialogFragmentBinding import com.futo.circles.extensions.* +import com.futo.circles.mapping.notEmptyDisplayName import org.koin.androidx.viewmodel.ext.android.viewModel import org.matrix.android.sdk.api.session.user.model.User @@ -76,7 +77,7 @@ class EditProfileDialogFragment : private fun setInitialUserInfo(user: User) { with(binding) { - ivProfile.loadProfileIcon(user.avatarUrl, user.displayName ?: "") + ivProfile.loadProfileIcon(user.avatarUrl, user.notEmptyDisplayName()) tilName.editText?.setText(user.displayName) tilUserId.editText?.setText(user.userId) } diff --git a/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt b/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt index bee40830a..c0b0502d3 100644 --- a/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt +++ b/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt @@ -4,6 +4,7 @@ import android.content.Context import android.net.Uri import androidx.lifecycle.MutableLiveData import com.futo.circles.R +import com.futo.circles.mapping.notEmptyDisplayName import com.futo.circles.model.SetupCircleListItem import com.futo.circles.provider.MatrixSessionProvider import org.matrix.android.sdk.api.session.getUser @@ -26,7 +27,7 @@ class SetupCirclesDataSource( private fun getUserName(): String { val session = MatrixSessionProvider.currentSession val userId = session?.myUserId ?: return "" - return session.getUser(userId)?.displayName ?: "" + return session.getUser(userId)?.notEmptyDisplayName()?:"" } fun addCirclesCoverImage(id: Int, uri: Uri) { diff --git a/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt b/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt index 0bf37fd2d..43ad67446 100644 --- a/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt +++ b/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt @@ -8,7 +8,7 @@ import org.matrix.android.sdk.api.session.user.model.User fun User.toUserListItem(isSelected: Boolean) = UserListItem( user = CirclesUserSummary( id = userId, - name = displayName ?: userId, + name = notEmptyDisplayName(), avatarUrl = avatarUrl ?: "" ), isSelected = isSelected @@ -17,8 +17,12 @@ fun User.toUserListItem(isSelected: Boolean) = UserListItem( fun User.toPeopleUserListItem(isIgnored: Boolean) = PeopleUserListItem( user = CirclesUserSummary( id = userId, - name = displayName ?: userId, + name = notEmptyDisplayName(), avatarUrl = avatarUrl ?: "" ), isIgnored = isIgnored -) \ No newline at end of file +) + +fun User.notEmptyDisplayName() = + displayName?.takeIf { it.isNotEmpty() } + ?: userId.replace("@", "").substringBefore(":") \ No newline at end of file diff --git a/app/src/main/java/com/futo/circles/view/ProfileView.kt b/app/src/main/java/com/futo/circles/view/ProfileView.kt index c8b3a666e..6f0f7a793 100644 --- a/app/src/main/java/com/futo/circles/view/ProfileView.kt +++ b/app/src/main/java/com/futo/circles/view/ProfileView.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import com.futo.circles.databinding.ProfileViewBinding import com.futo.circles.extensions.loadProfileIcon +import com.futo.circles.mapping.notEmptyDisplayName import org.matrix.android.sdk.api.session.user.model.User class ProfileView( @@ -19,7 +20,7 @@ class ProfileView( fun setData(user: User) { with(binding) { - ivProfile.loadProfileIcon(user.avatarUrl, user.displayName ?: "") + ivProfile.loadProfileIcon(user.avatarUrl, user.notEmptyDisplayName()) tvUserName.text = user.displayName tvUserId.text = user.userId } -- GitLab