@@ -6,35 +6,33 @@ import androidx.compose.foundation.layout.Column
66import androidx.compose.foundation.layout.PaddingValues
77import androidx.compose.foundation.layout.Row
88import androidx.compose.foundation.layout.Spacer
9- import androidx.compose.foundation.layout.fillMaxHeight
109import androidx.compose.foundation.layout.padding
1110import androidx.compose.foundation.layout.preferredSize
1211import androidx.compose.foundation.layout.width
1312import androidx.compose.foundation.lazy.LazyColumn
1413import androidx.compose.foundation.lazy.items
1514import androidx.compose.material.Checkbox
15+ import androidx.compose.material.CircularProgressIndicator
1616import androidx.compose.material.Divider
1717import androidx.compose.material.MaterialTheme
1818import androidx.compose.material.Scaffold
1919import androidx.compose.material.Text
2020import androidx.compose.material.TopAppBar
2121import androidx.compose.runtime.Composable
22- import androidx.compose.runtime.getValue
2322import androidx.compose.ui.Modifier
2423import androidx.compose.ui.res.painterResource
2524import androidx.compose.ui.tooling.preview.Preview
2625import androidx.compose.ui.unit.dp
27- import androidx.lifecycle.viewmodel.compose.viewModel
28- import com.hoc081098.datastoresample.Locator
2926import com.hoc081098.datastoresample.R
27+ import com.hoc081098.datastoresample.domain.FilteredSortedTasks
3028import com.hoc081098.datastoresample.domain.Task
3129import com.hoc081098.datastoresample.ui.theme.DataStoreSampleTheme
3230
3331@Composable
34- fun MainScreen () {
35- val viewModel = viewModel< MainViewModel >(factory = Locator .mainViewModelFactory)
36- val state by viewModel.state
37-
32+ fun MainScreen (
33+ state : FilteredSortedTasks ? ,
34+ changeShowCompleted : ( Boolean ) -> Unit ,
35+ ) {
3836 Scaffold (
3937 topBar = {
4038 TopAppBar (
@@ -44,22 +42,26 @@ fun MainScreen() {
4442 )
4543 }
4644 ) {
47- Column {
48- // MainTasksList(state.tasks)
45+ if (state == null ) {
46+ CircularProgressIndicator ()
47+ } else {
48+ Column {
49+ MainTasksList (state.tasks)
4950
50- Row (modifier = Modifier .padding(all = 32 .dp).wraps ) {
51- Image (
52- painter = painterResource(id = R .drawable.ic_baseline_filter_list_24),
53- contentDescription = null ,
54- modifier = Modifier .preferredSize(24 .dp),
55- )
51+ Row (modifier = Modifier .padding(all = 32 .dp)) {
52+ Image (
53+ painter = painterResource(id = R .drawable.ic_baseline_filter_list_24),
54+ contentDescription = null ,
55+ modifier = Modifier .preferredSize(24 .dp),
56+ )
5657
57- Spacer (modifier = Modifier .width(16 .dp))
58+ Spacer (modifier = Modifier .width(16 .dp))
5859
59- Checkbox (
60- checked = state.showCompleted,
61- onCheckedChange = { viewModel.changeShowCompleted(it) }
62- )
60+ Checkbox (
61+ checked = state.showCompleted,
62+ onCheckedChange = { changeShowCompleted(it) }
63+ )
64+ }
6365 }
6466 }
6567 }
@@ -98,82 +100,10 @@ fun TaskRow(task: Task) {
98100@Preview
99101@Composable
100102fun MainScreenPreview () {
101- /* val simpleDateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault())
102- fun parseDate(date: String? = null): Date = date?.let(simpleDateFormat::parse) ?: Date()
103- val tasks = listOf(
104- Task(
105- name = "Complete graduate project",
106- deadline = parseDate("25-12-2020"),
107- priority = TaskPriority.HIGH,
108- ),
109- Task(
110- name = "Learning Jetpack Compose",
111- deadline = parseDate("01-01-2021"),
112- priority = TaskPriority.MEDIUM,
113- ),
114- Task(
115- name = "Learning NestJs",
116- deadline = parseDate("02-01-2021"),
117- priority = TaskPriority.LOW,
118- ),
119- Task(
120- name = "Learn about Polymer",
121- deadline = parseDate("10-10-2020"),
122- priority = TaskPriority.LOW,
123- ),
124- Task(
125- name = "Learning Functional programming with Λrrow",
126- deadline = parseDate("01-01-2022"),
127- priority = TaskPriority.MEDIUM,
128- ),
129- Task(
130- name = "Learning Functional programming with Bow Swift",
131- deadline = parseDate("01-01-2022"),
132- priority = TaskPriority.MEDIUM,
133- ),
134- Task(
135- name = "Understand how to migrate to DataStore",
136- deadline = parseDate(),
137- priority = TaskPriority.HIGH,
138- ),
139- Task(
140- name = "Complete graduate project",
141- deadline = parseDate("25-12-2020"),
142- priority = TaskPriority.HIGH,
143- ),
144- Task(
145- name = "Learning Jetpack Compose",
146- deadline = parseDate("01-01-2021"),
147- priority = TaskPriority.MEDIUM,
148- ),
149- Task(
150- name = "Learning NestJs",
151- deadline = parseDate("02-01-2021"),
152- priority = TaskPriority.LOW,
153- ),
154- Task(
155- name = "Learn about Polymer",
156- deadline = parseDate("10-10-2020"),
157- priority = TaskPriority.LOW,
158- ),
159- Task(
160- name = "Learning Functional programming with Λrrow",
161- deadline = parseDate("01-01-2022"),
162- priority = TaskPriority.MEDIUM,
163- ),
164- Task(
165- name = "Learning Functional programming with Bow Swift",
166- deadline = parseDate("01-01-2022"),
167- priority = TaskPriority.MEDIUM,
168- ),
169- Task(
170- name = "Understand how to migrate to DataStore",
171- deadline = parseDate(),
172- priority = TaskPriority.HIGH,
173- )
174- )*/
175-
176103 DataStoreSampleTheme {
177- MainScreen ()
104+ MainScreen (
105+ null ,
106+ {},
107+ )
178108 }
179109}
0 commit comments