diff --git a/app/src/main/java/dev/lonami/talaria/MainActivity.kt b/app/src/main/java/dev/lonami/talaria/MainActivity.kt index 4ba4221..d376475 100644 --- a/app/src/main/java/dev/lonami/talaria/MainActivity.kt +++ b/app/src/main/java/dev/lonami/talaria/MainActivity.kt @@ -21,8 +21,10 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import dev.lonami.talaria.data.Datasource +import dev.lonami.talaria.data.DialogSource +import dev.lonami.talaria.data.MessageSource import dev.lonami.talaria.model.Dialog +import dev.lonami.talaria.model.Message import dev.lonami.talaria.ui.theme.TalariaTheme class MainActivity : ComponentActivity() { @@ -134,6 +136,30 @@ fun DialogList(dialogs: List) { } } +@Composable +fun MessageCard(message: Message) { + Card( + elevation = 4.dp, + modifier = Modifier + .fillMaxWidth() + .padding(8.dp) + ) { + Column(modifier = Modifier + .fillMaxWidth() + .padding(8.dp)) { + Text(message.sender, fontWeight = FontWeight.Bold) + Text(message.text) + } + } +} + +@Composable +fun MessageList(messages: List) { + LazyColumn { + items(messages.size) { MessageCard(messages[it]) } + } +} + @Composable fun Login() { var stage by remember { mutableStateOf(LoginStage.ASK_PHONE) } @@ -180,7 +206,17 @@ fun LoginPreview() { fun DialogPreview() { TalariaTheme { DialogList( - Datasource.loadAffirmations() + DialogSource.loadDialogs() + ) + } +} + +@Preview +@Composable +fun ChatPreview() { + TalariaTheme { + MessageList( + MessageSource.loadMessages() ) } } diff --git a/app/src/main/java/dev/lonami/talaria/data/DialogSource.kt b/app/src/main/java/dev/lonami/talaria/data/DialogSource.kt index 171f194..ed513c2 100644 --- a/app/src/main/java/dev/lonami/talaria/data/DialogSource.kt +++ b/app/src/main/java/dev/lonami/talaria/data/DialogSource.kt @@ -2,8 +2,8 @@ package dev.lonami.talaria.data import dev.lonami.talaria.model.Dialog -object Datasource { - fun loadAffirmations(): List { +object DialogSource { + fun loadDialogs(): List { return listOf( Dialog("Saved Messages", "Secret launch-code: banana", pinned = true), Dialog("First Sample Dialog", "Photo", pinned = false), diff --git a/app/src/main/java/dev/lonami/talaria/data/MessageSource.kt b/app/src/main/java/dev/lonami/talaria/data/MessageSource.kt new file mode 100644 index 0000000..2e47d48 --- /dev/null +++ b/app/src/main/java/dev/lonami/talaria/data/MessageSource.kt @@ -0,0 +1,11 @@ +package dev.lonami.talaria.data + +import dev.lonami.talaria.model.Message + +object MessageSource { + fun loadMessages(): List { + return generateSequence { + Message("Alice", "Testing") + }.take(50).toList() + } +} diff --git a/app/src/main/java/dev/lonami/talaria/model/Message.kt b/app/src/main/java/dev/lonami/talaria/model/Message.kt new file mode 100644 index 0000000..7f09bcb --- /dev/null +++ b/app/src/main/java/dev/lonami/talaria/model/Message.kt @@ -0,0 +1,3 @@ +package dev.lonami.talaria.model + +data class Message(val sender: String, val text: String)