|
|
@ -1,5 +1,6 @@ |
|
|
|
package at.xaxa.demonstrator2.ui |
|
|
|
package at.xaxa.demonstrator2.ui |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.compose.foundation.layout.Arrangement |
|
|
|
import androidx.compose.foundation.layout.Box |
|
|
|
import androidx.compose.foundation.layout.Box |
|
|
|
import androidx.compose.foundation.layout.Column |
|
|
|
import androidx.compose.foundation.layout.Column |
|
|
|
import androidx.compose.foundation.layout.Row |
|
|
|
import androidx.compose.foundation.layout.Row |
|
|
@ -14,14 +15,20 @@ import androidx.compose.material.icons.Icons |
|
|
|
import androidx.compose.material.icons.automirrored.filled.List |
|
|
|
import androidx.compose.material.icons.automirrored.filled.List |
|
|
|
import androidx.compose.material.icons.filled.Add |
|
|
|
import androidx.compose.material.icons.filled.Add |
|
|
|
import androidx.compose.material.icons.outlined.Edit |
|
|
|
import androidx.compose.material.icons.outlined.Edit |
|
|
|
|
|
|
|
import androidx.compose.material3.FilledTonalButton |
|
|
|
import androidx.compose.material3.Icon |
|
|
|
import androidx.compose.material3.Icon |
|
|
|
import androidx.compose.material3.IconButton |
|
|
|
import androidx.compose.material3.IconButton |
|
|
|
import androidx.compose.material3.NavigationBarItem |
|
|
|
import androidx.compose.material3.NavigationBarItem |
|
|
|
|
|
|
|
import androidx.compose.material3.OutlinedButton |
|
|
|
import androidx.compose.material3.OutlinedCard |
|
|
|
import androidx.compose.material3.OutlinedCard |
|
|
|
|
|
|
|
import androidx.compose.material3.OutlinedTextField |
|
|
|
import androidx.compose.material3.Scaffold |
|
|
|
import androidx.compose.material3.Scaffold |
|
|
|
import androidx.compose.material3.Text |
|
|
|
import androidx.compose.material3.Text |
|
|
|
import androidx.compose.runtime.Composable |
|
|
|
import androidx.compose.runtime.Composable |
|
|
|
import androidx.compose.runtime.getValue |
|
|
|
import androidx.compose.runtime.getValue |
|
|
|
|
|
|
|
import androidx.compose.runtime.mutableStateOf |
|
|
|
|
|
|
|
import androidx.compose.runtime.remember |
|
|
|
|
|
|
|
import androidx.compose.runtime.setValue |
|
|
|
import androidx.compose.ui.Alignment |
|
|
|
import androidx.compose.ui.Alignment |
|
|
|
import androidx.compose.ui.Modifier |
|
|
|
import androidx.compose.ui.Modifier |
|
|
|
import androidx.compose.ui.tooling.preview.Preview |
|
|
|
import androidx.compose.ui.tooling.preview.Preview |
|
|
@ -34,6 +41,7 @@ import androidx.navigation.compose.composable |
|
|
|
import androidx.navigation.compose.currentBackStackEntryAsState |
|
|
|
import androidx.navigation.compose.currentBackStackEntryAsState |
|
|
|
import androidx.navigation.compose.rememberNavController |
|
|
|
import androidx.navigation.compose.rememberNavController |
|
|
|
import androidx.navigation.navArgument |
|
|
|
import androidx.navigation.navArgument |
|
|
|
|
|
|
|
import androidx.room.util.TableInfo |
|
|
|
import at.xaxa.demonstrator2.data.Task |
|
|
|
import at.xaxa.demonstrator2.data.Task |
|
|
|
import at.xaxa.demonstrator2.ui.edit.TaskEditScreen |
|
|
|
import at.xaxa.demonstrator2.ui.edit.TaskEditScreen |
|
|
|
import at.xaxa.demonstrator2.ui.theme.Typography |
|
|
|
import at.xaxa.demonstrator2.ui.theme.Typography |
|
|
@ -126,7 +134,7 @@ fun ListScreen( |
|
|
|
|
|
|
|
|
|
|
|
@Composable |
|
|
|
@Composable |
|
|
|
fun TaskDetailsScreen(modifier: Modifier = Modifier, demoDetailsViewModel: DemoDetailsViewModel = viewModel(factory = AppViewModelProvider.Factory)) { |
|
|
|
fun TaskDetailsScreen(modifier: Modifier = Modifier, demoDetailsViewModel: DemoDetailsViewModel = viewModel(factory = AppViewModelProvider.Factory)) { |
|
|
|
val detailUiState by demoDetailsViewModel.detailUiState.collectAsStateWithLifecycle() |
|
|
|
val detailUiState by demoDetailsViewModel.taskUiState.collectAsStateWithLifecycle() |
|
|
|
|
|
|
|
|
|
|
|
TaskDetails(detailUiState.task, modifier) |
|
|
|
TaskDetails(detailUiState.task, modifier) |
|
|
|
} |
|
|
|
} |
|
|
@ -148,9 +156,50 @@ fun TaskDetails(task: Task, modifier: Modifier = Modifier) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Composable |
|
|
|
@Composable |
|
|
|
fun AddScreen() { |
|
|
|
fun AddScreen( |
|
|
|
Box(Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { |
|
|
|
//task: Task, |
|
|
|
|
|
|
|
modifier: Modifier = Modifier, |
|
|
|
|
|
|
|
demoViewModel: DemoViewModel = viewModel(factory = AppViewModelProvider.Factory), |
|
|
|
|
|
|
|
) { |
|
|
|
|
|
|
|
var taskText by remember { mutableStateOf("") } |
|
|
|
|
|
|
|
var descText by remember { mutableStateOf("") } |
|
|
|
|
|
|
|
val state by demoViewModel.taskUiState.collectAsStateWithLifecycle() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Column(Modifier.fillMaxSize().padding(8.dp)) { |
|
|
|
Text("Add Screen") |
|
|
|
Text("Add Screen") |
|
|
|
|
|
|
|
OutlinedTextField( |
|
|
|
|
|
|
|
value = taskText, |
|
|
|
|
|
|
|
modifier = Modifier.fillMaxWidth(), |
|
|
|
|
|
|
|
label = { Text("Task") }, |
|
|
|
|
|
|
|
onValueChange = { |
|
|
|
|
|
|
|
taskText = it |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
OutlinedTextField( |
|
|
|
|
|
|
|
value = descText, |
|
|
|
|
|
|
|
modifier = Modifier.fillMaxWidth(), |
|
|
|
|
|
|
|
label = { Text("Description") }, |
|
|
|
|
|
|
|
onValueChange = { |
|
|
|
|
|
|
|
descText = it |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(4.dp)) { |
|
|
|
|
|
|
|
OutlinedButton( |
|
|
|
|
|
|
|
modifier = Modifier.fillMaxWidth(0.5f), |
|
|
|
|
|
|
|
onClick = { |
|
|
|
|
|
|
|
taskText = "" |
|
|
|
|
|
|
|
descText = "" |
|
|
|
|
|
|
|
}) { |
|
|
|
|
|
|
|
Text("Reset") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
FilledTonalButton( |
|
|
|
|
|
|
|
modifier = Modifier.fillMaxWidth(), |
|
|
|
|
|
|
|
onClick = { |
|
|
|
|
|
|
|
demoViewModel.onAddButtonClicked(Task{0, "", ""}) |
|
|
|
|
|
|
|
}) { |
|
|
|
|
|
|
|
Text("Save") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|