Эх сурвалжийг харах

Add GetTaskListRemoteOperation

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 жил өмнө
parent
commit
ca52db7437

+ 22 - 12
app/src/main/java/com/nextcloud/client/assistant/AssistantViewModel.kt

@@ -26,6 +26,7 @@ import androidx.lifecycle.viewModelScope
 import com.nextcloud.client.assistant.repository.AssistantRepository
 import com.nextcloud.client.assistant.repository.AssistantRepository
 import com.nextcloud.common.NextcloudClient
 import com.nextcloud.common.NextcloudClient
 import com.owncloud.android.lib.common.operations.RemoteOperationResult
 import com.owncloud.android.lib.common.operations.RemoteOperationResult
+import com.owncloud.android.lib.resources.assistant.model.TaskList
 import com.owncloud.android.lib.resources.assistant.model.TaskTypes
 import com.owncloud.android.lib.resources.assistant.model.TaskTypes
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -40,16 +41,15 @@ class AssistantViewModel(client: NextcloudClient) : ViewModel() {
     private val _taskTypes = MutableStateFlow<RemoteOperationResult<TaskTypes>?>(null)
     private val _taskTypes = MutableStateFlow<RemoteOperationResult<TaskTypes>?>(null)
     val taskTypes: StateFlow<RemoteOperationResult<TaskTypes>?> = _taskTypes
     val taskTypes: StateFlow<RemoteOperationResult<TaskTypes>?> = _taskTypes
 
 
+    private val _taskList = MutableStateFlow<RemoteOperationResult<TaskList>?>(null)
+    val taskList: StateFlow<RemoteOperationResult<TaskList>?> = _taskList
+
     private val _isTaskCreated = MutableStateFlow(false)
     private val _isTaskCreated = MutableStateFlow(false)
     val isTaskCreated: StateFlow<Boolean> = _isTaskCreated
     val isTaskCreated: StateFlow<Boolean> = _isTaskCreated
 
 
     init {
     init {
-        viewModelScope.launch(Dispatchers.IO) {
-            val result = repository.getTaskTypes()
-            _taskTypes.update {
-                result
-            }
-        }
+        getTaskTypes()
+        getTaskList()
     }
     }
 
 
     fun createTask(
     fun createTask(
@@ -65,22 +65,32 @@ class AssistantViewModel(client: NextcloudClient) : ViewModel() {
         }
         }
     }
     }
 
 
-    /*
-    fun deleteTask(id: String) {
+    private fun getTaskTypes() {
         viewModelScope.launch(Dispatchers.IO) {
         viewModelScope.launch(Dispatchers.IO) {
-            repository?.deleteTask(id)
+            val result = repository.getTaskTypes()
+            _taskTypes.update {
+                result
+            }
         }
         }
     }
     }
 
 
-    fun getTask(id: String) {
+    private fun getTaskList(appId: String = "assistant") {
         viewModelScope.launch(Dispatchers.IO) {
         viewModelScope.launch(Dispatchers.IO) {
-            _task.update {
-                repository?.getTask(id)
+            val result = repository.getTaskList(appId)
+
+            _taskList.update {
+                result
             }
             }
         }
         }
     }
     }
 
 
 
 
+    /*
+    fun deleteTask(id: String) {
+        viewModelScope.launch(Dispatchers.IO) {
+            repository?.deleteTask(id)
+        }
+    }
      */
      */
 
 
 }
 }

+ 2 - 1
app/src/main/java/com/nextcloud/client/assistant/AsssistantScreen.kt

@@ -59,6 +59,7 @@ import com.owncloud.android.utils.DisplayUtils
 @Composable
 @Composable
 fun AssistantScreen(viewModel: AssistantViewModel, floatingActionButton: FloatingActionButton) {
 fun AssistantScreen(viewModel: AssistantViewModel, floatingActionButton: FloatingActionButton) {
     // TODO hide sort group, floating action and search bar
     // TODO hide sort group, floating action and search bar
+    val taskList by viewModel.taskList.collectAsState()
     val isTaskCreated by viewModel.isTaskCreated.collectAsState()
     val isTaskCreated by viewModel.isTaskCreated.collectAsState()
     val taskTypes by viewModel.taskTypes.collectAsState()
     val taskTypes by viewModel.taskTypes.collectAsState()
     var selectedTaskType: String? by remember {
     var selectedTaskType: String? by remember {
@@ -87,7 +88,7 @@ fun AssistantScreen(viewModel: AssistantViewModel, floatingActionButton: Floatin
             }
             }
         }
         }
 
 
-        items(taskTypes?.resultData?.types ?: listOf()) {
+        items(taskList?.resultData?.tasks ?: listOf()) {
             Text(text = it.toString())
             Text(text = it.toString())
         }
         }
     }
     }

+ 6 - 7
app/src/main/java/com/nextcloud/client/assistant/repository/AssistantRepository.kt

@@ -24,10 +24,12 @@ package com.nextcloud.client.assistant.repository
 import com.nextcloud.common.NextcloudClient
 import com.nextcloud.common.NextcloudClient
 import com.owncloud.android.lib.common.operations.RemoteOperationResult
 import com.owncloud.android.lib.common.operations.RemoteOperationResult
 import com.owncloud.android.lib.resources.assistant.CreateTaskRemoteOperation
 import com.owncloud.android.lib.resources.assistant.CreateTaskRemoteOperation
+import com.owncloud.android.lib.resources.assistant.GetTaskListRemoteOperation
 import com.owncloud.android.lib.resources.assistant.GetTaskTypesRemoteOperation
 import com.owncloud.android.lib.resources.assistant.GetTaskTypesRemoteOperation
+import com.owncloud.android.lib.resources.assistant.model.TaskList
 import com.owncloud.android.lib.resources.assistant.model.TaskTypes
 import com.owncloud.android.lib.resources.assistant.model.TaskTypes
 
 
-class AssistantRepository(private val client: NextcloudClient): AssistantRepositoryType {
+class AssistantRepository(private val client: NextcloudClient) : AssistantRepositoryType {
 
 
     override fun getTaskTypes(): RemoteOperationResult<TaskTypes> {
     override fun getTaskTypes(): RemoteOperationResult<TaskTypes> {
         return GetTaskTypesRemoteOperation().execute(client)
         return GetTaskTypesRemoteOperation().execute(client)
@@ -40,12 +42,11 @@ class AssistantRepository(private val client: NextcloudClient): AssistantReposit
         return CreateTaskRemoteOperation(input, type).execute(client)
         return CreateTaskRemoteOperation(input, type).execute(client)
     }
     }
 
 
-    /*
-      // TODO Check return type
-     override fun getTaskList(appId: String): TaskTypes? {
-        return operation.get("/ocs/v2.php/textprocessing/tasks/app/$appId", TaskTypes::class.java)
+    override fun getTaskList(appId: String): RemoteOperationResult<TaskList> {
+        return GetTaskListRemoteOperation(appId).execute(client)
     }
     }
 
 
+    /*
     // TODO Check return type
     // TODO Check return type
     override fun deleteTask(id: String): CreatedTask? {
     override fun deleteTask(id: String): CreatedTask? {
         return operation.delete("/ocs/v2.php/textprocessing/task/$id", TaskTypes::class.java)
         return operation.delete("/ocs/v2.php/textprocessing/task/$id", TaskTypes::class.java)
@@ -55,7 +56,5 @@ class AssistantRepository(private val client: NextcloudClient): AssistantReposit
     override fun getTask(id: String): CreatedTask? {
     override fun getTask(id: String): CreatedTask? {
         return operation.get("/ocs/v2.php/textprocessing/task/$id", TaskTypes::class.java)
         return operation.get("/ocs/v2.php/textprocessing/task/$id", TaskTypes::class.java)
     }
     }
-
-
      */
      */
 }
 }

+ 4 - 2
app/src/main/java/com/nextcloud/client/assistant/repository/AssistantRepositoryType.kt

@@ -22,7 +22,7 @@
 package com.nextcloud.client.assistant.repository
 package com.nextcloud.client.assistant.repository
 
 
 import com.owncloud.android.lib.common.operations.RemoteOperationResult
 import com.owncloud.android.lib.common.operations.RemoteOperationResult
-import com.owncloud.android.lib.resources.assistant.model.TaskType
+import com.owncloud.android.lib.resources.assistant.model.TaskList
 import com.owncloud.android.lib.resources.assistant.model.TaskTypes
 import com.owncloud.android.lib.resources.assistant.model.TaskTypes
 
 
 interface AssistantRepositoryType {
 interface AssistantRepositoryType {
@@ -33,12 +33,14 @@ interface AssistantRepositoryType {
         type: String,
         type: String,
     ): RemoteOperationResult<Void>
     ): RemoteOperationResult<Void>
 
 
+    fun getTaskList(appId: String): RemoteOperationResult<TaskList>
+
     /*
     /*
      fun getTask(id: String): CreatedTask?
      fun getTask(id: String): CreatedTask?
 
 
     fun deleteTask(id: String): CreatedTask?
     fun deleteTask(id: String): CreatedTask?
 
 
-    fun getTaskList(appId: String): TaskTypes?
+
 
 
 
 
      */
      */