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 e66b2f962304b3c34ed197bc10ba11c50b9e6eee..17090ae2b158298537af7a9209e799c9e98b40ec 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 fd0a71b048aa60a612708fbefa73c4ab88664560..5530503eb6bd8c9f4bd859985de5f9981cb8ba42 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 cd9a1cc920fd4d30db799a6157645095f5fd00d2..9cd6eb96ee7992c651779c962e0a771fdb917a9d 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 79b59543ba5a69488141f18fb8acb1b7bf1b2dba..efcf47b6c62bc2266e2489ca4a14f3ef0069edc9 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 9c4232bbcaf3e625dba923dc8025e86f4acecb14..d8f60007d63d042776c7ecc13c35b16042c7d83c 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"