From acfe12d714c951482f10f41e0b87ac2b50541e23 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 22 Sep 2023 15:07:27 +0300 Subject: [PATCH] Implement fragment part --- .../ConfigureWorkspaceDialogFragment.kt | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/futo/circles/core/workspace/ConfigureWorkspaceDialogFragment.kt b/core/src/main/java/org/futo/circles/core/workspace/ConfigureWorkspaceDialogFragment.kt index 917d615a2..d2060278b 100644 --- a/core/src/main/java/org/futo/circles/core/workspace/ConfigureWorkspaceDialogFragment.kt +++ b/core/src/main/java/org/futo/circles/core/workspace/ConfigureWorkspaceDialogFragment.kt @@ -1,25 +1,35 @@ package org.futo.circles.core.workspace -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent import android.os.Bundle import android.view.View +import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import androidx.recyclerview.widget.DividerItemDecoration import dagger.hilt.android.AndroidEntryPoint +import org.futo.circles.core.R import org.futo.circles.core.databinding.DialogFragmentConfigureWorkspaceBinding +import org.futo.circles.core.extensions.observeData +import org.futo.circles.core.extensions.observeResponse +import org.futo.circles.core.extensions.showError import org.futo.circles.core.fragment.BaseFullscreenDialogFragment +import org.futo.circles.core.fragment.HasLoadingState +import org.futo.circles.core.workspace.list.WorkspaceTasksListAdapter @AndroidEntryPoint class ConfigureWorkspaceDialogFragment : - BaseFullscreenDialogFragment(DialogFragmentConfigureWorkspaceBinding::inflate) { + BaseFullscreenDialogFragment(DialogFragmentConfigureWorkspaceBinding::inflate), + HasLoadingState { + override val fragment: Fragment = this private val viewModel by viewModels<ConfigureWorkspaceViewModel>() private val binding by lazy { getBinding() as DialogFragmentConfigureWorkspaceBinding } + private val tasksAdapter by lazy { + WorkspaceTasksListAdapter { viewModel.onOptionalTaskSelectionChanged(it) } + } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -28,12 +38,29 @@ class ConfigureWorkspaceDialogFragment : } private fun setupViews() { - + with(binding) { + rvWorkspaceTasks.apply { + adapter = tasksAdapter + addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL)) + } + btbCreate.setOnClickListener { + startLoading(btbCreate) + viewModel.createWorkspace() + } + } } private fun setupObservers() { + viewModel.tasksLiveData.observeData(this) { + tasksAdapter.submitList(it) + } + viewModel.workspaceResultLiveData.observeResponse(this, + success = { + }, + error = { + showError(it) + binding.btbCreate.setText(getString(R.string.retry)) + }) } - - } -- GitLab