From b36f3d83df8250b22a8f37469b4670de7684e6b5 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 22 Sep 2023 16:31:58 +0300 Subject: [PATCH] Create tasks provider --- .../workspace/ConfigureWorkspaceViewModel.kt | 34 +++---------- .../data_source/WorkspaceTasksProvider.kt | 49 +++++++++++++++++++ 2 files changed, 57 insertions(+), 26 deletions(-) create mode 100644 auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/WorkspaceTasksProvider.kt 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 a317e10b7..d100f0443 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 @@ -3,43 +3,25 @@ package org.futo.circles.auth.feature.workspace import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import dagger.hilt.android.lifecycle.HiltViewModel -import org.futo.circles.auth.R +import org.futo.circles.auth.feature.workspace.data_source.ConfigureWorkspaceDataSource +import org.futo.circles.auth.feature.workspace.data_source.WorkspaceTasksProvider +import org.futo.circles.auth.model.MandatoryWorkspaceTask +import org.futo.circles.auth.model.OptionalWorkspaceTask +import org.futo.circles.auth.model.WorkspaceTask import org.futo.circles.core.SingleEventLiveData import org.futo.circles.core.extensions.Response import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.launchBg -import org.futo.circles.core.model.Circle -import org.futo.circles.core.model.Gallery -import org.futo.circles.core.model.GroupsSpace -import org.futo.circles.auth.model.MandatoryWorkspaceTask -import org.futo.circles.auth.model.OptionalWorkspaceTask -import org.futo.circles.core.model.PeopleSpace -import org.futo.circles.core.model.PhotosSpace -import org.futo.circles.core.model.RootSpace -import org.futo.circles.core.model.SharedCirclesSpace import org.futo.circles.core.model.TaskStatus -import org.futo.circles.auth.model.WorkspaceTask -import org.futo.circles.auth.feature.workspace.data_source.ConfigureWorkspaceDataSource import javax.inject.Inject @HiltViewModel class ConfigureWorkspaceViewModel @Inject constructor( - private val workspaceDataSource: ConfigureWorkspaceDataSource + private val workspaceDataSource: ConfigureWorkspaceDataSource, + private val workspaceTasksProvider: WorkspaceTasksProvider ) : ViewModel() { - val tasksLiveData = MutableLiveData( - listOf( - MandatoryWorkspaceTask(RootSpace(), R.string.passphrase), - MandatoryWorkspaceTask(GroupsSpace(), R.string.passphrase), - MandatoryWorkspaceTask(PhotosSpace(), R.string.passphrase), - MandatoryWorkspaceTask(PeopleSpace(), R.string.passphrase), - MandatoryWorkspaceTask(SharedCirclesSpace(), R.string.passphrase), - OptionalWorkspaceTask(Gallery(nameId = R.string.passphrase), R.string.passphrase), - OptionalWorkspaceTask(Circle(nameId = R.string.friends), R.string.passphrase), - OptionalWorkspaceTask(Circle(nameId = R.string.family), R.string.passphrase), - OptionalWorkspaceTask(Circle(nameId = R.string.community), R.string.passphrase) - ) - ) + val tasksLiveData = MutableLiveData(workspaceTasksProvider.getFullTasksList()) val workspaceResultLiveData = SingleEventLiveData<Response<Unit>>() fun createWorkspace() = launchBg { diff --git a/auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/WorkspaceTasksProvider.kt b/auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/WorkspaceTasksProvider.kt new file mode 100644 index 000000000..d69960e0e --- /dev/null +++ b/auth/src/main/java/org/futo/circles/auth/feature/workspace/data_source/WorkspaceTasksProvider.kt @@ -0,0 +1,49 @@ +package org.futo.circles.auth.feature.workspace.data_source + +import org.futo.circles.auth.R +import org.futo.circles.auth.model.MandatoryWorkspaceTask +import org.futo.circles.auth.model.OptionalWorkspaceTask +import org.futo.circles.auth.model.WorkspaceTask +import org.futo.circles.core.model.Circle +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.PeopleSpace +import org.futo.circles.core.model.PhotosSpace +import org.futo.circles.core.model.RootSpace +import org.futo.circles.core.model.SharedCirclesSpace +import javax.inject.Inject + +class WorkspaceTasksProvider @Inject constructor() { + + fun getFullTasksList() = mutableListOf<WorkspaceTask>().apply { + addAll(getMandatoryTasks()) + addAll(getOptionalTasks()) + } + + private fun getMandatoryTasks() = listOf( + MandatoryWorkspaceTask(RootSpace(), R.string.root_space_description), + MandatoryWorkspaceTask(CirclesSpace(), R.string.circles_space_description), + MandatoryWorkspaceTask(GroupsSpace(), R.string.groups_space_description), + MandatoryWorkspaceTask(PhotosSpace(), R.string.galleries_space_description), + MandatoryWorkspaceTask(PeopleSpace(), R.string.people_space_description), + MandatoryWorkspaceTask(SharedCirclesSpace(), R.string.profile_space_description) + ) + + private fun getOptionalTasks() = listOf( + OptionalWorkspaceTask( + Gallery(nameId = org.futo.circles.core.R.string.photos), + R.string.photos_room_description + ), + OptionalWorkspaceTask( + Circle(nameId = R.string.friends), + R.string.friends_circle_description + ), + OptionalWorkspaceTask(Circle(nameId = R.string.family), R.string.family_circle_description), + OptionalWorkspaceTask( + Circle(nameId = R.string.community), + R.string.community_circle_description + ) + ) + +} \ No newline at end of file -- GitLab