From 174462248dfa891aed211d8c4b2cbc1046569edc Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Fri, 8 Mar 2024 12:32:40 +0200
Subject: [PATCH] Simplify invite. to connect loading

---
 .../circles/core/extensions/ViewExtensions.kt |  4 +++
 .../core/feature/user/UserDialogFragment.kt   | 16 ++++++++---
 .../main/res/layout/dialog_fragment_user.xml  | 27 ++++++-------------
 .../layout/list_item_connection_invite.xml    |  1 +
 .../res/layout/list_item_people_request.xml   |  1 +
 5 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/core/src/main/java/org/futo/circles/core/extensions/ViewExtensions.kt b/core/src/main/java/org/futo/circles/core/extensions/ViewExtensions.kt
index e66b2f962..17090ae2b 100644
--- a/core/src/main/java/org/futo/circles/core/extensions/ViewExtensions.kt
+++ b/core/src/main/java/org/futo/circles/core/extensions/ViewExtensions.kt
@@ -21,6 +21,10 @@ fun View.gone() {
     visibility = View.GONE
 }
 
+fun View.invisible() {
+    visibility = View.INVISIBLE
+}
+
 fun View.setIsVisible(isVisible: Boolean) {
     visibility = if (isVisible) View.VISIBLE else View.GONE
 }
diff --git a/core/src/main/java/org/futo/circles/core/feature/user/UserDialogFragment.kt b/core/src/main/java/org/futo/circles/core/feature/user/UserDialogFragment.kt
index fd0a71b04..5530503eb 100644
--- a/core/src/main/java/org/futo/circles/core/feature/user/UserDialogFragment.kt
+++ b/core/src/main/java/org/futo/circles/core/feature/user/UserDialogFragment.kt
@@ -13,6 +13,7 @@ import org.futo.circles.core.base.NetworkObserver
 import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment
 import org.futo.circles.core.databinding.DialogFragmentUserBinding
 import org.futo.circles.core.extensions.gone
+import org.futo.circles.core.extensions.invisible
 import org.futo.circles.core.extensions.loadUserProfileIcon
 import org.futo.circles.core.extensions.notEmptyDisplayName
 import org.futo.circles.core.extensions.observeData
@@ -20,6 +21,7 @@ import org.futo.circles.core.extensions.observeResponse
 import org.futo.circles.core.extensions.onBackPressed
 import org.futo.circles.core.extensions.setEnabledChildren
 import org.futo.circles.core.extensions.setIsVisible
+import org.futo.circles.core.extensions.showError
 import org.futo.circles.core.extensions.showNoInternetConnection
 import org.futo.circles.core.extensions.showSuccess
 import org.futo.circles.core.extensions.visible
@@ -73,7 +75,8 @@ class UserDialogFragment : BaseFullscreenDialogFragment(DialogFragmentUserBindin
         binding.btnInviteToConnect.apply {
             setIsVisible(!viewModel.isUserMyFollower())
             setOnClickListener {
-                binding.lInviteToConnectLoading.visible()
+                binding.vInviteToConnectLoading.visible()
+                binding.btnInviteToConnect.invisible()
                 viewModel.inviteToMySharedCircle()
             }
         }
@@ -127,8 +130,15 @@ class UserDialogFragment : BaseFullscreenDialogFragment(DialogFragmentUserBindin
             success = {
                 showSuccess(getString(R.string.request_sent))
                 binding.btnInviteToConnect.gone()
-                binding.lInviteToConnectLoading.gone()
-            })
+            },
+            error = {
+                binding.btnInviteToConnect.visible()
+                showError(it)
+            },
+            onRequestInvoked = {
+                binding.vInviteToConnectLoading.gone()
+            }
+        )
         viewModel.ignoreUserLiveData.observeResponse(this,
             success = {
                 context?.let { showSuccess(it.getString(R.string.user_ignored)) }
diff --git a/core/src/main/res/layout/dialog_fragment_user.xml b/core/src/main/res/layout/dialog_fragment_user.xml
index cd9a1cc92..9cd6eb96e 100644
--- a/core/src/main/res/layout/dialog_fragment_user.xml
+++ b/core/src/main/res/layout/dialog_fragment_user.xml
@@ -85,28 +85,17 @@
         app:layout_constraintTop_toBottomOf="@id/tvUserId"
         tools:visibility="visible" />
 
-    <FrameLayout
-        android:id="@+id/lInviteToConnectLoading"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:background="?android:colorBackground"
-        android:clickable="true"
-        android:focusable="true"
-        android:outlineProvider="none"
-        android:translationZ="100dp"
+
+    <ProgressBar
+        android:id="@+id/vInviteToConnectLoading"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="8dp"
         android:visibility="gone"
-        app:layout_constraintBottom_toBottomOf="@id/btnInviteToConnect"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="@id/btnInviteToConnect">
-
-        <ProgressBar
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-    </FrameLayout>
+        app:layout_constraintTop_toBottomOf="@id/tvUserId" />
 
 
     <View
diff --git a/core/src/main/res/layout/list_item_connection_invite.xml b/core/src/main/res/layout/list_item_connection_invite.xml
index 79b59543b..efcf47b6c 100644
--- a/core/src/main/res/layout/list_item_connection_invite.xml
+++ b/core/src/main/res/layout/list_item_connection_invite.xml
@@ -84,6 +84,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
+        android:layout_marginTop="4dp"
         android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
diff --git a/core/src/main/res/layout/list_item_people_request.xml b/core/src/main/res/layout/list_item_people_request.xml
index 9c4232bbc..d8f60007d 100644
--- a/core/src/main/res/layout/list_item_people_request.xml
+++ b/core/src/main/res/layout/list_item_people_request.xml
@@ -99,6 +99,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
+        android:layout_marginTop="4dp"
         android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-- 
GitLab