From 0745e8a6f1acd6e0a689eba0ced1372dca08ab53 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 10 Jun 2024 17:51:31 +0300 Subject: [PATCH] Remove unfollow user option on User's screen --- .../circles/core/feature/user/UserDialogFragment.kt | 9 --------- .../core/feature/user/UserOptionsDataSource.kt | 12 +----------- .../futo/circles/core/feature/user/UserViewModel.kt | 10 ---------- .../org/futo/circles/core/model/ConfirmationType.kt | 7 +------ core/src/main/res/menu/user_menu.xml | 5 ----- core/src/main/res/values/strings.xml | 1 - 6 files changed, 2 insertions(+), 42 deletions(-) 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 9d9b8f100..cdb83543f 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 @@ -25,7 +25,6 @@ import org.futo.circles.core.feature.user.list.UsersCirclesAdapter import org.futo.circles.core.model.IgnoreUser import org.futo.circles.core.model.UnIgnoreUser import org.futo.circles.core.model.UnfollowTimeline -import org.futo.circles.core.model.UnfollowUser import org.futo.circles.core.utils.LauncherActivityUtils import org.futo.circles.core.view.EmptyTabPlaceholderView import org.matrix.android.sdk.api.session.user.model.User @@ -74,16 +73,10 @@ class UserDialogFragment : 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 @@ -122,8 +115,6 @@ class UserDialogFragment : isUserIgnored = it setupMenu() } - viewModel.unFollowUserLiveData.observeResponse(this, - success = { onBackPressed() }) } private fun setupUserInfo(user: User) { diff --git a/core/src/main/java/org/futo/circles/core/feature/user/UserOptionsDataSource.kt b/core/src/main/java/org/futo/circles/core/feature/user/UserOptionsDataSource.kt index 06993b0de..57fa65e42 100644 --- a/core/src/main/java/org/futo/circles/core/feature/user/UserOptionsDataSource.kt +++ b/core/src/main/java/org/futo/circles/core/feature/user/UserOptionsDataSource.kt @@ -1,14 +1,10 @@ package org.futo.circles.core.feature.user -import org.futo.circles.core.extensions.Response import org.futo.circles.core.extensions.createResult import org.futo.circles.core.provider.MatrixSessionProvider -import org.futo.circles.core.feature.workspace.SharedCircleDataSource import javax.inject.Inject -class UserOptionsDataSource @Inject constructor( - private val sharedCircleDataSource: SharedCircleDataSource -) { +class UserOptionsDataSource @Inject constructor() { val ignoredUsersLiveData = MatrixSessionProvider.currentSession?.userService()?.getIgnoredUsersLive() @@ -21,10 +17,4 @@ class UserOptionsDataSource @Inject constructor( MatrixSessionProvider.currentSession?.userService()?.unIgnoreUserIds(listOf(userId)) } - fun amIFollowingUser(userId: String): Boolean = - sharedCircleDataSource.getSharedCircleFor(userId) != null - - suspend fun unFollowUser(userId: String): Response<Unit?> = createResult { - sharedCircleDataSource.unfollowUsersSharedCircle(userId) - } } \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/feature/user/UserViewModel.kt b/core/src/main/java/org/futo/circles/core/feature/user/UserViewModel.kt index d71ce3748..d7b9613af 100644 --- a/core/src/main/java/org/futo/circles/core/feature/user/UserViewModel.kt +++ b/core/src/main/java/org/futo/circles/core/feature/user/UserViewModel.kt @@ -37,7 +37,6 @@ class UserViewModel @Inject constructor( val requestFollowLiveData = SingleEventLiveData<Response<Unit?>>() val ignoreUserLiveData = SingleEventLiveData<Response<Unit?>>() val unIgnoreUserLiveData = SingleEventLiveData<Response<Unit?>>() - val unFollowUserLiveData = SingleEventLiveData<Response<Unit?>>() val isUserIgnoredLiveData = userOptionsDataSource.ignoredUsersLiveData?.map { it.firstOrNull { it.userId == userId } != null } @@ -112,15 +111,6 @@ class UserViewModel @Inject constructor( } } - fun unFollowUser() { - launchBg { - unFollowUserLiveData.postValue(userOptionsDataSource.unFollowUser(userId)) - } - } - - fun amIFollowingUser(): Boolean = userOptionsDataSource.amIFollowingUser(userId) - - private fun toggleItemLoading(id: String) { val currentSet = loadingItemsIdsList.value?.toMutableSet() ?: return val newLoadingSet = currentSet.apply { diff --git a/core/src/main/java/org/futo/circles/core/model/ConfirmationType.kt b/core/src/main/java/org/futo/circles/core/model/ConfirmationType.kt index 7b5777ffe..2f9fb6e82 100644 --- a/core/src/main/java/org/futo/circles/core/model/ConfirmationType.kt +++ b/core/src/main/java/org/futo/circles/core/model/ConfirmationType.kt @@ -93,14 +93,9 @@ data class UnIgnoreUser( override val positiveButtonRes: Int = R.string.unignore_and_restart ) : ConfirmationType(titleRes, messageRes, positiveButtonRes) -data class UnfollowUser( - override val titleRes: Int = R.string.unfollow, - override val messageRes: Int = R.string.unfollow_user_message, - override val positiveButtonRes: Int = R.string.unfollow -) : ConfirmationType(titleRes, messageRes, positiveButtonRes) data class RemoveImage( override val titleRes: Int = R.string.remove_image, override val messageRes: Int = R.string.remove_image_message, - override val positiveButtonRes: Int = org.futo.circles.core.R.string.remove + override val positiveButtonRes: Int = org.futo.circles.core.R.string.remove ) : ConfirmationType(titleRes, messageRes, positiveButtonRes) \ No newline at end of file diff --git a/core/src/main/res/menu/user_menu.xml b/core/src/main/res/menu/user_menu.xml index bdaab7f6c..2b0d23328 100644 --- a/core/src/main/res/menu/user_menu.xml +++ b/core/src/main/res/menu/user_menu.xml @@ -1,11 +1,6 @@ <?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" diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 0b8efb7b7..4a35e5126 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -144,7 +144,6 @@ <string name="other_known_users">Other known users</string> <string name="unfollow">Unfollow</string> <string name="unfollow_user_timeline">Are you sure you want to unfollow this timeline?</string> - <string name="unfollow_user_message">Are you sure you want to unfollow this user?</string> <string name="ignore">Ignore</string> <string name="ignore_user_message">Ignoring this user will remove their messages from rooms you share.</string> <string name="request_sent">Request sent</string> -- GitLab