TODOs: Add checkboxes and align the text/icons with action bar title
- checkboxes added. They look great!
- the text was aligned in both views
Missing:
- Tests for the checkbox actions. (This can be added in a later CL,
along with tests of the back button functionality.)
Change-Id: I7e6150084468c9b0841eddfc9881f6e22dd2ed17
diff --git a/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java b/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java
index 02ab30b..52db3bb 100644
--- a/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java
+++ b/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java
@@ -19,14 +19,17 @@
public class TaskRecyclerAdapter extends RecyclerView.Adapter<TaskViewHolder> {
private ArrayList<Task> mBackup;
private View.OnClickListener mItemListener;
+ private View.OnClickListener mDoneListener;
private boolean mShowDone = true;
private static final int RESOURCE_ID = R.layout.task_row;
- public TaskRecyclerAdapter(ArrayList<Task> backup, View.OnClickListener itemListener) {
+ public TaskRecyclerAdapter(ArrayList<Task> backup, View.OnClickListener itemListener,
+ View.OnClickListener doneListener) {
super();
mBackup = backup;
mItemListener = itemListener;
+ mDoneListener = doneListener;
}
@Override
@@ -39,7 +42,7 @@
@Override
public void onBindViewHolder(TaskViewHolder holder, int position) {
Task task = mBackup.get(position);
- holder.bindTask(task, mItemListener);
+ holder.bindTask(task, mItemListener, mDoneListener);
}
@Override
diff --git a/app/src/main/java/io/v/todos/TaskViewHolder.java b/app/src/main/java/io/v/todos/TaskViewHolder.java
index 4b032fb..35c90e6 100644
--- a/app/src/main/java/io/v/todos/TaskViewHolder.java
+++ b/app/src/main/java/io/v/todos/TaskViewHolder.java
@@ -5,7 +5,7 @@
package io.v.todos;
import android.view.View;
-import android.widget.ImageView;
+import android.widget.ImageButton;
import android.widget.TextView;
import io.v.todos.model.Task;
@@ -18,9 +18,13 @@
super(itemView);
}
- public void bindTask(Task task, View.OnClickListener listener) {
- final ImageView doneMark = (ImageView) itemView.findViewById(R.id.task_done);
- doneMark.setVisibility(task.done ? View.VISIBLE : View.GONE);
+ public void bindTask(Task task, View.OnClickListener itemListener,
+ View.OnClickListener doneListener) {
+ final ImageButton doneMark = (ImageButton) itemView.findViewById(R.id.task_done);
+ doneMark.setImageResource(task.done ? R.drawable.ic_check_box_black_24dp :
+ R.drawable.ic_check_box_outline_blank_black_24dp);
+ doneMark.setTag(task.key);
+ doneMark.setOnClickListener(doneListener);
final TextView name=(TextView) itemView.findViewById(R.id.task_text);
name.setText(task.text);
@@ -31,7 +35,7 @@
getCardView().setCardBackgroundColor(task.done ? 0xFFCCCCCC : 0xFFFFFFFF);
itemView.setTag(task.key);
- itemView.setOnClickListener(listener);
+ itemView.setOnClickListener(itemListener);
}
private String computeCreated(Task task) {
diff --git a/app/src/main/java/io/v/todos/TodoListActivity.java b/app/src/main/java/io/v/todos/TodoListActivity.java
index dbc0c76..b0a74a4 100644
--- a/app/src/main/java/io/v/todos/TodoListActivity.java
+++ b/app/src/main/java/io/v/todos/TodoListActivity.java
@@ -57,6 +57,13 @@
initiateTaskEdit(key);
}
+ }, new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ String key = (String) view.getTag();
+
+ mPersistence.updateTask(snackoosList.findByKey(key).withToggleDone());
+ }
});
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler);
diff --git a/app/src/main/res/drawable-hdpi/ic_check_box_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_check_box_black_24dp.png
new file mode 100644
index 0000000..64900ff
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_check_box_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_check_box_outline_blank_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_check_box_outline_blank_black_24dp.png
new file mode 100644
index 0000000..b8a8db4
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_check_box_outline_blank_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_check_box_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_check_box_black_24dp.png
new file mode 100644
index 0000000..49f9214
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_check_box_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_check_box_outline_blank_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_check_box_outline_blank_black_24dp.png
new file mode 100644
index 0000000..8ffd8b6
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_check_box_outline_blank_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_check_box_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_check_box_black_24dp.png
new file mode 100644
index 0000000..5b9851d
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_check_box_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_black_24dp.png
new file mode 100644
index 0000000..948b3cc
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_check_box_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_check_box_black_24dp.png
new file mode 100644
index 0000000..dd35fbd
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_check_box_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_black_24dp.png
new file mode 100644
index 0000000..546682b
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_check_box_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_check_box_black_24dp.png
new file mode 100644
index 0000000..b74e00b
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_check_box_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_check_box_outline_blank_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_check_box_outline_blank_black_24dp.png
new file mode 100644
index 0000000..2e32d7a
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_check_box_outline_blank_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/layout/task_row.xml b/app/src/main/res/layout/task_row.xml
index b0d15a5..b7f3059 100644
--- a/app/src/main/res/layout/task_row.xml
+++ b/app/src/main/res/layout/task_row.xml
@@ -50,15 +50,14 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
- <ImageView
+ <ImageButton
android:id="@+id/task_done"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
- android:layout_margin="@dimen/fab_margin"
- android:layout_weight="0"
- android:src="@drawable/ic_done_black_24dp"
- android:visibility="gone"/>
+ android:padding="16dp"
+ android:background="?attr/selectableItemBackgroundBorderless"
+ android:layout_weight="0"/>
<LinearLayout
android:layout_width="fill_parent"
diff --git a/app/src/main/res/layout/todo_list_row.xml b/app/src/main/res/layout/todo_list_row.xml
index 0797e93..b1e0879 100644
--- a/app/src/main/res/layout/todo_list_row.xml
+++ b/app/src/main/res/layout/todo_list_row.xml
@@ -44,7 +44,8 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:paddingLeft="10dp">
<TextView android:id="@+id/todo_list_name"
android:layout_width="fill_parent"