diff --git a/app/src/main/java/com/embers/simpleto_do/EditTaskDialogFragment.kt b/app/src/main/java/com/embers/simpleto_do/EditTaskDialogFragment.kt
new file mode 100644
index 0000000..8619630
--- /dev/null
+++ b/app/src/main/java/com/embers/simpleto_do/EditTaskDialogFragment.kt
@@ -0,0 +1,43 @@
+package com.embers.simpleto_do
+
+import android.app.AlertDialog
+import android.app.Dialog
+import android.content.DialogInterface
+import android.os.Bundle
+import android.text.InputType
+import android.util.Log
+import android.widget.EditText
+import androidx.fragment.app.DialogFragment
+import java.lang.IllegalStateException
+
+class EditTaskDialogFragment(private val dismissListener: OnDismissListener) : DialogFragment() {
+ private val TAG: String = this::class.java.name
+
+ interface OnDismissListener {
+ fun onDismiss(text: String, submitted: Boolean)
+ }
+
+ private var text: String = ""
+ private var submitted: Boolean = false
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ return activity?.let {
+ val input = EditText(it)
+ input.inputType = InputType.TYPE_CLASS_TEXT
+
+ val builder = AlertDialog.Builder(it)
+ builder.setMessage(R.string.dialog_edit_task)
+ .setView(input)
+ .setNegativeButton(R.string.dialog_negative) {_, _ ->}
+ .setPositiveButton(R.string.dialog_positive) {_, _ -> text = input.text.toString(); submitted = true}
+
+ builder.create()
+ } ?: throw IllegalStateException("Activity cannot be null")
+ }
+
+ override fun onDismiss(dialog: DialogInterface) {
+ super.onDismiss(dialog)
+
+ dismissListener.onDismiss(text, submitted)
+ }
+}
diff --git a/app/src/main/java/com/embers/simpleto_do/MainActivity.kt b/app/src/main/java/com/embers/simpleto_do/MainActivity.kt
index 875baf1..683a8ba 100644
--- a/app/src/main/java/com/embers/simpleto_do/MainActivity.kt
+++ b/app/src/main/java/com/embers/simpleto_do/MainActivity.kt
@@ -73,6 +73,24 @@ class MainActivity : AppCompatActivity() {
adapter.notifyItemRemoved(position)
saveData()
}
+
+ override fun onDoubleClick(position: Int) {
+ // When double clicked and 'submit' is hit in the dialog, the text entered will be
+ val dismissListener = object : EditTaskDialogFragment.OnDismissListener {
+ override fun onDismiss(text: String, submitted: Boolean) {
+ // If the dialog was submitted
+ if (submitted) {
+ // Update data, inform adapter, save to file
+ taskList[position] = text
+ adapter.notifyItemChanged(position)
+ saveData()
+ }
+ }
+ }
+
+ val editTaskDialog = EditTaskDialogFragment(dismissListener)
+ editTaskDialog.show(supportFragmentManager, "edit_task")
+ }
}
// Setup RecyclerView
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 95f0988..7bd0906 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,4 +2,7 @@
Simple To-do
Add
Name of new To-do list item
+ Edit the name of this to-do task
+ SUBMIT
+ CANCEL
\ No newline at end of file