diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt index 8d555323..54d5e930 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt @@ -18,7 +18,6 @@ import androidx.core.view.WindowCompat import com.deliveryhero.whetstone.Whetstone import com.deliveryhero.whetstone.activity.ContributesActivityInjector import dev.msfjarvis.claw.android.ui.LobstersApp -import dev.msfjarvis.claw.common.comments.HTMLConverter import dev.msfjarvis.claw.common.urllauncher.UrlLauncher import javax.inject.Inject @@ -26,7 +25,6 @@ import javax.inject.Inject class MainActivity : ComponentActivity() { @Inject lateinit var urlLauncher: UrlLauncher - @Inject lateinit var htmlConverter: HTMLConverter private var webUri: String? = null @OptIn(ExperimentalMaterial3WindowSizeClassApi::class) @@ -40,7 +38,6 @@ class MainActivity : ComponentActivity() { LobstersApp( urlLauncher = urlLauncher, - htmlConverter = htmlConverter, windowSizeClass = windowSizeClass, setWebUri = { url -> webUri = url }, ) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt index 2db43202..602c3c31 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt @@ -64,7 +64,6 @@ import dev.msfjarvis.claw.android.ui.navigation.Destinations import dev.msfjarvis.claw.android.viewmodel.ClawViewModel import dev.msfjarvis.claw.api.LobstersApi import dev.msfjarvis.claw.common.comments.CommentsPage -import dev.msfjarvis.claw.common.comments.HTMLConverter import dev.msfjarvis.claw.common.theme.LobstersTheme import dev.msfjarvis.claw.common.ui.decorations.ClawAppBar import dev.msfjarvis.claw.common.urllauncher.UrlLauncher @@ -77,7 +76,6 @@ import kotlinx.coroutines.launch @Composable fun LobstersApp( urlLauncher: UrlLauncher, - htmlConverter: HTMLConverter, windowSizeClass: WindowSizeClass, setWebUri: (String?) -> Unit, modifier: Modifier = Modifier, @@ -238,7 +236,6 @@ fun LobstersApp( CommentsPage( postId = postId, postActions = postActions, - htmlConverter = htmlConverter, getSeenComments = viewModel::getSeenComments, markSeenComments = viewModel::markSeenComments, ) diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt index 57a48b14..c1f9d18f 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt @@ -41,8 +41,8 @@ import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.common.posts.PostTitle import dev.msfjarvis.claw.common.posts.Submitter import dev.msfjarvis.claw.common.posts.TagRow +import dev.msfjarvis.claw.common.ui.HTMLText import dev.msfjarvis.claw.common.ui.NetworkImage -import dev.msfjarvis.claw.common.ui.ThemedRichText import dev.msfjarvis.claw.model.LinkMetadata import dev.msfjarvis.claw.model.LobstersPostDetails import java.time.Instant @@ -53,7 +53,6 @@ import kotlinx.collections.immutable.toImmutableList internal fun CommentsHeader( postDetails: LobstersPostDetails, postActions: PostActions, - htmlConverter: HTMLConverter, modifier: Modifier = Modifier, ) { val uriHandler = LocalUriHandler.current @@ -84,7 +83,7 @@ internal fun CommentsHeader( } if (postDetails.description.isNotBlank()) { - ThemedRichText(htmlConverter.convertHTMLToMarkdown(postDetails.description)) + HTMLText(postDetails.description) Spacer(Modifier.height(4.dp)) } Submitter( @@ -134,7 +133,6 @@ private val CommentEntryPadding = 16f.dp @Composable internal fun CommentEntry( commentNode: CommentNode, - htmlConverter: HTMLConverter, toggleExpanded: (CommentNode) -> Unit, modifier: Modifier = Modifier, ) { @@ -169,10 +167,7 @@ internal fun CommentEntry( Modifier.clickable { uriHandler.openUri("https://lobste.rs/u/${comment.user.username}") }, ) if (commentNode.isExpanded) { - ThemedRichText( - text = htmlConverter.convertHTMLToMarkdown(comment.comment), - modifier = Modifier.padding(top = 8.dp) - ) + HTMLText(text = comment.comment, modifier = Modifier.padding(top = 8.dp)) } } } diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt index 439abc2b..cebb4a10 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt @@ -68,13 +68,11 @@ internal fun findTopMostParent(node: CommentNode): CommentNode { internal fun LazyListScope.nodes( nodes: List, - htmlConverter: HTMLConverter, toggleExpanded: (CommentNode) -> Unit, ) { nodes.forEach { node -> node( node = node, - htmlConverter = htmlConverter, toggleExpanded = toggleExpanded, ) } @@ -82,7 +80,6 @@ internal fun LazyListScope.nodes( private fun LazyListScope.node( node: CommentNode, - htmlConverter: HTMLConverter, toggleExpanded: (CommentNode) -> Unit, ) { // Skip the node if neither the node nor its parent is expanded @@ -92,7 +89,6 @@ private fun LazyListScope.node( item { CommentEntry( commentNode = node, - htmlConverter = htmlConverter, toggleExpanded = toggleExpanded, ) Divider() @@ -100,7 +96,6 @@ private fun LazyListScope.node( if (node.children.isNotEmpty()) { nodes( node.children, - htmlConverter = htmlConverter, toggleExpanded = toggleExpanded, ) } diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/Comments.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/Comments.kt index 5da029b1..119cee39 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/Comments.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/Comments.kt @@ -41,7 +41,6 @@ import dev.msfjarvis.claw.model.LobstersPostDetails private fun CommentsPageInternal( details: LobstersPostDetails, postActions: PostActions, - htmlConverter: HTMLConverter, commentState: PostComments?, markSeenComments: (String, List) -> Unit, modifier: Modifier = Modifier, @@ -55,7 +54,6 @@ private fun CommentsPageInternal( CommentsHeader( postDetails = details, postActions = postActions, - htmlConverter = htmlConverter, ) } @@ -70,7 +68,6 @@ private fun CommentsPageInternal( nodes( nodes = commentNodes, - htmlConverter = htmlConverter, toggleExpanded = { node -> val newNode = setExpanded(node, !node.isExpanded) val parent = findTopMostParent(newNode) @@ -102,7 +99,6 @@ private fun CommentsPageInternal( fun CommentsPage( postId: String, postActions: PostActions, - htmlConverter: HTMLConverter, getSeenComments: suspend (String) -> PostComments?, markSeenComments: (String, List) -> Unit, modifier: Modifier = Modifier, @@ -123,7 +119,6 @@ fun CommentsPage( CommentsPageInternal( details = (postDetails as Success).data, postActions = postActions, - htmlConverter = htmlConverter, commentState = commentState, markSeenComments = markSeenComments, modifier = modifier.fillMaxSize(), diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/user/UserProfile.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/user/UserProfile.kt index aae8cebf..47b8e815 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/user/UserProfile.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/user/UserProfile.kt @@ -29,10 +29,10 @@ import dev.msfjarvis.claw.common.NetworkState import dev.msfjarvis.claw.common.NetworkState.Error import dev.msfjarvis.claw.common.NetworkState.Loading import dev.msfjarvis.claw.common.NetworkState.Success +import dev.msfjarvis.claw.common.ui.HTMLText import dev.msfjarvis.claw.common.ui.NetworkError import dev.msfjarvis.claw.common.ui.NetworkImage import dev.msfjarvis.claw.common.ui.ProgressBar -import dev.msfjarvis.claw.common.ui.ThemedRichText import dev.msfjarvis.claw.model.User @Suppress("UNCHECKED_CAST") @@ -99,12 +99,10 @@ private fun UserProfileInternal( text = user.username, style = MaterialTheme.typography.displaySmall, ) - ThemedRichText( - text = user.about, - ) + HTMLText(text = user.about) user.invitedBy?.let { invitedBy -> - ThemedRichText( - text = "Invited by [${invitedBy}](https://lobste.rs/u/${user.invitedBy})", + HTMLText( + text = """Invited by ${invitedBy}""", ) } }