fix: fix various issues before merging

This commit is contained in:
Kevin
2026-03-11 11:27:32 +08:00
parent bd5f0905ba
commit 1f98b8bfd6
15 changed files with 297 additions and 31 deletions

View File

@@ -20,6 +20,7 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import com.huaga.life_echo.network.models.ChapterDto
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_COMPLETED
import com.huaga.life_echo.ui.components.common.MarkdownText
import com.huaga.life_echo.ui.icons.AppIcons
import com.huaga.life_echo.ui.theme.*
@@ -173,7 +174,9 @@ private fun FilledChapterCard(
) {
val processedContent = TextUtils.removeImagePlaceholders(
chapter.content,
hasImages = chapter.images.any { it.status == "completed" && !it.url.isNullOrBlank() }
hasImages = chapter.images.any {
it.status == MEMOIR_IMAGE_STATUS_COMPLETED && !it.url.isNullOrBlank()
}
)
MarkdownText(

View File

@@ -13,6 +13,7 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import com.huaga.life_echo.network.models.ChapterContentDto
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_COMPLETED
import com.huaga.life_echo.network.models.ChapterImageDto
import com.huaga.life_echo.ui.components.common.MarkdownText
import com.huaga.life_echo.ui.theme.AppTypography
@@ -77,7 +78,7 @@ fun ChapterReadingView(
MemoirInlineImage(
image = block.image,
onClick = {
if (block.image.status == "completed" && !block.image.url.isNullOrBlank()) {
if (block.image.status == MEMOIR_IMAGE_STATUS_COMPLETED && !block.image.url.isNullOrBlank()) {
viewerImage = block.image
}
},

View File

@@ -16,6 +16,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import com.huaga.life_echo.network.models.ChapterContentDto
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_COMPLETED
import com.huaga.life_echo.network.models.ChapterImageDto
import com.huaga.life_echo.ui.components.common.MarkdownText
import com.huaga.life_echo.ui.icons.AppIcons
@@ -91,7 +92,7 @@ fun FullTextReadingView(
MemoirInlineImage(
image = block.image,
onClick = {
if (block.image.status == "completed" && !block.image.url.isNullOrBlank()) {
if (block.image.status == MEMOIR_IMAGE_STATUS_COMPLETED && !block.image.url.isNullOrBlank()) {
viewerImage = block.image
}
},

View File

@@ -1,6 +1,9 @@
package com.huaga.life_echo.ui.components.memoir
import com.huaga.life_echo.network.models.ChapterImageDto
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_COMPLETED
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_PENDING
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_PROCESSING
sealed interface MemoirContentBlock {
data class Text(val content: String) : MemoirContentBlock
@@ -24,9 +27,12 @@ fun splitMemoirContent(content: String, images: List<ChapterImageDto>): List<Mem
val parts = remaining.split(placeholder, limit = 2)
val before = stripImagePlaceholders(parts.first())
if (before.isNotBlank()) blocks += MemoirContentBlock.Text(before)
if (image.status == "completed" && !image.url.isNullOrBlank()) {
if (image.status == MEMOIR_IMAGE_STATUS_COMPLETED && !image.url.isNullOrBlank()) {
blocks += MemoirContentBlock.Image(image)
} else if (image.status == "pending" || image.status == "processing") {
} else if (
image.status == MEMOIR_IMAGE_STATUS_PENDING ||
image.status == MEMOIR_IMAGE_STATUS_PROCESSING
) {
blocks += MemoirContentBlock.Image(image)
}
remaining = parts.getOrElse(1) { "" }

View File

@@ -22,6 +22,9 @@ import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp
import coil.compose.SubcomposeAsyncImage
import com.huaga.life_echo.network.models.ChapterImageDto
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_COMPLETED
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_PENDING
import com.huaga.life_echo.network.models.MEMOIR_IMAGE_STATUS_PROCESSING
import com.huaga.life_echo.ui.theme.AppTypography
import com.huaga.life_echo.ui.theme.LightPurple
import com.huaga.life_echo.ui.theme.SlatePurple
@@ -74,7 +77,7 @@ fun MemoirInlineImage(
modifier: Modifier = Modifier,
) {
when (image.status) {
"completed" -> SubcomposeAsyncImage(
MEMOIR_IMAGE_STATUS_COMPLETED -> SubcomposeAsyncImage(
model = image.url,
contentDescription = image.description,
contentScale = ContentScale.FillWidth,
@@ -99,7 +102,7 @@ fun MemoirInlineImage(
.clickable(onClick = onClick)
.testTag("memoir-image-${image.index}")
)
"pending", "processing" -> MemoirImageLoadingPlaceholder(
MEMOIR_IMAGE_STATUS_PENDING, MEMOIR_IMAGE_STATUS_PROCESSING -> MemoirImageLoadingPlaceholder(
image = image,
modifier = modifier,
text = "图片生成中…",