From baa1c60ec0a3c0407ae5c05bc6ff07f1dc4574da Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Wed, 12 Jun 2024 14:23:28 +0300
Subject: [PATCH] Remove shared circles data source

---
 .../workspace/SharedCircleDataSource.kt       | 65 -------------------
 1 file changed, 65 deletions(-)
 delete mode 100644 core/src/main/java/org/futo/circles/core/feature/workspace/SharedCircleDataSource.kt

diff --git a/core/src/main/java/org/futo/circles/core/feature/workspace/SharedCircleDataSource.kt b/core/src/main/java/org/futo/circles/core/feature/workspace/SharedCircleDataSource.kt
deleted file mode 100644
index 08f95dd54..000000000
--- a/core/src/main/java/org/futo/circles/core/feature/workspace/SharedCircleDataSource.kt
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.futo.circles.core.feature.workspace
-
-import org.futo.circles.core.extensions.createResult
-import org.futo.circles.core.extensions.getRoomOwner
-import org.futo.circles.core.feature.room.RoomRelationsBuilder
-import org.futo.circles.core.model.PROFILE_SPACE_ACCOUNT_DATA_KEY
-import org.futo.circles.core.provider.MatrixSessionProvider
-import org.futo.circles.core.utils.getJoinedRoomById
-import org.futo.circles.core.utils.getTimelineRoomFor
-import org.matrix.android.sdk.api.session.getRoomSummary
-import org.matrix.android.sdk.api.session.room.model.RoomSummary
-import javax.inject.Inject
-
-class SharedCircleDataSource @Inject constructor(
-    private val spacesTreeAccountDataSource: SpacesTreeAccountDataSource,
-    private val roomRelationsBuilder: RoomRelationsBuilder
-) {
-
-    fun getSharedCirclesSpaceId() =
-        spacesTreeAccountDataSource.getRoomIdByKey(PROFILE_SPACE_ACCOUNT_DATA_KEY)
-
-    suspend fun unfollowUsersSharedCircle(userId: String) {
-        val userSharedCircleId =
-            getSharedCircleFor(userId)?.roomId
-                ?: throw IllegalArgumentException("User's profile not found")
-        val mySharedCircleId = getSharedCirclesSpaceId()
-            ?: throw IllegalArgumentException("Workspace configuration failure")
-
-        roomRelationsBuilder.removeRelations(userSharedCircleId, mySharedCircleId)
-        MatrixSessionProvider.getSessionOrThrow().roomService().leaveRoom(userSharedCircleId)
-    }
-
-    suspend fun addToSharedCircles(timelineId: String) {
-        getSharedCirclesSpaceId()?.let { roomRelationsBuilder.setRelations(timelineId, it) }
-    }
-
-    suspend fun removeFromSharedCircles(timelineId: String) {
-        getSharedCirclesSpaceId()?.let { roomRelationsBuilder.removeRelations(timelineId, it) }
-    }
-
-    fun getSharedCircleFor(userId: String): RoomSummary? {
-        val sharedCirclesSpaceId = getSharedCirclesSpaceId() ?: return null
-        val userSharedCircleId =
-            getJoinedRoomById(sharedCirclesSpaceId)?.roomSummary()?.spaceChildren?.firstOrNull { child ->
-                getRoomOwner(child.childRoomId)?.userId == userId
-            }?.childRoomId ?: return null
-        return getJoinedRoomById(userSharedCircleId)?.roomSummary()
-    }
-
-    fun getSharedCirclesTimelinesIds() = getSharedCirclesSpaceId()?.let {
-        MatrixSessionProvider.currentSession?.getRoomSummary(it)?.spaceChildren?.map { it.childRoomId }
-    } ?: emptyList()
-
-    fun isCircleShared(circleId: String, sharedCirclesTimelineIds: List<String>): Boolean {
-        val timelineId = getTimelineRoomFor(circleId)?.roomId
-        return sharedCirclesTimelineIds.contains(timelineId)
-    }
-
-    suspend fun acceptSharedCircleInvite(roomId: String) = createResult {
-        MatrixSessionProvider.getSessionOrThrow().roomService().joinRoom(roomId)
-        val sharedCirclesSpaceId =
-            getSharedCirclesSpaceId() ?: throw IllegalArgumentException("Profile space not found")
-        roomRelationsBuilder.setRelations(roomId, sharedCirclesSpaceId)
-    }
-}
\ No newline at end of file
-- 
GitLab