diff --git a/auth/src/main/java/org/futo/circles/auth/feature/workspace/ConfigureWorkspaceViewModel.kt b/auth/src/main/java/org/futo/circles/auth/feature/workspace/ConfigureWorkspaceViewModel.kt index 16b537a664b68c8883d1c6622c6e073bb496d767..a4378e768fee9bf1238799f43a25ec1a2a78ac77 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/workspace/ConfigureWorkspaceViewModel.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/workspace/ConfigureWorkspaceViewModel.kt @@ -20,8 +20,8 @@ import javax.inject.Inject @HiltViewModel class ConfigureWorkspaceViewModel @Inject constructor( savedStateHandle: SavedStateHandle, - private val workspaceDataSource: ConfigureWorkspaceDataSource, - workspaceTasksProvider: WorkspaceTasksProvider + workspaceTasksProvider: WorkspaceTasksProvider, + private val workspaceDataSource: ConfigureWorkspaceDataSource ) : ViewModel() { private val shouldValidate = diff --git a/auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/ConfigureWorkspaceDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/ConfigureWorkspaceDataSource.kt index 861eaccca1eaef74cd076eb2396eb22a031bdcc0..3447021b1930c1bb041797ce878849b025204019 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/ConfigureWorkspaceDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/ConfigureWorkspaceDataSource.kt @@ -2,10 +2,13 @@ package org.futo.circles.auth.feature.workspace.data_source import kotlinx.coroutines.delay import org.futo.circles.core.model.CirclesRoom +import org.futo.circles.core.provider.MatrixSessionProvider import org.futo.circles.core.room.CreateRoomDataSource import org.futo.circles.core.utils.getJoinedRoomById -import org.futo.circles.core.utils.getJoinedRoomIdByTag import org.futo.circles.core.workspace.SpacesTreeAccountDataSource +import org.matrix.android.sdk.api.session.room.model.Membership +import org.matrix.android.sdk.api.session.room.model.RoomType +import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams import javax.inject.Inject class ConfigureWorkspaceDataSource @Inject constructor( @@ -34,10 +37,18 @@ class ConfigureWorkspaceDataSource @Inject constructor( private suspend fun addRecordToAccountDataIfRoomExist(room: CirclesRoom) { val tag = room.getTag() ?: return val key = room.accountDataKey ?: return - val roomId = getJoinedRoomIdByTag(tag, true) ?: return + val roomId = getJoinedRoomIdByTag(tag) ?: return spacesTreeAccountDataSource.updateSpacesConfigAccountData(key, roomId) } + private fun getJoinedRoomIdByTag(tag: String): String? { + val session = MatrixSessionProvider.currentSession ?: return null + return session.roomService().getRoomSummaries(roomSummaryQueryParams { + excludeType = null + memberships = listOf(Membership.JOIN) + }).firstOrNull { it.hasTag(tag) }?.roomId + } + private companion object { private const val CREATE_ROOM_DELAY = 1000L } diff --git a/auth/src/main/res/layout/fragment_configure_workspace.xml b/auth/src/main/res/layout/fragment_configure_workspace.xml index d364732adae65fa73562777c6696922bf581a7d1..7ad151308cfa272c72be76d654cd29358a6ee5c6 100644 --- a/auth/src/main/res/layout/fragment_configure_workspace.xml +++ b/auth/src/main/res/layout/fragment_configure_workspace.xml @@ -60,7 +60,7 @@ android:layout_height="@dimen/divider_height" android:layout_marginBottom="8dp" android:background="@color/divider_color" - app:layout_constraintBottom_toTopOf="@id/btbCreate" + app:layout_constraintBottom_toTopOf="@id/btbConfigure" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt b/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt index 7acd180b7509d7112076d236b198f9b964f2cf5e..ca975587a66db13ae8dd52a567b3824c656df24c 100644 --- a/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt +++ b/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt @@ -5,8 +5,6 @@ import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.session.getRoom import org.matrix.android.sdk.api.session.room.Room import org.matrix.android.sdk.api.session.room.model.Membership -import org.matrix.android.sdk.api.session.room.model.RoomType -import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams fun Room.getTimelineRoom(): Room? { val session = MatrixSessionProvider.currentSession ?: return null @@ -25,13 +23,6 @@ fun getTimelineRoomFor(circleId: String): Room? { fun getTimelineRoomIdOrThrow(circleId: String) = getTimelineRoomFor(circleId)?.roomId ?: throw IllegalArgumentException("Timeline not found") -fun getJoinedRoomIdByTag(tag: String, includeSpace: Boolean = false): String? { - val session = MatrixSessionProvider.currentSession ?: return null - return session.roomService().getRoomSummaries(roomSummaryQueryParams { - excludeType = if (includeSpace) null else listOf(RoomType.SPACE) - memberships = listOf(Membership.JOIN) - }).firstOrNull { it.hasTag(tag) }?.roomId -} fun getJoinedRoomById(roomId: String): Room? { val session = MatrixSessionProvider.currentSession ?: return null diff --git a/gallery/src/main/java/org/futo/circles/gallery/feature/backup/MediaBackupDataSource.kt b/gallery/src/main/java/org/futo/circles/gallery/feature/backup/MediaBackupDataSource.kt index ff5bd0f00cba236514d8d81a57e91680ccd4ff72..53f3d22274b95e5a62f178e47a8fe89565ae97eb 100644 --- a/gallery/src/main/java/org/futo/circles/gallery/feature/backup/MediaBackupDataSource.kt +++ b/gallery/src/main/java/org/futo/circles/gallery/feature/backup/MediaBackupDataSource.kt @@ -9,11 +9,12 @@ import org.futo.circles.core.model.MediaType import org.futo.circles.core.provider.MatrixSessionProvider import org.futo.circles.core.room.CreateRoomDataSource import org.futo.circles.core.timeline.post.SendMessageDataSource -import org.futo.circles.core.utils.getJoinedRoomIdByTag import org.futo.circles.gallery.model.MediaFolderListItem import org.futo.circles.gallery.model.MediaToBackupItem import org.futo.circles.gallery.model.toMediaToBackupItem import org.matrix.android.sdk.api.session.getRoom +import org.matrix.android.sdk.api.session.room.model.Membership +import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams import java.io.File import javax.inject.Inject @@ -90,6 +91,13 @@ class MediaBackupDataSource @Inject constructor( return roomId } + private fun getJoinedRoomIdByTag(tag: String): String? { + val session = MatrixSessionProvider.currentSession ?: return null + return session.roomService().getRoomSummaries(roomSummaryQueryParams { + memberships = listOf(Membership.JOIN) + }).firstOrNull { it.hasTag(tag) }?.roomId + } + private fun getMediaCursor( selection: String? = null ): Cursor? {