From 1597e8e4098a9984f6f14ca3aba0ae6eabe2ca9e Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Wed, 27 Dec 2023 17:42:36 +0200 Subject: [PATCH] Show connect if not my follower --- .../circles/feature/people/user/UserViewModel.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/futo/circles/feature/people/user/UserViewModel.kt b/app/src/main/java/org/futo/circles/feature/people/user/UserViewModel.kt index 0dbaa784f..2e8973059 100644 --- a/app/src/main/java/org/futo/circles/feature/people/user/UserViewModel.kt +++ b/app/src/main/java/org/futo/circles/feature/people/user/UserViewModel.kt @@ -18,6 +18,7 @@ import org.futo.circles.core.feature.workspace.SharedCircleDataSource import org.futo.circles.core.provider.MatrixSessionProvider import org.futo.circles.feature.people.UserOptionsDataSource import org.futo.circles.model.TimelineListItem +import org.matrix.android.sdk.api.session.getRoom import javax.inject.Inject @HiltViewModel @@ -31,11 +32,12 @@ class UserViewModel @Inject constructor( ) : ViewModel() { private val userId: String = savedStateHandle.getOrThrow("userId") - private val mySharedCircleSpaceId = sharedCircleDataSource.getSharedCirclesSpaceId() ?: "" + private val profileRoomId = sharedCircleDataSource.getSharedCirclesSpaceId() ?: "" val userLiveData = userDataSource.userLiveData val timelineLiveDataLiveData = MutableLiveData<List<TimelineListItem>>() val requestFollowLiveData = SingleEventLiveData<Response<Unit?>>() + val inviteToConnectLiveData = SingleEventLiveData<Response<Unit?>>() val ignoreUserLiveData = SingleEventLiveData<Response<Unit?>>() val unIgnoreUserLiveData = SingleEventLiveData<Response<Unit?>>() val unFollowUserLiveData = SingleEventLiveData<Response<Unit?>>() @@ -92,10 +94,18 @@ class UserViewModel @Inject constructor( } fun amIFollowingUser(): Boolean = userOptionsDataSource.amIFollowingUser(userId) + + fun isUserMyFollower(): Boolean { + val mySharedCircleMembers = + MatrixSessionProvider.currentSession?.getRoom(profileRoomId) + ?.roomSummary()?.otherMemberIds ?: emptyList() + return mySharedCircleMembers.contains(userId) + } + fun inviteToMySharedCircle() { launchBg { - val result = inviteRequestsDataSource.inviteUser(mySharedCircleSpaceId, userId) - requestFollowLiveData.postValue(result) + val result = inviteRequestsDataSource.inviteUser(profileRoomId, userId) + inviteToConnectLiveData.postValue(result) } } -- GitLab