From d1c47f97644043a4f796c328741a257a06c6b934 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 18 Sep 2023 17:44:12 +0300 Subject: [PATCH] Handle select users placeholder visibility --- .../core/select_users/SelectUsersFragment.kt | 2 + .../main/res/layout/fragment_select_users.xml | 59 +++++++++++-------- 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/core/src/main/java/org/futo/circles/core/select_users/SelectUsersFragment.kt b/core/src/main/java/org/futo/circles/core/select_users/SelectUsersFragment.kt index 0b623eb86..df68cc34d 100644 --- a/core/src/main/java/org/futo/circles/core/select_users/SelectUsersFragment.kt +++ b/core/src/main/java/org/futo/circles/core/select_users/SelectUsersFragment.kt @@ -13,6 +13,7 @@ import org.futo.circles.core.databinding.FragmentSelectUsersBinding import org.futo.circles.core.extensions.getQueryTextChangeStateFlow import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.setIsVisible +import org.futo.circles.core.model.NoResultsItem import org.futo.circles.core.select_users.list.search.InviteMembersSearchListAdapter import org.futo.circles.core.select_users.list.selected.SelectedUsersListAdapter @@ -49,6 +50,7 @@ class SelectUsersFragment : Fragment(R.layout.fragment_select_users) { private fun setupObservers() { viewModel.searchUsersLiveData.observeData(this) { items -> + binding.lSelectedItems.setIsVisible(items.firstOrNull { it is NoResultsItem } == null) searchListAdapter.submitList(items) } viewModel.selectedUsersLiveData.observeData(this) { items -> diff --git a/core/src/main/res/layout/fragment_select_users.xml b/core/src/main/res/layout/fragment_select_users.xml index 0fa2ae20f..f780c0472 100644 --- a/core/src/main/res/layout/fragment_select_users.xml +++ b/core/src/main/res/layout/fragment_select_users.xml @@ -17,36 +17,43 @@ app:layout_constraintTop_toTopOf="parent" app:queryHint="@string/enter_name_or_id" /> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/rvSelectedUsers" + <FrameLayout + android:id="@+id/lSelectedItems" android:layout_width="0dp" - android:layout_height="48dp" - android:orientation="horizontal" - app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + android:layout_height="wrap_content" + android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/searchView" /> + app:layout_constraintTop_toBottomOf="@id/searchView" + tools:visibility="visible"> - <TextView - android:id="@+id/tvSelectedUsersPlaceholder" - style="@style/subheadline" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:text="@string/select_items_from_list_below" - app:layout_constraintBottom_toBottomOf="@id/rvSelectedUsers" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="@id/searchView" - app:layout_constraintTop_toTopOf="@id/rvSelectedUsers" /> + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/rvSelectedUsers" + android:layout_width="match_parent" + android:layout_height="48dp" + android:orientation="horizontal" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> - <View - android:id="@+id/selectedUserDivider" - android:layout_width="0dp" - android:layout_height="@dimen/divider_height" - android:background="@color/gray" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/rvSelectedUsers" - tools:visibility="visible" /> + <TextView + android:id="@+id/tvSelectedUsersPlaceholder" + style="@style/subheadline" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginStart="8dp" + android:text="@string/select_items_from_list_below" /> + + <View + android:id="@+id/selectedUserDivider" + android:layout_width="match_parent" + android:layout_height="@dimen/divider_height" + android:layout_gravity="bottom" + android:background="@color/gray" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/rvSelectedUsers" /> + + </FrameLayout> <org.futo.circles.core.view.LoadingRecyclerView android:id="@+id/rvUsers" @@ -55,7 +62,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/selectedUserDivider" /> + app:layout_constraintTop_toBottomOf="@id/lSelectedItems" /> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- GitLab