diff --git a/app/src/main/java/com/infomaniak/drive/ui/SwitchUserActivity.kt b/app/src/main/java/com/infomaniak/drive/ui/SwitchUserActivity.kt index 183265e0dd..304f9512e9 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/SwitchUserActivity.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/SwitchUserActivity.kt @@ -26,7 +26,6 @@ import com.infomaniak.drive.databinding.ViewSwitchSettingsBinding import com.infomaniak.drive.ui.login.LoginActivity import com.infomaniak.drive.ui.menu.UserAdapter import com.infomaniak.drive.utils.AccountUtils -import com.infomaniak.lib.core.models.user.User class SwitchUserActivity : AppCompatActivity() { @@ -41,7 +40,9 @@ class SwitchUserActivity : AppCompatActivity() { } AccountUtils.getAllUsers().observe(this@SwitchUserActivity) { users -> - usersRecyclerView.adapter = UserAdapter(users as ArrayList) { user -> + val currentUserId = AccountUtils.currentUserId + val orderedUsers = users.sortedBy { it.id != currentUserId } + usersRecyclerView.adapter = UserAdapter(orderedUsers) { user -> trackAccountEvent("switch") AccountUtils.currentUser = user AccountUtils.currentDriveId = -1 diff --git a/app/src/main/java/com/infomaniak/drive/ui/menu/UserAdapter.kt b/app/src/main/java/com/infomaniak/drive/ui/menu/UserAdapter.kt index 0ec149ca55..2c12b959be 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/menu/UserAdapter.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/menu/UserAdapter.kt @@ -29,13 +29,13 @@ import com.infomaniak.drive.utils.setUserView import com.infomaniak.lib.core.models.user.User class UserAdapter( - private val users: ArrayList, - private val isCardview: Boolean = true, + private val users: List, + private val isCardView: Boolean = true, private val onItemClicked: (user: User) -> Unit, ) : Adapter() { override fun getItemViewType(position: Int): Int { - return if (isCardview) VIEW_TYPE_CARDVIEW + return if (isCardView) VIEW_TYPE_CARDVIEW else VIEW_TYPE_NORMAL } @@ -59,7 +59,7 @@ class UserAdapter( this as ItemUserBinding } - itemUserBinding.setUserView(user, isCardview, onItemClicked) + itemUserBinding.setUserView(user, isCardView, onItemClicked) } override fun getItemCount() = users.size diff --git a/app/src/main/java/com/infomaniak/drive/ui/menu/settings/SelectDriveDialog.kt b/app/src/main/java/com/infomaniak/drive/ui/menu/settings/SelectDriveDialog.kt index 465aa5cb19..348c7ba044 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/menu/settings/SelectDriveDialog.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/menu/settings/SelectDriveDialog.kt @@ -77,7 +77,7 @@ class SelectDriveDialog : FullScreenBottomSheetDialog() { } binding.userCardview.root.isVisible = true - popupLayoutBinding.usersRecyclerView.adapter = UserAdapter(users as ArrayList, isCardview = false) { user -> + popupLayoutBinding.usersRecyclerView.adapter = UserAdapter(users as ArrayList, isCardView = false) { user -> selectedUserId.value = user.id driveListAdapter.setDrives(getDriveList()) diff --git a/app/src/main/java/com/infomaniak/drive/utils/Extensions.kt b/app/src/main/java/com/infomaniak/drive/utils/Extensions.kt index 371d86cd40..a6663eafd7 100644 --- a/app/src/main/java/com/infomaniak/drive/utils/Extensions.kt +++ b/app/src/main/java/com/infomaniak/drive/utils/Extensions.kt @@ -182,11 +182,15 @@ fun Activity.setColorNavigationBar(appBar: Boolean = false) = with(window) { fun String.isValidUrl(): Boolean = Patterns.WEB_URL.matcher(this).matches() fun ItemUserBinding.setUserView(user: User, showChevron: Boolean = true, onItemClicked: (user: User) -> Unit) { + val isCurrentUser = AccountUtils.currentUserId == user.id userName.text = user.displayName userEmail.text = user.email userAvatar.loadAvatar(user) - chevron.isVisible = showChevron - root.setOnClickListener { onItemClicked(user) } + chevron.isVisible = showChevron && !isCurrentUser + check.isVisible = isCurrentUser + if (!isCurrentUser) { + root.setOnClickListener { onItemClicked(user) } + } } fun ImageView.animateRotation(isDeployed: Boolean = false) { diff --git a/app/src/main/res/layout/item_user.xml b/app/src/main/res/layout/item_user.xml index fd7c5362db..f08addbecc 100644 --- a/app/src/main/res/layout/item_user.xml +++ b/app/src/main/res/layout/item_user.xml @@ -68,10 +68,23 @@ android:id="@+id/chevron" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="18dp" android:src="@drawable/ic_chevron_right" app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@id/check" + app:layout_constraintTop_toTopOf="parent" + app:layout_goneMarginEnd="18dp" + tools:ignore="ContentDescription" /> + + +