Skip to content
Snippets Groups Projects
Commit 0745e8a6 authored by Taras's avatar Taras
Browse files

Remove unfollow user option on User's screen

parent 148bf6a6
No related branches found
No related tags found
No related merge requests found
......@@ -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) {
......
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
......@@ -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 {
......
......@@ -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
<?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"
......
......@@ -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>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment