فهرست منبع

chore: Task sort by completed

beautusg 7 سال پیش
والد
کامیت
fb4d84ddc5

+ 4 - 0
app/src/main/java/com/sduduzog/slimlauncher/data/MainViewModel.kt

@@ -66,4 +66,8 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
     fun remove(note: Note) {
         _baseRepository.remove(note)
     }
+
+    fun remove(vararg args: Task) {
+        _baseRepository.remove(*args)
+    }
 }

+ 12 - 0
app/src/main/java/com/sduduzog/slimlauncher/data/Repository.kt

@@ -58,6 +58,10 @@ class Repository(application: Application) {
         RemoveNoteAsyncTask(baseDao).execute(note)
     }
 
+    fun remove(vararg args: Task) {
+        RemoveTaskAsyncTask(baseDao).execute(*args)
+    }
+
     private class AddAppAsyncTask(private val mAsyncTaskDao: BaseDao) : AsyncTask<HomeApp, Void, Void>() {
 
         override fun doInBackground(vararg params: HomeApp): Void? {
@@ -121,4 +125,12 @@ class Repository(application: Application) {
             return null
         }
     }
+
+    private class RemoveTaskAsyncTask(private val mAsyncTaskDao: BaseDao) : AsyncTask<Task, Void, Void>() {
+
+        override fun doInBackground(vararg params: Task): Void? {
+            mAsyncTaskDao.remove(*params)
+            return null
+        }
+    }
 }

+ 12 - 0
app/src/main/java/com/sduduzog/slimlauncher/ui/main/TasksFragment.kt

@@ -44,5 +44,17 @@ class TasksFragment : BaseFragment() {
             v.text = ""
             true
         }
+        tasks_fragment_clear.setOnClickListener {
+            val tasks = viewModel.tasks.value.orEmpty().filter { it.isCompleted }
+            viewModel.remove(*tasks.toTypedArray())
+        }
+
+        tasks_fragment_sort.setOnClickListener {
+            val tasks = viewModel.tasks.value.orEmpty().sortedBy { it.sortingIndex }
+            var count = 0
+            tasks.filter { it.isCompleted }.forEach { it.sortingIndex = count++ }
+            tasks.filter { !it.isCompleted }.forEach { it.sortingIndex = count++ }
+            viewModel.update(*tasks.toTypedArray())
+        }
     }
 }

+ 4 - 4
app/src/main/res/layout/tasks_fragment.xml

@@ -37,8 +37,8 @@
         android:id="@+id/tasks_fragment_sort"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_16sdp"
-        android:layout_marginLeft="@dimen/_16sdp"
+        android:layout_marginStart="@dimen/_8sdp"
+        android:layout_marginLeft="@dimen/_8sdp"
         android:layout_marginBottom="@dimen/_8sdp"
         android:padding="@dimen/_12sdp"
         android:text="@string/tasks_fragment_sort"
@@ -50,8 +50,8 @@
         android:id="@+id/tasks_fragment_clear"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/_16sdp"
-        android:layout_marginRight="@dimen/_16sdp"
+        android:layout_marginEnd="@dimen/_8sdp"
+        android:layout_marginRight="@dimen/_8sdp"
         android:layout_marginBottom="@dimen/_8sdp"
         android:padding="@dimen/_12sdp"
         android:text="@string/tasks_fragment_clear_completed_tasks"

+ 1 - 1
app/src/main/res/values/colors.xml

@@ -10,7 +10,7 @@
 
     <color name="colorPink">#fce4ec</color>
 
-    <color name="colorTeal">#B2DFDB</color>
+    <color name="colorTeal">#E0F2F1</color>
 
     <color name="lightAccentColor">#080808</color>
     <color name="darkAccentColor">#e0e0e0</color>