diff --git a/core/src/main/java/org/futo/circles/core/room/CoreSpacesTreeBuilder.kt b/core/src/main/java/org/futo/circles/core/room/CoreSpacesTreeBuilder.kt deleted file mode 100644 index b20e24c077214eea90f3e36cee81a3be1c9b19fc..0000000000000000000000000000000000000000 --- a/core/src/main/java/org/futo/circles/core/room/CoreSpacesTreeBuilder.kt +++ /dev/null @@ -1,55 +0,0 @@ -package org.futo.circles.core.room - -import android.content.Context -import androidx.lifecycle.MutableLiveData -import dagger.hilt.android.qualifiers.ApplicationContext -import kotlinx.coroutines.delay -import org.futo.circles.core.CREATE_ROOM_DELAY -import org.futo.circles.core.R -import org.futo.circles.core.model.CirclesSpace -import org.futo.circles.core.model.Gallery -import org.futo.circles.core.model.GroupsSpace -import org.futo.circles.core.model.LoadingData -import org.futo.circles.core.model.PeopleSpace -import org.futo.circles.core.model.PhotosSpace -import org.futo.circles.core.model.ROOT_SPACE_TAG -import org.futo.circles.core.model.RootSpace -import org.futo.circles.core.model.SharedCirclesSpace -import org.futo.circles.core.provider.MatrixSessionProvider -import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams -import javax.inject.Inject - -class CoreSpacesTreeBuilder @Inject constructor( - @ApplicationContext private val context: Context, - private val createRoomDataSource: CreateRoomDataSource, - private val userAccountDataDataSource: UserAccountDataDataSource -) { - - val loadingLiveData = MutableLiveData<LoadingData>() - - private val coreSpaces = listOf( - RootSpace(), - CirclesSpace(), - GroupsSpace(), - PhotosSpace(), - PeopleSpace(), - SharedCirclesSpace() - ) - - suspend fun createCoreSpacesTree() { - loadingLiveData.postValue(LoadingData(messageId = R.string.configuring_workspace)) - val configMap = mutableMapOf<String, String>() - coreSpaces.forEach { room -> - val roomId = createRoomDataSource.createRoom(room) - room.accountDataKey?.let { configMap.put(it, roomId) } - delay(CREATE_ROOM_DELAY) - } - userAccountDataDataSource.saveSpacesTreeConfig(configMap) - createRoomDataSource.createRoom(Gallery(), context.getString(R.string.photos)) - loadingLiveData.postValue(LoadingData(isLoading = false)) - } - - fun isCirclesHierarchyCreated(): Boolean = MatrixSessionProvider.currentSession?.roomService() - ?.getRoomSummaries(roomSummaryQueryParams { excludeType = null }) - ?.firstOrNull { summary -> summary.hasTag(ROOT_SPACE_TAG) } != null -} \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/room/UserAccountDataDataSource.kt b/core/src/main/java/org/futo/circles/core/room/UserAccountDataDataSource.kt deleted file mode 100644 index 98f0d094f9d998f0d98afac34c4b858e0b4b1c02..0000000000000000000000000000000000000000 --- a/core/src/main/java/org/futo/circles/core/room/UserAccountDataDataSource.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.futo.circles.core.room - -import org.futo.circles.core.provider.MatrixSessionProvider -import javax.inject.Inject - -class UserAccountDataDataSource @Inject constructor() { - - suspend fun saveSpacesTreeConfig(configMap: Map<String, String>) { - MatrixSessionProvider.getSessionOrThrow().accountDataService().updateUserAccountData( - SPACES_CONFIG_KEY, configMap - ) - } - - companion object { - private const val SPACES_CONFIG_KEY = "org.futo.circles.config" - } -} \ No newline at end of file