Switch over persistence to Room

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-08-27 20:56:03 +05:30
parent 644a8a6110
commit 717eefad97
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80

View file

@ -10,7 +10,9 @@ import androidx.compose.material.MaterialTheme
import androidx.compose.material.Scaffold import androidx.compose.material.Scaffold
import androidx.compose.material.TopAppBar import androidx.compose.material.TopAppBar
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.setContent import androidx.compose.ui.platform.setContent
import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.semantics
@ -19,8 +21,10 @@ import androidx.compose.ui.unit.dp
import androidx.ui.tooling.preview.Preview import androidx.ui.tooling.preview.Preview
import dev.msfjarvis.todo.compose.utils.IconResource import dev.msfjarvis.todo.compose.utils.IconResource
import dev.msfjarvis.todo.data.model.TodoItem import dev.msfjarvis.todo.data.model.TodoItem
import dev.msfjarvis.todo.di.Graph
import dev.msfjarvis.todo.ui.TodoRowItem import dev.msfjarvis.todo.ui.TodoRowItem
import dev.msfjarvis.todo.ui.TodoTheme import dev.msfjarvis.todo.ui.TodoTheme
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -35,14 +39,18 @@ class MainActivity : AppCompatActivity() {
@Composable @Composable
fun TodoApp() { fun TodoApp() {
val items = mutableStateListOf(TodoItem("Default item")) val coroutineScope = rememberCoroutineScope()
val itemsDao = Graph.database.todoItemsDao()
val items by itemsDao.getAllItems().collectAsState(initial = emptyList())
Scaffold( Scaffold(
topBar = { TopAppBar({ Text(text = "I can Compose?") }) }, topBar = { TopAppBar({ Text(text = "I can Compose?") }) },
floatingActionButton = { floatingActionButton = {
FloatingActionButton( FloatingActionButton(
onClick = { onClick = {
items.add(TodoItem("Item ${items.size + 1}")) coroutineScope.launch {
itemsDao.insert(TodoItem("Item ${items.size + 1}"))
}
}, },
elevation = 8.dp, elevation = 8.dp,
modifier = Modifier.semantics { testTag = "fab" } modifier = Modifier.semantics { testTag = "fab" }