diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt
index 31107b137..0697073e3 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt
@@ -92,6 +92,19 @@ open class Task constructor(): Parcelable {
val completedChecklistCount: Int
get() = checklist?.count { it.completed } ?: 0
+ val extraLightTaskColor: Int
+ get() {
+ return when {
+ this.value < -20 -> return R.color.watch_maroon_200
+ this.value < -10 -> return R.color.watch_red_200
+ this.value < -1 -> return R.color.watch_orange_200
+ this.value < 1 -> return R.color.watch_yellow_200
+ this.value < 5 -> return R.color.watch_green_200
+ this.value < 10 -> return R.color.watch_teal_200
+ else -> R.color.watch_blue_200
+ }
+ }
+
val lightTaskColor: Int
get() {
return when {
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/CheckedTaskViewHolder.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/CheckedTaskViewHolder.kt
new file mode 100644
index 000000000..54eaadc31
--- /dev/null
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/CheckedTaskViewHolder.kt
@@ -0,0 +1,43 @@
+package com.habitrpg.wearos.habitica.ui.viewHolders.tasks
+
+import android.content.res.ColorStateList
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.core.content.ContextCompat
+import com.habitrpg.android.habitica.R
+import com.habitrpg.wearos.habitica.models.tasks.Task
+
+abstract class CheckedTaskViewHolder(itemView: View) : TaskViewHolder(itemView) {
+ abstract val checkbox: ImageView
+ abstract val checkboxWrapper: ViewGroup
+
+ override fun bind(data: Task) {
+ checkboxWrapper.setOnClickListener { _ ->
+ onTaskScore?.invoke()
+ }
+ super.bind(data)
+ if (data.completed) {
+ checkbox.setImageResource(R.drawable.checkmark)
+ checkboxWrapper.backgroundTintList =
+ ColorStateList.valueOf(ContextCompat.getColor(itemView.context, R.color.amp_transparent))
+ checkbox.backgroundTintList = ColorStateList.valueOf(
+ ContextCompat.getColor(
+ itemView.context,
+ R.color.gray_300
+ )
+ )
+ } else {
+ checkbox.setImageDrawable(null)
+
+ checkboxWrapper.backgroundTintList =
+ ColorStateList.valueOf(ContextCompat.getColor(itemView.context, data.lightTaskColor))
+ checkbox.backgroundTintList = ColorStateList.valueOf(
+ ContextCompat.getColor(
+ itemView.context,
+ data.extraLightTaskColor
+ )
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/DailyViewHolder.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/DailyViewHolder.kt
index 0d21e6dd0..94499cc59 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/DailyViewHolder.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/DailyViewHolder.kt
@@ -1,26 +1,17 @@
package com.habitrpg.wearos.habitica.ui.viewHolders.tasks
-import android.content.res.ColorStateList
import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
import android.widget.TextView
-import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.databinding.RowDailyBinding
-import com.habitrpg.wearos.habitica.models.tasks.Task
-class DailyViewHolder(itemView: View) : TaskViewHolder(itemView) {
+class DailyViewHolder(itemView: View) : CheckedTaskViewHolder(itemView) {
private val binding = RowDailyBinding.bind(itemView)
override val titleView: TextView
get() = binding.title
-
- init {
- binding.checkbox.setOnCheckedChangeListener { buttonView, isChecked ->
- onTaskScore?.invoke()
- }
- }
-
- override fun bind(data: Task) {
- super.bind(data)
- binding.checkbox.isChecked = data.completed
- binding.checkbox.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(itemView.context, data.mediumTaskColor))
- }
+ override val checkbox: ImageView
+ get() = binding.checkbox
+ override val checkboxWrapper: ViewGroup
+ get() = binding.checkboxWrapper
}
\ No newline at end of file
diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/ToDoViewHolder.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/ToDoViewHolder.kt
index 31f136b3b..81a8b95aa 100644
--- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/ToDoViewHolder.kt
+++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/ToDoViewHolder.kt
@@ -1,26 +1,17 @@
package com.habitrpg.wearos.habitica.ui.viewHolders.tasks
-import android.content.res.ColorStateList
import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
import android.widget.TextView
-import androidx.core.content.ContextCompat
import com.habitrpg.android.habitica.databinding.RowTodoBinding
-import com.habitrpg.wearos.habitica.models.tasks.Task
-class ToDoViewHolder(itemView: View) : TaskViewHolder(itemView) {
+class ToDoViewHolder(itemView: View) : CheckedTaskViewHolder(itemView) {
private val binding = RowTodoBinding.bind(itemView)
override val titleView: TextView
get() = binding.title
-
- init {
- binding.checkbox.setOnCheckedChangeListener { buttonView, isChecked ->
- onTaskScore?.invoke()
- }
- }
-
- override fun bind(data: Task) {
- super.bind(data)
- binding.checkbox.isChecked = data.completed
- binding.checkbox.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(itemView.context, data.mediumTaskColor))
- }
+ override val checkbox: ImageView
+ get() = binding.checkbox
+ override val checkboxWrapper: ViewGroup
+ get() = binding.checkboxWrapper
}
\ No newline at end of file
diff --git a/wearos/src/main/res/drawable-mdpi/checkmark.png b/wearos/src/main/res/drawable-mdpi/checkmark.png
new file mode 100644
index 000000000..5ef0f45ab
Binary files /dev/null and b/wearos/src/main/res/drawable-mdpi/checkmark.png differ
diff --git a/wearos/src/main/res/drawable-xhdpi/checkmark.png b/wearos/src/main/res/drawable-xhdpi/checkmark.png
new file mode 100644
index 000000000..f55e2942e
Binary files /dev/null and b/wearos/src/main/res/drawable-xhdpi/checkmark.png differ
diff --git a/wearos/src/main/res/drawable-xxhdpi/checkmark.png b/wearos/src/main/res/drawable-xxhdpi/checkmark.png
new file mode 100644
index 000000000..d5a4ec6ff
Binary files /dev/null and b/wearos/src/main/res/drawable-xxhdpi/checkmark.png differ
diff --git a/wearos/src/main/res/layout/row_daily.xml b/wearos/src/main/res/layout/row_daily.xml
index b08d0fadd..ed6996735 100644
--- a/wearos/src/main/res/layout/row_daily.xml
+++ b/wearos/src/main/res/layout/row_daily.xml
@@ -7,12 +7,20 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Chip">
-
+
+
+
-
+
+
+
+