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

Create SpacesTreeAccountDataSource

parent 0f8c0bc3
No related branches found
No related tags found
No related merge requests found
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
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
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
package org.futo.circles.core.workspace.tasks
enum class WorkspaceTaskStatus {
IDLE,
RUNNING,
SUCCESS,
FAILED
}
\ 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