diff --git a/app/src/main/java/com/clemhaowen/dm_td2/task/TaskActivity.kt b/app/src/main/java/com/clemhaowen/dm_td2/task/TaskActivity.kt
index ad6dcf83e30a56549e0817e852ad16afdeebaff1..6f98cce0a76444f3b0b53451f498fe03831fc386 100644
--- a/app/src/main/java/com/clemhaowen/dm_td2/task/TaskActivity.kt
+++ b/app/src/main/java/com/clemhaowen/dm_td2/task/TaskActivity.kt
@@ -18,12 +18,29 @@ class TaskActivity : AppCompatActivity() {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_task)
         val createButton = findViewById<Button>(R.id.button)
+        var resultCode = 666
+        val titleEditText = findViewById<EditText>(R.id.titleEditText)
+        val descriptionEditText = findViewById<EditText>(R.id.descriptionEditText)
+        val serializableExtra = intent?.getSerializableExtra("editTask")
+        var task : Task
+        var id : String = ""
+        if (serializableExtra != null){
+            task = serializableExtra as Task
+            titleEditText.setText(task.title)
+            descriptionEditText.setText(task.description)
+            resultCode = 667
+            id = task.id
+        }
         createButton.setOnClickListener{
-            val titleText = findViewById<EditText>(R.id.titleEditText).text
-            val descriptionText = findViewById<EditText>(R.id.descriptionEditText).text
-            val newTask = Task(id = java.util.UUID.randomUUID().toString(), title = titleText.toString(), description = descriptionText.toString())
+            var newTask : Task
+
+            if (resultCode == 666){
+                id = java.util.UUID.randomUUID().toString()
+            }
+            newTask = Task(id = id, title = titleEditText.text.toString(), description = descriptionEditText.text.toString())
+
             intent.putExtra("newTask", newTask)
-            setResult(666, intent)
+            setResult(resultCode, intent)
             TASK_KEY = "newTask"
             finish()
         }
diff --git a/app/src/main/java/com/clemhaowen/dm_td2/tasklist/TaskListFragment.kt b/app/src/main/java/com/clemhaowen/dm_td2/tasklist/TaskListFragment.kt
index d9a4c98e4a0595dd6498f58424f91e88a116370a..0267a206e3fc6800cab8733dc15043efda98cced 100644
--- a/app/src/main/java/com/clemhaowen/dm_td2/tasklist/TaskListFragment.kt
+++ b/app/src/main/java/com/clemhaowen/dm_td2/tasklist/TaskListFragment.kt
@@ -38,6 +38,7 @@ class TaskListFragment : Fragment() {
 
     companion object {
         const val ADD_TASK_REQUEST_CODE = 666
+        const val EDIT_TASK_REQUEST_CODE = 667
     }
 
     override fun onCreateView(
@@ -67,9 +68,10 @@ class TaskListFragment : Fragment() {
         }
 
         (recyclerView?.adapter as TaskListAdapter).onEditClickListener = { task ->
-            lifecycleScope.launch {
-                tasksRepository.updateTask(task)
-            }
+            val intent = Intent(activity, TaskActivity::class.java)
+            intent.putExtra("editTask", task)
+            startActivityForResult(intent, EDIT_TASK_REQUEST_CODE)
+            (recyclerView?.adapter as TaskListAdapter).notifyDataSetChanged()
         }
 
         tasksRepository.taskList.observe(viewLifecycleOwner, androidx.lifecycle.Observer {
@@ -98,7 +100,15 @@ class TaskListFragment : Fragment() {
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         val task = data!!.getSerializableExtra(TaskActivity.TASK_KEY) as Task
-        taskList.add(task)
+        lifecycleScope.launch {
+            if (requestCode == ADD_TASK_REQUEST_CODE) {
+                tasksRepository.addTask(task)
+            }
+            else if (requestCode == EDIT_TASK_REQUEST_CODE){
+                tasksRepository.updateTask(task)
+            }
+        }
+        //taskList.add(task)
     }
 
     override fun onResume() {
@@ -108,13 +118,14 @@ class TaskListFragment : Fragment() {
             crossfade(true)
             transformations(CircleCropTransformation())
         }
-        lifecycleScope.launch {
+        /*lifecycleScope.launch {
             tasksRepository.refresh()
-        }
+        }*/
         lifecycleScope.launch {
             val userInfo = Api.userService.getInfo().body()!!
             val textView = view?.findViewById<TextView>(R.id.textViewInfo)
             textView?.text = "${userInfo.firstName} ${userInfo.lastName}"
+            tasksRepository.refresh()
         }
     }
 }
\ No newline at end of file