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