From 59c0be813c6f0efd200942241445e34c2ce1565e Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 8 Mar 2024 12:18:51 +0200 Subject: [PATCH] Simplify invites loading --- .../room/invites/list/InvitesViewHolder.kt | 50 +++++++++++++++++-- .../layout/list_item_connection_invite.xml | 25 +++------- .../res/layout/list_item_invited_circle.xml | 24 +++------ .../res/layout/list_item_invited_gallery.xml | 25 +++------- .../res/layout/list_item_invited_group.xml | 24 +++------ .../res/layout/list_item_people_request.xml | 24 +++------ 6 files changed, 80 insertions(+), 92 deletions(-) diff --git a/core/src/main/java/org/futo/circles/core/feature/room/invites/list/InvitesViewHolder.kt b/core/src/main/java/org/futo/circles/core/feature/room/invites/list/InvitesViewHolder.kt index 34acd22cc..24b4c012e 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/invites/list/InvitesViewHolder.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/invites/list/InvitesViewHolder.kt @@ -49,7 +49,7 @@ class InvitedGroupViewHolder( if (data !is RoomInviteListItem) return with(binding) { - lLoading.setIsVisible(data.isLoading) + setLoading(data.isLoading) ivGroup.loadRoomProfileIcon( data.info.avatarUrl, data.info.title, @@ -64,6 +64,14 @@ class InvitedGroupViewHolder( ) } } + + private fun setLoading(isLoading: Boolean) { + with(binding) { + vLoading.setIsVisible(isLoading) + btnAccept.setIsVisible(!isLoading) + btnDecline.setIsVisible(!isLoading) + } + } } class InvitedCircleViewHolder( @@ -86,7 +94,7 @@ class InvitedCircleViewHolder( if (data !is RoomInviteListItem) return with(binding) { - lLoading.setIsVisible(data.isLoading) + setLoading(data.isLoading) tvShowProfileImage.setIsVisible(data.shouldBlurIcon) ivCircle.loadRoomProfileIcon( data.info.avatarUrl, @@ -101,6 +109,14 @@ class InvitedCircleViewHolder( ) } } + + private fun setLoading(isLoading: Boolean) { + with(binding) { + vLoading.setIsVisible(isLoading) + btnAccept.setIsVisible(!isLoading) + btnDecline.setIsVisible(!isLoading) + } + } } class InvitedGalleryViewHolder( @@ -123,7 +139,7 @@ class InvitedGalleryViewHolder( if (data !is RoomInviteListItem) return with(binding) { - lLoading.setIsVisible(data.isLoading) + setLoading(data.isLoading) tvGalleryTitle.text = data.info.title ivGallery.loadRoomProfileIcon( data.info.avatarUrl, @@ -134,6 +150,14 @@ class InvitedGalleryViewHolder( tvInviterName.text = context.getString(R.string.invited_by_format, data.inviterName) } } + + private fun setLoading(isLoading: Boolean) { + with(binding) { + vLoading.setIsVisible(isLoading) + btnAccept.setIsVisible(!isLoading) + btnDecline.setIsVisible(!isLoading) + } + } } class FollowRequestViewHolder( @@ -153,7 +177,7 @@ class FollowRequestViewHolder( override fun bind(data: InviteListItem) { if (data !is FollowRequestListItem) return - binding.lLoading.setIsVisible(data.isLoading) + setLoading(data.isLoading) bindUser(data.user) binding.tvReasonMessage.apply { setIsVisible(data.reasonMessage != null) @@ -167,6 +191,14 @@ class FollowRequestViewHolder( ivUserImage.loadUserProfileIcon(user.avatarUrl, user.id) } } + + private fun setLoading(isLoading: Boolean) { + with(binding) { + vLoading.setIsVisible(isLoading) + btnAccept.setIsVisible(!isLoading) + btnDecline.setIsVisible(!isLoading) + } + } } class ConnectionInviteViewHolder( @@ -186,7 +218,7 @@ class ConnectionInviteViewHolder( override fun bind(data: InviteListItem) { if (data !is ConnectionInviteListItem) return - binding.lLoading.setIsVisible(data.isLoading) + setLoading(data.isLoading) bindUser(data.user) } @@ -196,6 +228,14 @@ class ConnectionInviteViewHolder( ivUserImage.loadUserProfileIcon(user.avatarUrl, user.id) } } + + private fun setLoading(isLoading: Boolean) { + with(binding) { + vLoading.setIsVisible(isLoading) + btnAccept.setIsVisible(!isLoading) + btnDecline.setIsVisible(!isLoading) + } + } } class InviteHeaderViewHolder( 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 0f99fb355..79b59543b 100644 --- a/core/src/main/res/layout/list_item_connection_invite.xml +++ b/core/src/main/res/layout/list_item_connection_invite.xml @@ -78,27 +78,16 @@ app:layout_constraintStart_toEndOf="@id/btnAccept" app:layout_constraintTop_toTopOf="@id/btnAccept" /> - <FrameLayout - android:id="@+id/lLoading" - 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/vLoading" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/ivUserImage" - app:layout_constraintTop_toBottomOf="@+id/tvInvitesToConnect"> - - <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/tvInvitesToConnect" /> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/core/src/main/res/layout/list_item_invited_circle.xml b/core/src/main/res/layout/list_item_invited_circle.xml index a68947551..f3d478ff9 100644 --- a/core/src/main/res/layout/list_item_invited_circle.xml +++ b/core/src/main/res/layout/list_item_invited_circle.xml @@ -97,27 +97,17 @@ app:layout_constraintStart_toEndOf="@id/btnAccept" app:layout_constraintTop_toBottomOf="@+id/tvInvitedBy" /> - <FrameLayout - android:id="@+id/lLoading" - 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/vLoading" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/ivCircle" - app:layout_constraintTop_toBottomOf="@+id/tvInvitedBy"> + app:layout_constraintTop_toBottomOf="@+id/tvInvitedBy" /> - <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> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/core/src/main/res/layout/list_item_invited_gallery.xml b/core/src/main/res/layout/list_item_invited_gallery.xml index 0e2e5683f..63c327843 100644 --- a/core/src/main/res/layout/list_item_invited_gallery.xml +++ b/core/src/main/res/layout/list_item_invited_gallery.xml @@ -90,27 +90,16 @@ app:layout_constraintStart_toEndOf="@id/btnAccept" app:layout_constraintTop_toBottomOf="@+id/tvInviterName" /> - <FrameLayout - android:id="@+id/lLoading" - 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/vLoading" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/ivGallery" - app:layout_constraintTop_toBottomOf="@+id/tvInviterName"> - - <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/tvInviterName" /> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/core/src/main/res/layout/list_item_invited_group.xml b/core/src/main/res/layout/list_item_invited_group.xml index 84e736aba..2ad031dfa 100644 --- a/core/src/main/res/layout/list_item_invited_group.xml +++ b/core/src/main/res/layout/list_item_invited_group.xml @@ -101,27 +101,17 @@ app:layout_constraintStart_toEndOf="@id/btnAccept" app:layout_constraintTop_toBottomOf="@+id/tvInviterName" /> - <FrameLayout - android:id="@+id/lLoading" - 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/vLoading" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/ivGroup" - app:layout_constraintTop_toBottomOf="@+id/tvInviterName"> + app:layout_constraintTop_toBottomOf="@+id/tvInviterName" /> - <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> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file 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 3ff510fc2..9c4232bbc 100644 --- a/core/src/main/res/layout/list_item_people_request.xml +++ b/core/src/main/res/layout/list_item_people_request.xml @@ -93,27 +93,17 @@ app:layout_constraintStart_toEndOf="@id/btnAccept" app:layout_constraintTop_toTopOf="@id/btnAccept" /> - <FrameLayout - android:id="@+id/lLoading" - 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/vLoading" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/ivUserImage" - app:layout_constraintTop_toBottomOf="@+id/tvReasonMessage"> + app:layout_constraintTop_toBottomOf="@+id/tvReasonMessage" /> - <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> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- GitLab