refactor(home): 추천 활동 타입을 공용 타입으로 교체한다

This commit is contained in:
2026-06-13 16:21:46 +09:00
parent 55b4d9bc8d
commit 80e8213f12
5 changed files with 29 additions and 45 deletions

View File

@@ -1,6 +1,7 @@
package kr.co.vividnext.sodalive.v2.main.home.model
import androidx.annotation.StringRes
import kr.co.vividnext.sodalive.v2.common.CreatorActivityType
import kr.co.vividnext.sodalive.v2.main.home.data.HomeActiveCreatorItem
import kr.co.vividnext.sodalive.v2.main.home.data.HomeAiCharacterItem
import kr.co.vividnext.sodalive.v2.main.home.data.HomeBannerItem
@@ -15,7 +16,7 @@ import kr.co.vividnext.sodalive.v2.widget.characterchatthumbnail.CharacterChatTh
import kr.co.vividnext.sodalive.v2.widget.feed.FeedItem
@StringRes
fun String.toRecommendedActivityTypeLabelRes(): Int? = RecommendedActivityType.from(this)?.labelResId
fun String.toCreatorActivityTypeLabelRes(): Int? = CreatorActivityType.from(this)?.labelResId
fun HomeRecommendationResponse.toContent(): HomeRecommendationUiState.Content = HomeRecommendationUiState.Content(
lives = HomeRecommendationLiveSection(lives.map { it.toUiModel() }),
@@ -44,12 +45,12 @@ fun HomeBannerItem.toUiModel(): HomeRecommendationBannerUiModel = HomeRecommenda
)
fun HomeActiveCreatorItem.toUiModel(): HomeRecommendationRecentlyActiveCreatorUiModel {
val recommendedActivityType = RecommendedActivityType.from(activityType)
val creatorActivityType = CreatorActivityType.from(activityType)
return HomeRecommendationRecentlyActiveCreatorUiModel(
nickname = creatorNickname,
profileImage = creatorProfileImage,
activityType = recommendedActivityType,
activityLabelResId = recommendedActivityType?.labelResId,
activityType = creatorActivityType,
activityLabelResId = creatorActivityType?.labelResId,
activityAt = activityAt,
targetId = targetId
)

View File

@@ -11,6 +11,7 @@ import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.CreatorCommunityAllActivity
import kr.co.vividnext.sodalive.settings.event.EventDetailActivity
import kr.co.vividnext.sodalive.settings.event.EventItem
import kr.co.vividnext.sodalive.v2.common.CreatorActivityType
import kr.co.vividnext.sodalive.v2.widget.AudioContentTag
import kr.co.vividnext.sodalive.v2.widget.characterchatthumbnail.CharacterChatThumbnailItem
import kr.co.vividnext.sodalive.v2.widget.feed.FeedItem
@@ -133,7 +134,7 @@ private fun homeRecommendationAppLinkHost(): String = "${BuildConfig.APPSCHEME}.
data class HomeRecommendationRecentlyActiveCreatorUiModel(
val nickname: String,
val profileImage: String,
val activityType: RecommendedActivityType?,
val activityType: CreatorActivityType?,
val activityLabelResId: Int?,
val activityAt: String,
val targetId: Long?
@@ -149,10 +150,10 @@ fun HomeRecommendationRecentlyActiveCreatorUiModel.toHomeRecommendationRecentlyA
HomeRecommendationRecentlyActiveCreatorRoute? {
val routeTargetId = targetId?.takeIf { it > 0 } ?: return null
return when (activityType) {
RecommendedActivityType.Live -> null
RecommendedActivityType.LiveReplay,
RecommendedActivityType.Audio -> HomeRecommendationRecentlyActiveCreatorRoute.AudioContent(routeTargetId)
RecommendedActivityType.Community -> HomeRecommendationRecentlyActiveCreatorRoute.Community(routeTargetId)
CreatorActivityType.Live -> null
CreatorActivityType.LiveReplay,
CreatorActivityType.Audio -> HomeRecommendationRecentlyActiveCreatorRoute.AudioContent(routeTargetId)
CreatorActivityType.Community -> HomeRecommendationRecentlyActiveCreatorRoute.Community(routeTargetId)
null -> null
}
}

View File

@@ -1,18 +0,0 @@
package kr.co.vividnext.sodalive.v2.main.home.model
import androidx.annotation.StringRes
import kr.co.vividnext.sodalive.R
enum class RecommendedActivityType(
val code: String,
@StringRes val labelResId: Int
) {
Live("LIVE", R.string.home_recommendation_activity_live),
LiveReplay("LIVE_REPLAY", R.string.home_recommendation_activity_live),
Audio("AUDIO", R.string.home_recommendation_activity_audio),
Community("COMMUNITY", R.string.home_recommendation_activity_community);
companion object {
fun from(code: String): RecommendedActivityType? = entries.firstOrNull { it.code.equals(code, ignoreCase = true) }
}
}