From bf1da74a4955afdbbc313bc198c8eec00f1d2151 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 22 Jun 2022 09:41:03 +0200 Subject: [PATCH] Improve daily and todo list look --- .../wearos/habitica/models/tasks/Task.kt | 13 ++++++ .../tasks/CheckedTaskViewHolder.kt | 43 ++++++++++++++++++ .../ui/viewHolders/tasks/DailyViewHolder.kt | 23 +++------- .../ui/viewHolders/tasks/ToDoViewHolder.kt | 23 +++------- .../src/main/res/drawable-mdpi/checkmark.png | Bin 0 -> 330 bytes .../src/main/res/drawable-xhdpi/checkmark.png | Bin 0 -> 521 bytes .../main/res/drawable-xxhdpi/checkmark.png | Bin 0 -> 685 bytes wearos/src/main/res/layout/row_daily.xml | 20 +++++--- wearos/src/main/res/layout/row_todo.xml | 21 ++++++--- 9 files changed, 99 insertions(+), 44 deletions(-) create mode 100644 wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/CheckedTaskViewHolder.kt create mode 100644 wearos/src/main/res/drawable-mdpi/checkmark.png create mode 100644 wearos/src/main/res/drawable-xhdpi/checkmark.png create mode 100644 wearos/src/main/res/drawable-xxhdpi/checkmark.png 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 0000000000000000000000000000000000000000..5ef0f45ab579f35dfbc0d1311e224b75e4d522e4 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp@K+MI#1|;*}T{!}zI14-?iy0WWg+Z8+Vb&Z8pde#$ zkh>GZx^prwfgF}}M_)$E)e-c@N{QI6Rjv*C{y%P>{9tsd}NjE(*d4kZT#?B5G z*ACeX_FIi%3&Ir25;)5Q{1q1*+TJ|nfg?X#>RtKHmIQ-hsejMkp3z&lsOI?gyb2#) zlW%UJFZ@n2F1R*Xcy$=-i!JQZY*8#n*v`oQW&h=E5SFx_ZFb%gKEu*GaSjT*&pq?7 zpTeNfRvohNlHFSMi{H8@9Vo7`X5MwKU=CwKT#AF$fnpm*jReojb4wp_cOGqV_@~Qw zU0rnDC*DhQyB3_gHc#^QX0GQ)ZTGjIXrAwOgWKRBf33gVN{>|^I}U90*=3S=E?|-Q Yyqi(~cTR8b0eY3e)78&qol`;+06vRG zps|-}g;@O;o#td_zUG|&FTg*Ez#phcs}uqG`BGUqlUuXC5gG%(MiGY0xq%meg)4N|06LX2Tp+GBV5F%k?o2+g;Ws9FZmO<7aw9kE2 zLV6`yI|+ga8^d=X*B2qSb*3>0kUC#Ho0(+hiC^yOE1y?$Cz&;07PF}rBD1m1M%NG` zRXjM1Z30WBvLY+{UWn7iL2}u{DKzTS^vlCf)V51gnAYYDxV3LEr ztc1z;XVBTWPta~dI7FJ2FsZU)(99f=Mv#rS0)@b=7{)8xLWDj5`kcG3MJ|VV00000 LNkvXXu0mjfs1DP( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d5a4ec6fffc2d4f16838fcef1489000420d5da46 GIT binary patch literal 685 zcmV;e0#f~nP)Tig5q zMr$qb1{$3i`#(MKTm_Ehj2tmLV*&f3!eFP#s%dY~d-&d#*VYV`BSwF1WN_)lb+BWy - + + + - + + + +