diff --git a/app/src/main/java/com/embers/simpleto_do/DoubleClickListener.kt b/app/src/main/java/com/embers/simpleto_do/DoubleClickListener.kt new file mode 100644 index 0000000..1a32320 --- /dev/null +++ b/app/src/main/java/com/embers/simpleto_do/DoubleClickListener.kt @@ -0,0 +1,21 @@ +package com.embers.simpleto_do + +import android.util.Log +import android.view.View + +abstract class DoubleClickListener : View.OnClickListener { + private var lastClick: Long = 0 + + override fun onClick(v: View) { + val curClick = System.currentTimeMillis() + if (curClick - lastClick < DOUBLE_CLICK_TIME_DELTA) + onDoubleClick(v) + lastClick = curClick + } + + abstract fun onDoubleClick(item: View) + + companion object { + private const val DOUBLE_CLICK_TIME_DELTA: Long = 300 // Milliseconds + } +} \ No newline at end of file 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 a8bbba9..875baf1 100644 --- a/app/src/main/java/com/embers/simpleto_do/MainActivity.kt +++ b/app/src/main/java/com/embers/simpleto_do/MainActivity.kt @@ -3,7 +3,6 @@ package com.embers.simpleto_do import android.os.Bundle import android.util.Log import android.view.KeyEvent -import android.view.View import android.widget.Button import android.widget.EditText import androidx.appcompat.app.AppCompatActivity @@ -68,8 +67,8 @@ class MainActivity : AppCompatActivity() { /** * Callback to remove a task at a given location in the list (on long click action) */ - val onLongClickListener = object : TaskItemAdapter.OnLongClickListener { - override fun onItemLongClicked(position: Int) { + val clickListener = object : TaskItemAdapter.ClickListener { + override fun onLongClick(position: Int) { taskList.removeAt(position) adapter.notifyItemRemoved(position) saveData() @@ -79,7 +78,7 @@ class MainActivity : AppCompatActivity() { // Setup RecyclerView editText = findViewById(R.id.editTodoText) recyclerView = findViewById(R.id.recyclerView) - adapter = TaskItemAdapter(taskList, onLongClickListener) + adapter = TaskItemAdapter(taskList, clickListener) recyclerView.adapter = adapter recyclerView.layoutManager = LinearLayoutManager(this) button = findViewById(R.id.button) @@ -87,13 +86,13 @@ class MainActivity : AppCompatActivity() { refreshButton() // Disable add task button when text is not inside EditText - findViewById(R.id.editTodoText).setOnKeyListener(View.OnKeyListener { v, keyCode, event -> + findViewById(R.id.editTodoText).setOnKeyListener { _, _, event -> // Read only event after the action has been processed in the textbox if (event.action == KeyEvent.ACTION_UP) refreshButton() false - }) + } findViewById