Skip to content
Snippets Groups Projects
Commit 33a082c5 authored by Taras's avatar Taras
Browse files

Improve isCircleShared check

parent 7ae9d65d
No related branches found
No related tags found
No related merge requests found
......@@ -46,10 +46,13 @@ class CirclesDataSource @Inject constructor(
val joinedCirclesSpaceIds = getJoinedCirclesIds()
val joinedCircles = list.filter { isJoinedCircle(it, joinedCirclesSpaceIds) }
val sharedCircles =
joinedCircles.filter { joinedCircle ->
sharedCircleDataSource.isCircleShared(joinedCircle.roomId)
}
val sharedCirclesTimelinesIds = sharedCircleDataSource.getSharedCirclesTimelinesIds()
val sharedCircles = joinedCircles.filter { joinedCircle ->
sharedCircleDataSource.isCircleShared(
joinedCircle.roomId,
sharedCirclesTimelinesIds
)
}
val privateCircles = joinedCircles - sharedCircles.toSet()
val requests = getKnockRequestToSharedTimelines(joinedCircles)
......
......@@ -50,9 +50,12 @@ class UpdateRoomDataSource @Inject constructor(
fun isTopicChanged(newTopic: String) = room?.roomSummary()?.topic != newTopic
fun isPrivateSharedChanged(isPublic: Boolean) = room?.roomId?.let {
sharedCircleDataSource.isCircleShared(it) != isPublic
isCircleShared(it) != isPublic
} ?: false
fun isCircleShared(circleId: String) = sharedCircleDataSource.isCircleShared(circleId)
fun isCircleShared(circleId: String) = sharedCircleDataSource.isCircleShared(
circleId,
sharedCircleDataSource.getSharedCirclesTimelinesIds()
)
}
\ No newline at end of file
......@@ -33,11 +33,12 @@ class SharedCircleDataSource @Inject constructor(
getRoomOwners(summary.roomId).map { it.userId }.contains(userId)
}
fun isCircleShared(circleId: String): Boolean {
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
val sharedCirclesTimelinesIds = getSharedCirclesSpaceId()?.let {
MatrixSessionProvider.currentSession?.getRoomSummary(it)?.spaceChildren?.map { it.childRoomId }
} ?: emptyList()
return sharedCirclesTimelinesIds.contains(timelineId)
return sharedCirclesTimelineIds.contains(timelineId)
}
}
\ No newline at end of file
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