HomeService의 최신 콘텐츠 테마 목록에서 다시듣기 제외

홈 화면의 최신 콘텐츠 테마 리스트(latestContentThemeList)에서
'다시듣기' 테마를 제외하도록 수정한다.
일본어 및 영어 번역이 적용되기 전에 필터링을 수행하여
다양한 언어 환경에서도 정상적으로 제외되도록 보장한다.
AudioContentThemeService의 getActiveThemeOfContent 메서드에
테마 제외 옵션을 추가하여 필요한 곳에서만 선택적으로 사용할 수 있게 한다.
This commit is contained in:
2026-01-22 18:09:49 +09:00
parent f53dcc32bd
commit e1bf54c74b
2 changed files with 9 additions and 3 deletions

View File

@@ -106,7 +106,8 @@ class HomeService(
val latestContentThemeList = contentThemeService.getActiveThemeOfContent( val latestContentThemeList = contentThemeService.getActiveThemeOfContent(
isAdult = isAdult, isAdult = isAdult,
contentType = contentType contentType = contentType,
excludeThemes = listOf("다시듣기")
) )
val latestContentList = contentService.getLatestContentByTheme( val latestContentList = contentService.getLatestContentByTheme(

View File

@@ -34,15 +34,20 @@ class AudioContentThemeService(
isAdult: Boolean = false, isAdult: Boolean = false,
isFree: Boolean = false, isFree: Boolean = false,
isPointAvailableOnly: Boolean = false, isPointAvailableOnly: Boolean = false,
contentType: ContentType contentType: ContentType,
excludeThemes: List<String> = emptyList()
): List<String> { ): List<String> {
val themesWithIds = queryRepository.getActiveThemeWithIdsOfContent( var themesWithIds = queryRepository.getActiveThemeWithIdsOfContent(
isAdult = isAdult, isAdult = isAdult,
isFree = isFree, isFree = isFree,
isPointAvailableOnly = isPointAvailableOnly, isPointAvailableOnly = isPointAvailableOnly,
contentType = contentType contentType = contentType
) )
if (excludeThemes.isNotEmpty()) {
themesWithIds = themesWithIds.filter { it.theme !in excludeThemes }
}
/** /**
* langContext.lang == Lang.EN || Lang.JA 일 때 번역된 콘텐츠 테마 반환 * langContext.lang == Lang.EN || Lang.JA 일 때 번역된 콘텐츠 테마 반환
* 번역이 없으면 번역 API 호출 후 저장하고 반환 * 번역이 없으면 번역 API 호출 후 저장하고 반환