diff --git a/app/src/main/java/org/futo/circles/feature/people/user/UserDialogFragment.kt b/app/src/main/java/org/futo/circles/feature/people/user/UserDialogFragment.kt index a1da0890eea356db98eb70c74e4d8034e8dc5a60..b43b7f7a194abb972443b1df49dec501c4320d90 100644 --- a/app/src/main/java/org/futo/circles/feature/people/user/UserDialogFragment.kt +++ b/app/src/main/java/org/futo/circles/feature/people/user/UserDialogFragment.kt @@ -10,6 +10,7 @@ import dagger.hilt.android.AndroidEntryPoint import org.futo.circles.R import org.futo.circles.core.base.NetworkObserver import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment +import org.futo.circles.core.extensions.gone import org.futo.circles.core.extensions.loadUserProfileIcon import org.futo.circles.core.extensions.notEmptyDisplayName import org.futo.circles.core.extensions.observeData @@ -66,13 +67,8 @@ class UserDialogFragment : BaseFullscreenDialogFragment(DialogFragmentUserBindin addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL)) adapter = usersCirclesAdapter } - val amIFollowing = viewModel.amIFollowingUser() - binding.btnUnFollow.apply { - setIsVisible(amIFollowing) - setOnClickListener { withConfirmation(UnfollowUser()) { viewModel.unFollowUser() } } - } binding.btnInviteToConnect.apply { - setIsVisible(!amIFollowing) + setIsVisible(!viewModel.isUserMyFollower()) setOnClickListener { viewModel.inviteToMySharedCircle() } } } @@ -81,10 +77,15 @@ class UserDialogFragment : BaseFullscreenDialogFragment(DialogFragmentUserBindin private fun setupMenu() { with(binding.toolbar) { (menu as? MenuBuilder)?.setOptionalIconsVisible(true) + menu.findItem(R.id.unFollow).isVisible = viewModel.amIFollowingUser() menu.findItem(R.id.ignore).isVisible = !isUserIgnored menu.findItem(R.id.unIgnore).isVisible = isUserIgnored setOnMenuItemClickListener { item -> return@setOnMenuItemClickListener when (item.itemId) { + R.id.unFollow -> { + withConfirmation(UnfollowUser()) { viewModel.unFollowUser() } + true + } R.id.ignore -> { withConfirmation(IgnoreUser()) { viewModel.ignoreUser() } true @@ -114,6 +115,11 @@ class UserDialogFragment : BaseFullscreenDialogFragment(DialogFragmentUserBindin } viewModel.requestFollowLiveData.observeResponse(this, success = { showSuccess(getString(R.string.request_sent)) }) + viewModel.inviteToConnectLiveData.observeResponse(this, + success = { + showSuccess(getString(R.string.request_sent)) + binding.btnInviteToConnect.gone() + }) viewModel.ignoreUserLiveData.observeResponse(this, success = { context?.let { showSuccess(it.getString(R.string.user_ignored)) } diff --git a/app/src/main/res/layout/dialog_fragment_user.xml b/app/src/main/res/layout/dialog_fragment_user.xml index 5e34c60a36874d0752754544cd3cebe053573439..f0e8b2bdd3326b0b462a46bafd315e3db3e367a1 100644 --- a/app/src/main/res/layout/dialog_fragment_user.xml +++ b/app/src/main/res/layout/dialog_fragment_user.xml @@ -70,20 +70,6 @@ app:layout_constraintTop_toBottomOf="@id/tvUserName" tools:text="texsdt" /> - <com.google.android.material.button.MaterialButton - android:id="@+id/btnUnFollow" - style="@style/NegativeButtonStyle" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:text="@string/unfollow" - android:textSize="12sp" - android:visibility="gone" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/tvUserId" - tools:visibility="visible" /> - <com.google.android.material.button.MaterialButton android:id="@+id/btnInviteToConnect" style="@style/AccentButtonStyle" @@ -99,13 +85,6 @@ app:layout_constraintTop_toBottomOf="@id/tvUserId" tools:visibility="visible" /> - <androidx.constraintlayout.widget.Barrier - android:id="@+id/buttonsBarier" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - app:barrierDirection="bottom" - app:constraint_referenced_ids="btnInviteToConnect,btnUnFollow" /> - <View android:id="@+id/divider" @@ -115,7 +94,7 @@ android:background="@color/divider_color" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/buttonsBarier" /> + app:layout_constraintTop_toBottomOf="@id/btnInviteToConnect" /> <org.futo.circles.core.view.LoadingRecyclerView diff --git a/app/src/main/res/menu/user_menu.xml b/app/src/main/res/menu/user_menu.xml index 6a03cbf1c147e71db0da6953fe16d4146d08ca65..bdaab7f6c87a56a8a07ccc0a0136e5d9b7f114a2 100644 --- a/app/src/main/res/menu/user_menu.xml +++ b/app/src/main/res/menu/user_menu.xml @@ -1,10 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:id="@+id/unFollow" + android:icon="@drawable/ic_unfollow" + android:title="@string/unfollow" /> + <item android:id="@+id/ignore" - android:icon="@drawable/ic_ignore" + android:icon="@drawable/ic_notifications_off" android:title="@string/ignore" /> <item