From f0a2e2c46f4faaf092be050ea0b9cbe10d80f359 Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 16 Dec 2025 03:33:01 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20-=20=EB=B2=88=EC=97=AD=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=EA=B0=80=20=EC=9E=88=EC=9C=BC=EB=A9=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../series/detail/GetSeriesDetailResponse.kt | 13 ++++- .../series/detail/SeriesDetailActivity.kt | 15 ++++-- .../SeriesDetailIntroductionFragment.kt | 53 +++++++++++++++---- 3 files changed, 68 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/GetSeriesDetailResponse.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/GetSeriesDetailResponse.kt index 4315af15..58f53c45 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/GetSeriesDetailResponse.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/GetSeriesDetailResponse.kt @@ -17,6 +17,7 @@ data class GetSeriesDetailResponse( @SerializedName("writer") val writer: String?, @SerializedName("studio") val studio: String?, @SerializedName("publishedDate") val publishedDate: String, + @SerializedName("publishedDateUtc") val publishedDateUtc: String, @SerializedName("creator") val creator: GetSeriesDetailCreator, @SerializedName("rentalMinPrice") var rentalMinPrice: Int, @SerializedName("rentalMaxPrice") var rentalMaxPrice: Int, @@ -26,7 +27,9 @@ data class GetSeriesDetailResponse( @SerializedName("keywordList") var keywordList: List, @SerializedName("publishedDaysOfWeek") var publishedDaysOfWeek: String, @SerializedName("contentList") val contentList: List, - @SerializedName("contentCount") val contentCount: Int + @SerializedName("contentCount") val contentCount: Int, + @SerializedName("translated") val translated: TranslatedSeries?, + @SerializedName("translatedGenre") val translatedGenre: String? ) : Parcelable { @Parcelize @Keep @@ -38,3 +41,11 @@ data class GetSeriesDetailResponse( @SerializedName("isNotify") var isNotify: Boolean ) : Parcelable } + +@Parcelize +@Keep +data class TranslatedSeries( + @SerializedName("title") val title: String, + @SerializedName("introduction") val introduction: String, + @SerializedName("keywords") val keywords: List +) : Parcelable diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailActivity.kt index fa11628e..ffcaaf8c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailActivity.kt @@ -118,10 +118,13 @@ class SeriesDetailActivity : BaseActivity( } viewModel.seriesDetailLiveData.observe(this) { + // GetSeriesDetailResponse에 추가한대로 번역 데이터가 있으면 번역데이터 표시 + // 없으면 지금과 동일하게 원본 데이터 표시 setSeriesBg(it.coverImage) setSeriesInfo(it) setSeriesCreator(it.creator) - setSeriesKeywordChipList(it.keywordList) + // 번역 키워드가 있으면 번역 키워드 표시, 없으면 기존 키워드 표시 + setSeriesKeywordChipList(it.translated?.keywords ?: it.keywordList) changeFragment("home") } @@ -160,8 +163,14 @@ class SeriesDetailActivity : BaseActivity( transformations(RoundedCornersTransformation(5f.dpToPx())) } - binding.tvTitle.text = seriesDetail.title - binding.tvGenre.text = seriesDetail.genre + // 번역 데이터 사용 우선, 없으면 원본 사용 + val displayTitle = seriesDetail.translated?.title?.takeIf { it.isNotBlank() } + ?: seriesDetail.title + val displayGenre = seriesDetail.translatedGenre?.takeIf { it.isNotBlank() } + ?: seriesDetail.genre + + binding.tvTitle.text = displayTitle + binding.tvGenre.text = displayGenre val publishedDays = if (seriesDetail.publishedDaysOfWeek == getString(R.string.day_random)) { getString(R.string.day_random) } else { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailIntroductionFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailIntroductionFragment.kt index 58198edc..73ec784d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailIntroductionFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/detail/SeriesDetailIntroductionFragment.kt @@ -13,6 +13,9 @@ import kr.co.vividnext.sodalive.base.BaseFragment import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.databinding.FragmentSeriesDetailIntroductionBinding import kr.co.vividnext.sodalive.extensions.dpToPx +import java.text.SimpleDateFormat +import java.util.Locale +import java.util.TimeZone class SeriesDetailIntroductionFragment : BaseFragment( FragmentSeriesDetailIntroductionBinding::inflate @@ -38,8 +41,15 @@ class SeriesDetailIntroductionFragment : BaseFragment