diff --git a/app/src/main/java/ru/sweetbread/unn/API.kt b/app/src/main/java/ru/sweetbread/unn/API.kt index 8e191a3..a8ec84e 100644 --- a/app/src/main/java/ru/sweetbread/unn/API.kt +++ b/app/src/main/java/ru/sweetbread/unn/API.kt @@ -99,6 +99,7 @@ class User( class Post( val id: Int, + val blogId: Int, val authorId: Int, val enableComments: Boolean, val numComments: Int, @@ -287,6 +288,7 @@ suspend fun getBlogposts(): ArrayList { out.add( Post( id = el.getString("ID").toInt(), + blogId = el.getString("BLOG_ID").toInt(), authorId = el.getString("AUTHOR_ID").toInt(), enableComments = el.getString("ENABLE_COMMENTS") == "Y", numComments = el.getString("NUM_COMMENTS").toInt(), @@ -339,4 +341,8 @@ suspend fun getUser(id: Int): User { ) } ) +} + +fun getComments(id: Int) { + } \ No newline at end of file diff --git a/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt b/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt index 82e7d3e..f58c8db 100644 --- a/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt +++ b/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt @@ -3,6 +3,7 @@ package ru.sweetbread.unn.ui.composes import android.text.util.Linkify import android.util.Log import androidx.compose.foundation.background +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -23,6 +24,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.NonRestartableComposable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -83,6 +85,7 @@ val defUser = User( @Composable fun Blogposts(viewModel: PostViewModel = viewModel()) { val posts by viewModel.posts.collectAsState() + var extended by remember { mutableIntStateOf(0) } LaunchedEffect(Unit) { viewModel.loadPosts() @@ -96,8 +99,12 @@ fun Blogposts(viewModel: PostViewModel = viewModel()) { Modifier .padding(8.dp) .clip(RoundedCornerShape(16.dp)) - .background(MaterialTheme.colorScheme.secondaryContainer), - post = it + .background(MaterialTheme.colorScheme.secondaryContainer) + .clickable { + extended = if (extended == it.id) 0 else it.id + }, + post = it, + extended == it.id ) } } @@ -161,7 +168,7 @@ fun UserItem(modifier: Modifier = Modifier, user: User, info: String? = null) { @Composable @NonRestartableComposable -fun PostItem(modifier: Modifier = Modifier, post: Post) { +fun PostItem(modifier: Modifier = Modifier, post: Post, extended: Boolean = false) { var user: User? by remember { mutableStateOf(null) } val processor = remember { BBProcessorFactory.getInstance().create() } var html: String by remember { mutableStateOf("") } @@ -193,7 +200,7 @@ fun PostItem(modifier: Modifier = Modifier, post: Post) { } }, update = { - it.maxLines = 25 + it.maxLines = if (extended) Int.MAX_VALUE else 5 it.text = HtmlCompat.fromHtml(html, 0) } ) @@ -242,6 +249,7 @@ fun UserItemPreview() { fun PostItemPreview() { val post = Post( id = 154923, + blogId = 121212, authorId = 165945, enableComments = true, numComments = 0,