Skip to content

Commit e5b61e5

Browse files
clean up the code
1 parent 46989e1 commit e5b61e5

File tree

4 files changed

+60
-62
lines changed

4 files changed

+60
-62
lines changed

app/src/main/java/ir/codroid/taskino/data/ToDoDao.kt

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,39 @@ interface ToDoDao {
3030
@Query("DELETE FROM todo_task_table")
3131
suspend fun deleteAllTasks()
3232

33-
@Query("SELECT * FROM todo_task_table WHERE title LIKE :searchQuery OR description LIKE :searchQuery")
33+
@Query(
34+
"""
35+
SELECT * FROM todo_task_table
36+
WHERE
37+
title LIKE :searchQuery OR
38+
description LIKE :searchQuery
39+
40+
"""
41+
)
3442
fun searchTasks(searchQuery: String) :Flow<List<ToDoTask>>
3543

36-
@Query("SELECT * FROM todo_task_table ORDER BY CASE WHEN priority LIKE 'L%' THEN 1 WHEN priority LIKE 'M%' THEN 2 WHEN priority LIKE 'H%' THEN 3 END ")
44+
@Query(
45+
"""
46+
SELECT * FROM todo_task_table ORDER BY
47+
CASE
48+
WHEN priority LIKE 'L%' THEN 1
49+
WHEN priority LIKE 'M%' THEN 2
50+
WHEN priority LIKE 'H%' THEN 3
51+
END
52+
"""
53+
)
3754
fun sortByLowPriority(): Flow<List<ToDoTask>>
3855

39-
@Query("SELECT * FROM todo_task_table ORDER BY CASE WHEN priority LIKE 'H%' THEN 1 WHEN priority LIKE 'M%' THEN 2 WHEN priority LIKE 'L%' THEN 3 END")
56+
@Query(
57+
"""
58+
SELECT * FROM todo_task_table ORDER BY
59+
CASE
60+
WHEN priority LIKE 'H%' THEN 1
61+
WHEN priority LIKE 'M%' THEN 2
62+
WHEN priority LIKE 'L%' THEN 3
63+
END
64+
"""
65+
)
4066
fun sortByHighPriority(): Flow<List<ToDoTask>>
4167

4268
}

app/src/main/java/ir/codroid/taskino/ui/component/PriorityDropDownMenu.kt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Row
88
import androidx.compose.foundation.layout.fillMaxWidth
99
import androidx.compose.foundation.layout.height
1010
import androidx.compose.foundation.layout.size
11+
import androidx.compose.foundation.layout.width
1112
import androidx.compose.material.icons.Icons
1213
import androidx.compose.material.icons.filled.ArrowDropDown
1314
import androidx.compose.material3.DropdownMenu
@@ -26,8 +27,11 @@ import androidx.compose.ui.Alignment
2627
import androidx.compose.ui.Modifier
2728
import androidx.compose.ui.draw.alpha
2829
import androidx.compose.ui.draw.rotate
30+
import androidx.compose.ui.layout.onGloballyPositioned
31+
import androidx.compose.ui.platform.LocalDensity
2932
import androidx.compose.ui.res.stringResource
3033
import androidx.compose.ui.tooling.preview.Preview
34+
import androidx.compose.ui.unit.IntSize
3135
import androidx.compose.ui.unit.dp
3236
import ir.codroid.taskino.R
3337
import ir.codroid.taskino.data.model.Priority
@@ -45,10 +49,14 @@ fun PriorityDropDownMenu(
4549
mutableStateOf(false)
4650
}
4751
val angle: Float by animateFloatAsState(targetValue = if (expanded) 180f else 0f)
52+
var parentSize by remember { mutableStateOf(IntSize.Zero) }
4853

4954
Row(
5055
modifier = Modifier
5156
.fillMaxWidth()
57+
.onGloballyPositioned {
58+
parentSize = it.size
59+
}
5260
.height(PRIORITY_DROP_DOWN_MENU_HEIGHT)
5361
.clickable { expanded = !expanded }
5462
.border(
@@ -88,24 +96,16 @@ fun PriorityDropDownMenu(
8896
DropdownMenu(
8997
expanded = expanded,
9098
onDismissRequest = { expanded = false },
91-
modifier = Modifier.fillMaxWidth(fraction = 0.94f)
99+
modifier = Modifier.width(with(LocalDensity.current) { parentSize.width.toDp() })
92100
) {
93-
DropdownMenuItem(
94-
text = { PriorityItem(priority = Priority.LOW) },
95-
onClick = {
96-
onPriorityClicked(Priority.LOW)
97-
expanded = false
98-
})
99-
DropdownMenuItem(
100-
text = { PriorityItem(priority = Priority.MEDIUM) },
101-
onClick = {
102-
onPriorityClicked(Priority.MEDIUM)
103-
expanded = false})
104-
DropdownMenuItem(
105-
text = { PriorityItem(priority = Priority.HIGH) },
106-
onClick = {
107-
onPriorityClicked(Priority.HIGH)
108-
expanded = false})
101+
Priority.values().slice(0..2).forEach { priority ->
102+
DropdownMenuItem(
103+
text = { PriorityItem(priority = priority) },
104+
onClick = {
105+
onPriorityClicked(priority)
106+
expanded = false
107+
})
108+
}
109109
}
110110
}
111111

app/src/main/java/ir/codroid/taskino/ui/screen/list/ListScreenAppBar.kt

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -150,27 +150,15 @@ fun SortAction(onSortClicked: (Priority) -> Unit) {
150150
)
151151
}
152152
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
153-
DropdownMenuItem(
154-
text = { PriorityItem(Priority.LOW) },
155-
onClick = {
156-
onSortClicked(Priority.LOW)
157-
expanded = false
158-
})
159-
160-
DropdownMenuItem(
161-
text = { PriorityItem(Priority.HIGH) },
162-
onClick = {
163-
onSortClicked(Priority.HIGH)
164-
expanded = false
165-
})
166-
167-
DropdownMenuItem(
168-
text = { PriorityItem(Priority.NONE) },
169-
onClick = {
170-
onSortClicked(Priority.NONE)
171-
expanded = false
172-
})
173-
153+
Priority.values().slice(setOf(0,2,3)).forEach { priority ->
154+
DropdownMenuItem(
155+
text = { PriorityItem(priority) },
156+
onClick = {
157+
onSortClicked(priority)
158+
expanded = false
159+
}
160+
)
161+
}
174162
}
175163
}
176164

app/src/main/java/ir/codroid/taskino/util/Action.kt

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,16 @@ package ir.codroid.taskino.util
22

33
import androidx.annotation.StringRes
44
import ir.codroid.taskino.R
5+
import ir.codroid.taskino.data.model.Priority
56

6-
enum class Action(@StringRes val title : Int) {
7+
enum class Action(@StringRes val title: Int) {
78
ADD(R.string.add),
89
UPDATE(R.string.update),
910
DELETE(R.string.delete),
1011
DELETE_ALL(R.string.delete_all),
1112
UNDO(R.string.undo_delete),
1213
NO_ACTION(0),
1314
}
14-
fun String?.toAction() = when{
15-
this == "ADD" -> {
16-
Action.ADD
17-
}
18-
this == "UPDATE" -> {
19-
Action.UPDATE
20-
}
21-
this == "DELETE" -> {
22-
Action.DELETE
23-
}
24-
this == "DELETE_ALL" -> {
25-
Action.DELETE_ALL
26-
}
27-
this == "UNDO" -> {
28-
Action.UNDO
29-
}
30-
else -> {
31-
Action.NO_ACTION
32-
}
33-
}
15+
16+
fun String?.toAction(): Action =
17+
if (this.isNullOrEmpty()) Action.NO_ACTION else Action.valueOf(this)

0 commit comments

Comments
 (0)