Add an indicator to show complete tasks

This commit is contained in:
Super12138 2024-06-25 12:00:06 +08:00
parent 53dfb04091
commit 87e52e458b
7 changed files with 36 additions and 194 deletions

View file

@ -3,10 +3,13 @@ package cn.super12138.todo.views.all
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import cn.super12138.todo.R import cn.super12138.todo.R
import cn.super12138.todo.ToDoApp
import cn.super12138.todo.logic.model.ToDo import cn.super12138.todo.logic.model.ToDo
import cn.super12138.todo.utils.VibrationUtils import cn.super12138.todo.utils.VibrationUtils
@ -19,6 +22,7 @@ class AllTasksAdapter(
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val todoContext: TextView = view.findViewById(R.id.todo_content_all) val todoContext: TextView = view.findViewById(R.id.todo_content_all)
val todoSubject: TextView = view.findViewById(R.id.todo_subject_all) val todoSubject: TextView = view.findViewById(R.id.todo_subject_all)
val itemBackground: LinearLayout = view.findViewById(R.id.item_background)
} }
@ -33,6 +37,11 @@ class AllTasksAdapter(
holder.todoContext.text = todo.content holder.todoContext.text = todo.content
holder.todoSubject.text = todo.subject holder.todoSubject.text = todo.subject
if (todo.state == 1) {
holder.itemBackground.background =
ContextCompat.getDrawable(ToDoApp.context, R.drawable.bg_item_complete)
}
holder.itemView.setOnClickListener { holder.itemView.setOnClickListener {
VibrationUtils.performHapticFeedback(it) VibrationUtils.performHapticFeedback(it)

View file

@ -101,6 +101,10 @@ class ToDoBottomSheet : BottomSheetDialogFragment() {
binding.btnSave.text = getString(R.string.update) binding.btnSave.text = getString(R.string.update)
TextUtils.getSubjectID(todoOrigSubject)?.let { binding.todoSubject.check(it) } TextUtils.getSubjectID(todoOrigSubject)?.let { binding.todoSubject.check(it) }
if (GlobalValues.devMode) {
binding.todoUuid.text = "UUID: $todoUUID"
}
} }
binding.btnSave.setOnClickListener { binding.btnSave.setOnClickListener {

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@color/item_complete_color" />
</shape>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
@ -17,6 +18,8 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
@ -34,9 +37,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
android:layout_marginTop="25dp" android:layout_marginTop="25dp"
android:layout_marginRight="20dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:hint="@string/tasks_textfield_hint" android:hint="@string/tasks_textfield_hint"
app:errorEnabled="true" app:errorEnabled="true"
@ -54,9 +55,7 @@
android:id="@+id/todo_subject" android:id="@+id/todo_subject"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginRight="20dp"
app:chipSpacing="5dp" app:chipSpacing="5dp"
app:selectionRequired="true" app:selectionRequired="true"
app:singleSelection="true"> app:singleSelection="true">
@ -134,10 +133,19 @@
</com.google.android.material.chip.ChipGroup> </com.google.android.material.chip.ChipGroup>
<TextView
android:id="@+id/todo_uuid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="?android:attr/textColorPrimary"
android:textSize="15sp"
android:visibility="gone"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="40dp" android:layout_marginTop="35dp"
android:layout_marginBottom="50dp" android:layout_marginBottom="50dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="horizontal"> android:orientation="horizontal">

View file

@ -11,9 +11,9 @@
android:focusable="true"> android:focusable="true">
<LinearLayout <LinearLayout
android:id="@+id/item_background"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView

View file

@ -189,98 +189,6 @@
<color name="md_theme_red_surfaceContainer">#2C1B19</color> <color name="md_theme_red_surfaceContainer">#2C1B19</color>
<color name="md_theme_red_surfaceContainerHigh">#372623</color> <color name="md_theme_red_surfaceContainerHigh">#372623</color>
<color name="md_theme_red_surfaceContainerHighest">#43302D</color> <color name="md_theme_red_surfaceContainerHighest">#43302D</color>
<color name="md_theme_red_primary_mediumContrast">#FFBAAF</color>
<color name="md_theme_red_onPrimary_mediumContrast">#370000</color> <color name="item_complete_color">#282B24</color>
<color name="md_theme_red_primaryContainer_mediumContrast">#FF5540</color>
<color name="md_theme_red_onPrimaryContainer_mediumContrast">#000000</color>
<color name="md_theme_red_secondary_mediumContrast">#FFBAAF</color>
<color name="md_theme_red_onSecondary_mediumContrast">#370000</color>
<color name="md_theme_red_secondaryContainer_mediumContrast">#E26E5D</color>
<color name="md_theme_red_onSecondaryContainer_mediumContrast">#000000</color>
<color name="md_theme_red_tertiary_mediumContrast">#F6C273</color>
<color name="md_theme_red_onTertiary_mediumContrast">#211400</color>
<color name="md_theme_red_tertiaryContainer_mediumContrast">#B6893F</color>
<color name="md_theme_red_onTertiaryContainer_mediumContrast">#000000</color>
<color name="md_theme_red_error_mediumContrast">#FFBAB1</color>
<color name="md_theme_red_onError_mediumContrast">#370001</color>
<color name="md_theme_red_errorContainer_mediumContrast">#FF5449</color>
<color name="md_theme_red_onErrorContainer_mediumContrast">#000000</color>
<color name="md_theme_red_background_mediumContrast">#1E0F0D</color>
<color name="md_theme_red_onBackground_mediumContrast">#FADCD7</color>
<color name="md_theme_red_surface_mediumContrast">#1E0F0D</color>
<color name="md_theme_red_onSurface_mediumContrast">#FFF9F8</color>
<color name="md_theme_red_surfaceVariant_mediumContrast">#5C403B</color>
<color name="md_theme_red_onSurfaceVariant_mediumContrast">#E9C2BB</color>
<color name="md_theme_red_outline_mediumContrast">#BF9A95</color>
<color name="md_theme_red_outlineVariant_mediumContrast">#9D7B76</color>
<color name="md_theme_red_scrim_mediumContrast">#000000</color>
<color name="md_theme_red_inverseSurface_mediumContrast">#FADCD7</color>
<color name="md_theme_red_inverseOnSurface_mediumContrast">#372623</color>
<color name="md_theme_red_inversePrimary_mediumContrast">#950100</color>
<color name="md_theme_red_primaryFixed_mediumContrast">#FFDAD4</color>
<color name="md_theme_red_onPrimaryFixed_mediumContrast">#2D0000</color>
<color name="md_theme_red_primaryFixedDim_mediumContrast">#FFB4A8</color>
<color name="md_theme_red_onPrimaryFixedVariant_mediumContrast">#740100</color>
<color name="md_theme_red_secondaryFixed_mediumContrast">#FFDAD4</color>
<color name="md_theme_red_onSecondaryFixed_mediumContrast">#2D0000</color>
<color name="md_theme_red_secondaryFixedDim_mediumContrast">#FFB4A8</color>
<color name="md_theme_red_onSecondaryFixedVariant_mediumContrast">#6B150D</color>
<color name="md_theme_red_tertiaryFixed_mediumContrast">#FFDDAF</color>
<color name="md_theme_red_onTertiaryFixed_mediumContrast">#1B0F00</color>
<color name="md_theme_red_tertiaryFixedDim_mediumContrast">#F1BE6F</color>
<color name="md_theme_red_onTertiaryFixedVariant_mediumContrast">#4B3100</color>
<color name="md_theme_red_surfaceDim_mediumContrast">#1E0F0D</color>
<color name="md_theme_red_surfaceBright_mediumContrast">#483531</color>
<color name="md_theme_red_surfaceContainerLowest_mediumContrast">#190A08</color>
<color name="md_theme_red_surfaceContainerLow_mediumContrast">#281715</color>
<color name="md_theme_red_surfaceContainer_mediumContrast">#2C1B19</color>
<color name="md_theme_red_surfaceContainerHigh_mediumContrast">#372623</color>
<color name="md_theme_red_surfaceContainerHighest_mediumContrast">#43302D</color>
<color name="md_theme_red_primary_highContrast">#FFF9F8</color>
<color name="md_theme_red_onPrimary_highContrast">#000000</color>
<color name="md_theme_red_primaryContainer_highContrast">#FFBAAF</color>
<color name="md_theme_red_onPrimaryContainer_highContrast">#000000</color>
<color name="md_theme_red_secondary_highContrast">#FFF9F8</color>
<color name="md_theme_red_onSecondary_highContrast">#000000</color>
<color name="md_theme_red_secondaryContainer_highContrast">#FFBAAF</color>
<color name="md_theme_red_onSecondaryContainer_highContrast">#000000</color>
<color name="md_theme_red_tertiary_highContrast">#FFFAF7</color>
<color name="md_theme_red_onTertiary_highContrast">#000000</color>
<color name="md_theme_red_tertiaryContainer_highContrast">#F6C273</color>
<color name="md_theme_red_onTertiaryContainer_highContrast">#000000</color>
<color name="md_theme_red_error_highContrast">#FFF9F9</color>
<color name="md_theme_red_onError_highContrast">#000000</color>
<color name="md_theme_red_errorContainer_highContrast">#FFBAB1</color>
<color name="md_theme_red_onErrorContainer_highContrast">#000000</color>
<color name="md_theme_red_background_highContrast">#1E0F0D</color>
<color name="md_theme_red_onBackground_highContrast">#FADCD7</color>
<color name="md_theme_red_surface_highContrast">#1E0F0D</color>
<color name="md_theme_red_onSurface_highContrast">#FFFFFF</color>
<color name="md_theme_red_surfaceVariant_highContrast">#5C403B</color>
<color name="md_theme_red_onSurfaceVariant_highContrast">#FFF9F8</color>
<color name="md_theme_red_outline_highContrast">#E9C2BB</color>
<color name="md_theme_red_outlineVariant_highContrast">#E9C2BB</color>
<color name="md_theme_red_scrim_highContrast">#000000</color>
<color name="md_theme_red_inverseSurface_highContrast">#FADCD7</color>
<color name="md_theme_red_inverseOnSurface_highContrast">#000000</color>
<color name="md_theme_red_inversePrimary_highContrast">#5C0000</color>
<color name="md_theme_red_primaryFixed_highContrast">#FFE0DB</color>
<color name="md_theme_red_onPrimaryFixed_highContrast">#000000</color>
<color name="md_theme_red_primaryFixedDim_highContrast">#FFBAAF</color>
<color name="md_theme_red_onPrimaryFixedVariant_highContrast">#370000</color>
<color name="md_theme_red_secondaryFixed_highContrast">#FFE0DB</color>
<color name="md_theme_red_onSecondaryFixed_highContrast">#000000</color>
<color name="md_theme_red_secondaryFixedDim_highContrast">#FFBAAF</color>
<color name="md_theme_red_onSecondaryFixedVariant_highContrast">#370000</color>
<color name="md_theme_red_tertiaryFixed_highContrast">#FFE3BD</color>
<color name="md_theme_red_onTertiaryFixed_highContrast">#000000</color>
<color name="md_theme_red_tertiaryFixedDim_highContrast">#F6C273</color>
<color name="md_theme_red_onTertiaryFixedVariant_highContrast">#211400</color>
<color name="md_theme_red_surfaceDim_highContrast">#1E0F0D</color>
<color name="md_theme_red_surfaceBright_highContrast">#483531</color>
<color name="md_theme_red_surfaceContainerLowest_highContrast">#190A08</color>
<color name="md_theme_red_surfaceContainerLow_highContrast">#281715</color>
<color name="md_theme_red_surfaceContainer_highContrast">#2C1B19</color>
<color name="md_theme_red_surfaceContainerHigh_highContrast">#372623</color>
<color name="md_theme_red_surfaceContainerHighest_highContrast">#43302D</color>
</resources> </resources>

View file

@ -192,98 +192,6 @@
<color name="md_theme_red_surfaceContainer">#FFE9E6</color> <color name="md_theme_red_surfaceContainer">#FFE9E6</color>
<color name="md_theme_red_surfaceContainerHigh">#FFE2DD</color> <color name="md_theme_red_surfaceContainerHigh">#FFE2DD</color>
<color name="md_theme_red_surfaceContainerHighest">#FADCD7</color> <color name="md_theme_red_surfaceContainerHighest">#FADCD7</color>
<color name="md_theme_red_primary_mediumContrast">#7E0100</color>
<color name="md_theme_red_onPrimary_mediumContrast">#FFFFFF</color> <color name="item_complete_color">#E8E9DE</color>
<color name="md_theme_red_primaryContainer_mediumContrast">#BB1A0E</color>
<color name="md_theme_red_onPrimaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_secondary_mediumContrast">#7D2318</color>
<color name="md_theme_red_onSecondary_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_secondaryContainer_mediumContrast">#BF5344</color>
<color name="md_theme_red_onSecondaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_tertiary_mediumContrast">#533700</color>
<color name="md_theme_red_onTertiary_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_tertiaryContainer_mediumContrast">#7E5811</color>
<color name="md_theme_red_onTertiaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_error_mediumContrast">#8C0009</color>
<color name="md_theme_red_onError_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_errorContainer_mediumContrast">#DA342E</color>
<color name="md_theme_red_onErrorContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_background_mediumContrast">#FFF8F6</color>
<color name="md_theme_red_onBackground_mediumContrast">#281715</color>
<color name="md_theme_red_surface_mediumContrast">#FFF8F6</color>
<color name="md_theme_red_onSurface_mediumContrast">#281715</color>
<color name="md_theme_red_surfaceVariant_mediumContrast">#FFDAD4</color>
<color name="md_theme_red_onSurfaceVariant_mediumContrast">#573C38</color>
<color name="md_theme_red_outline_mediumContrast">#765853</color>
<color name="md_theme_red_outlineVariant_mediumContrast">#94736E</color>
<color name="md_theme_red_scrim_mediumContrast">#000000</color>
<color name="md_theme_red_inverseSurface_mediumContrast">#3E2C29</color>
<color name="md_theme_red_inverseOnSurface_mediumContrast">#FFEDEA</color>
<color name="md_theme_red_inversePrimary_mediumContrast">#FFB4A8</color>
<color name="md_theme_red_primaryFixed_mediumContrast">#DB3323</color>
<color name="md_theme_red_onPrimaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_primaryFixedDim_mediumContrast">#B7160B</color>
<color name="md_theme_red_onPrimaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_secondaryFixed_mediumContrast">#BF5344</color>
<color name="md_theme_red_onSecondaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_secondaryFixedDim_mediumContrast">#9E3B2E</color>
<color name="md_theme_red_onSecondaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_tertiaryFixed_mediumContrast">#966D26</color>
<color name="md_theme_red_onTertiaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_tertiaryFixedDim_mediumContrast">#7B550D</color>
<color name="md_theme_red_onTertiaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_surfaceDim_mediumContrast">#F1D3CE</color>
<color name="md_theme_red_surfaceBright_mediumContrast">#FFF8F6</color>
<color name="md_theme_red_surfaceContainerLowest_mediumContrast">#FFFFFF</color>
<color name="md_theme_red_surfaceContainerLow_mediumContrast">#FFF0EE</color>
<color name="md_theme_red_surfaceContainer_mediumContrast">#FFE9E6</color>
<color name="md_theme_red_surfaceContainerHigh_mediumContrast">#FFE2DD</color>
<color name="md_theme_red_surfaceContainerHighest_mediumContrast">#FADCD7</color>
<color name="md_theme_red_primary_highContrast">#4E0000</color>
<color name="md_theme_red_onPrimary_highContrast">#FFFFFF</color>
<color name="md_theme_red_primaryContainer_highContrast">#8C0100</color>
<color name="md_theme_red_onPrimaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_red_secondary_highContrast">#4E0000</color>
<color name="md_theme_red_onSecondary_highContrast">#FFFFFF</color>
<color name="md_theme_red_secondaryContainer_highContrast">#7D2318</color>
<color name="md_theme_red_onSecondaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_red_tertiary_highContrast">#311F00</color>
<color name="md_theme_red_onTertiary_highContrast">#FFFFFF</color>
<color name="md_theme_red_tertiaryContainer_highContrast">#5C3D00</color>
<color name="md_theme_red_onTertiaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_red_error_highContrast">#4E0002</color>
<color name="md_theme_red_onError_highContrast">#FFFFFF</color>
<color name="md_theme_red_errorContainer_highContrast">#8C0009</color>
<color name="md_theme_red_onErrorContainer_highContrast">#FFFFFF</color>
<color name="md_theme_red_background_highContrast">#FFF8F6</color>
<color name="md_theme_red_onBackground_highContrast">#281715</color>
<color name="md_theme_red_surface_highContrast">#FFF8F6</color>
<color name="md_theme_red_onSurface_highContrast">#000000</color>
<color name="md_theme_red_surfaceVariant_highContrast">#FFDAD4</color>
<color name="md_theme_red_onSurfaceVariant_highContrast">#351E1A</color>
<color name="md_theme_red_outline_highContrast">#573C38</color>
<color name="md_theme_red_outlineVariant_highContrast">#573C38</color>
<color name="md_theme_red_scrim_highContrast">#000000</color>
<color name="md_theme_red_inverseSurface_highContrast">#3E2C29</color>
<color name="md_theme_red_inverseOnSurface_highContrast">#FFFFFF</color>
<color name="md_theme_red_inversePrimary_highContrast">#FFE7E3</color>
<color name="md_theme_red_primaryFixed_highContrast">#8C0100</color>
<color name="md_theme_red_onPrimaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_red_primaryFixedDim_highContrast">#620100</color>
<color name="md_theme_red_onPrimaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_red_secondaryFixed_highContrast">#7D2318</color>
<color name="md_theme_red_onSecondaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_red_secondaryFixedDim_highContrast">#5D0B05</color>
<color name="md_theme_red_onSecondaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_red_tertiaryFixed_highContrast">#5C3D00</color>
<color name="md_theme_red_onTertiaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_red_tertiaryFixedDim_highContrast">#3F2800</color>
<color name="md_theme_red_onTertiaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_red_surfaceDim_highContrast">#F1D3CE</color>
<color name="md_theme_red_surfaceBright_highContrast">#FFF8F6</color>
<color name="md_theme_red_surfaceContainerLowest_highContrast">#FFFFFF</color>
<color name="md_theme_red_surfaceContainerLow_highContrast">#FFF0EE</color>
<color name="md_theme_red_surfaceContainer_highContrast">#FFE9E6</color>
<color name="md_theme_red_surfaceContainerHigh_highContrast">#FFE2DD</color>
<color name="md_theme_red_surfaceContainerHighest_highContrast">#FADCD7</color>
</resources> </resources>