diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationMappers.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationMappers.kt index eb762c20..f5038551 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationMappers.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationMappers.kt @@ -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 ) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationUiModels.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationUiModels.kt index 07e887c8..f54127b5 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationUiModels.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationUiModels.kt @@ -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 } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/RecommendedActivityType.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/RecommendedActivityType.kt deleted file mode 100644 index ce45f082..00000000 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/RecommendedActivityType.kt +++ /dev/null @@ -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) } - } -} diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/RecommendedActivityTypeTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeCreatorActivityTypeLabelResTest.kt similarity index 68% rename from app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/RecommendedActivityTypeTest.kt rename to app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeCreatorActivityTypeLabelResTest.kt index f2a9593d..294346ae 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/RecommendedActivityTypeTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeCreatorActivityTypeLabelResTest.kt @@ -1,17 +1,17 @@ package kr.co.vividnext.sodalive.v2.main.home import kr.co.vividnext.sodalive.R -import kr.co.vividnext.sodalive.v2.main.home.model.toRecommendedActivityTypeLabelRes +import kr.co.vividnext.sodalive.v2.main.home.model.toCreatorActivityTypeLabelRes import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Test -class RecommendedActivityTypeTest { +class HomeCreatorActivityTypeLabelResTest { @Test fun `LIVE maps to live label`() { assertEquals( R.string.home_recommendation_activity_live, - "LIVE".toRecommendedActivityTypeLabelRes() + "LIVE".toCreatorActivityTypeLabelRes() ) } @@ -19,7 +19,7 @@ class RecommendedActivityTypeTest { fun `LIVE_REPLAY maps to live label`() { assertEquals( R.string.home_recommendation_activity_live, - "LIVE_REPLAY".toRecommendedActivityTypeLabelRes() + "LIVE_REPLAY".toCreatorActivityTypeLabelRes() ) } @@ -27,7 +27,7 @@ class RecommendedActivityTypeTest { fun `AUDIO maps to audio label`() { assertEquals( R.string.home_recommendation_activity_audio, - "AUDIO".toRecommendedActivityTypeLabelRes() + "AUDIO".toCreatorActivityTypeLabelRes() ) } @@ -35,7 +35,7 @@ class RecommendedActivityTypeTest { fun `COMMUNITY maps to community label`() { assertEquals( R.string.home_recommendation_activity_community, - "COMMUNITY".toRecommendedActivityTypeLabelRes() + "COMMUNITY".toCreatorActivityTypeLabelRes() ) } @@ -43,7 +43,7 @@ class RecommendedActivityTypeTest { fun `lowercase activity type maps to matching label`() { assertEquals( R.string.home_recommendation_activity_live, - "live".toRecommendedActivityTypeLabelRes() + "live".toCreatorActivityTypeLabelRes() ) } @@ -51,12 +51,12 @@ class RecommendedActivityTypeTest { fun `mixed case activity type maps to matching label`() { assertEquals( R.string.home_recommendation_activity_live, - "Live_RePlay".toRecommendedActivityTypeLabelRes() + "Live_RePlay".toCreatorActivityTypeLabelRes() ) } @Test fun `unknown activity type maps to null`() { - assertNull("UNKNOWN".toRecommendedActivityTypeLabelRes()) + assertNull("UNKNOWN".toCreatorActivityTypeLabelRes()) } } diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt index 5262cce8..a3cbf6f2 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt @@ -50,7 +50,7 @@ import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationPopularComm import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationPaidStatus import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationRecentlyActiveCreatorRoute import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationRecentlyActiveCreatorUiModel -import kr.co.vividnext.sodalive.v2.main.home.model.RecommendedActivityType +import kr.co.vividnext.sodalive.v2.common.CreatorActivityType import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationBannerIntent import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationBannerRoute import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationRecentlyActiveCreatorIntent @@ -1035,17 +1035,17 @@ class HomeMainFragmentLayoutTest { fun `home recent activity route maps activity type to target destination`() { assertEquals( HomeRecommendationRecentlyActiveCreatorRoute.AudioContent(11L), - recentActivityCreator(RecommendedActivityType.LiveReplay, targetId = 11L) + recentActivityCreator(CreatorActivityType.LiveReplay, targetId = 11L) .toHomeRecommendationRecentlyActiveCreatorRoute() ) assertEquals( HomeRecommendationRecentlyActiveCreatorRoute.AudioContent(12L), - recentActivityCreator(RecommendedActivityType.Audio, targetId = 12L) + recentActivityCreator(CreatorActivityType.Audio, targetId = 12L) .toHomeRecommendationRecentlyActiveCreatorRoute() ) assertEquals( HomeRecommendationRecentlyActiveCreatorRoute.Community(13L), - recentActivityCreator(RecommendedActivityType.Community, targetId = 13L) + recentActivityCreator(CreatorActivityType.Community, targetId = 13L) .toHomeRecommendationRecentlyActiveCreatorRoute() ) } @@ -1054,7 +1054,7 @@ class HomeMainFragmentLayoutTest { fun `home recent activity route ignores live unknown and missing target`() { assertEquals( null, - recentActivityCreator(RecommendedActivityType.Live, targetId = 10L) + recentActivityCreator(CreatorActivityType.Live, targetId = 10L) .toHomeRecommendationRecentlyActiveCreatorRoute() ) assertEquals( @@ -1063,12 +1063,12 @@ class HomeMainFragmentLayoutTest { ) assertEquals( null, - recentActivityCreator(RecommendedActivityType.Audio, targetId = null) + recentActivityCreator(CreatorActivityType.Audio, targetId = null) .toHomeRecommendationRecentlyActiveCreatorRoute() ) assertEquals( null, - recentActivityCreator(RecommendedActivityType.Community, targetId = 0L) + recentActivityCreator(CreatorActivityType.Community, targetId = 0L) .toHomeRecommendationRecentlyActiveCreatorRoute() ) } @@ -1406,7 +1406,7 @@ class HomeMainFragmentLayoutTest { val projectRoot = java.io.File("..").canonicalFile return java.io.File( projectRoot, - "app/src/main/java/kr/co/vividnext/sodalive/v2/main/HomeMainFragment.kt" + "app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt" ).readText() } @@ -1517,7 +1517,7 @@ class HomeMainFragmentLayoutTest { } private fun recentActivityCreator( - activityType: RecommendedActivityType?, + activityType: CreatorActivityType?, targetId: Long? ): HomeRecommendationRecentlyActiveCreatorUiModel { return HomeRecommendationRecentlyActiveCreatorUiModel(