From a3d024984fd93fa25e3f20e7cdc4f4eb300ee92b Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Thu, 21 Sep 2023 17:41:54 +0300 Subject: [PATCH] Create SpacesTreeAccountDataSource --- .../workspace/SpacesTreeAccountDataSource.kt | 28 +++++++++++++++++++ .../core/workspace/tasks/BaseWorkspaceTask.kt | 17 ----------- .../core/workspace/tasks/CreateRootTask.kt | 21 -------------- .../workspace/tasks/WorkspaceTaskStatus.kt | 8 ------ 4 files changed, 28 insertions(+), 46 deletions(-) create mode 100644 core/src/main/java/org/futo/circles/core/workspace/SpacesTreeAccountDataSource.kt delete mode 100644 core/src/main/java/org/futo/circles/core/workspace/tasks/BaseWorkspaceTask.kt delete mode 100644 core/src/main/java/org/futo/circles/core/workspace/tasks/CreateRootTask.kt delete mode 100644 core/src/main/java/org/futo/circles/core/workspace/tasks/WorkspaceTaskStatus.kt diff --git a/core/src/main/java/org/futo/circles/core/workspace/SpacesTreeAccountDataSource.kt b/core/src/main/java/org/futo/circles/core/workspace/SpacesTreeAccountDataSource.kt new file mode 100644 index 000000000..0c2a29337 --- /dev/null +++ b/core/src/main/java/org/futo/circles/core/workspace/SpacesTreeAccountDataSource.kt @@ -0,0 +1,28 @@ +package org.futo.circles.core.workspace + +import org.futo.circles.core.provider.MatrixSessionProvider +import javax.inject.Inject + +class SpacesTreeAccountDataSource @Inject constructor() { + + fun getSpacesTreeConfig() = + MatrixSessionProvider.currentSession?.accountDataService() + ?.getUserAccountDataEvent(SPACES_CONFIG_KEY)?.content ?: emptyMap() + + suspend fun updateSpacesConfigAccountData(key: String, roomId: String) { + val currentConfig = getSpacesTreeConfig().toMutableMap() + currentConfig[key] = roomId + saveSpacesTreeConfig(currentConfig) + } + + fun getRoomIdByKey(key: String) = getSpacesTreeConfig()[key]?.toString() + + private suspend fun saveSpacesTreeConfig(configMap: Map<String, Any>) { + 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 diff --git a/core/src/main/java/org/futo/circles/core/workspace/tasks/BaseWorkspaceTask.kt b/core/src/main/java/org/futo/circles/core/workspace/tasks/BaseWorkspaceTask.kt deleted file mode 100644 index a97747bab..000000000 --- a/core/src/main/java/org/futo/circles/core/workspace/tasks/BaseWorkspaceTask.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.futo.circles.core.workspace.tasks - -import org.futo.circles.core.model.CirclesRoom - -abstract class BaseWorkspaceTask() { - - protected abstract val room: CirclesRoom - protected abstract val titleResId: Int - protected abstract val descriptionResId: Int - protected var status: WorkspaceTaskStatus = WorkspaceTaskStatus.IDLE - protected abstract fun validate() - protected abstract fun perform() - - private var onTestUpdateListener: (() -> Unit)? = null - - -} \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/workspace/tasks/CreateRootTask.kt b/core/src/main/java/org/futo/circles/core/workspace/tasks/CreateRootTask.kt deleted file mode 100644 index 57c5ca8c5..000000000 --- a/core/src/main/java/org/futo/circles/core/workspace/tasks/CreateRootTask.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.futo.circles.core.workspace.tasks - -import org.futo.circles.core.model.CirclesRoom -import org.futo.circles.core.model.RootSpace - -class CreateRootTask() : BaseWorkspaceTask() { - - override val room: CirclesRoom = RootSpace() - override val titleResId: Int - get() = TODO("Not yet implemented") - override val descriptionResId: Int - get() = TODO("Not yet implemented") - - override fun validate() { - TODO("Not yet implemented") - } - - override fun perform() { - TODO("Not yet implemented") - } -} \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/workspace/tasks/WorkspaceTaskStatus.kt b/core/src/main/java/org/futo/circles/core/workspace/tasks/WorkspaceTaskStatus.kt deleted file mode 100644 index 0ca0b1d41..000000000 --- a/core/src/main/java/org/futo/circles/core/workspace/tasks/WorkspaceTaskStatus.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.futo.circles.core.workspace.tasks - -enum class WorkspaceTaskStatus { - IDLE, - RUNNING, - SUCCESS, - FAILED -} \ No newline at end of file -- GitLab