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