Skip to content

Commit f38c5ab

Browse files
committed
Refactor: RecommendLevel 난이도 변수 추가
1 parent 2b354fb commit f38c5ab

3 files changed

Lines changed: 17 additions & 42 deletions

File tree

domain/src/main/java/com/threegap/bitnagil/domain/recommendroutine/model/RecommendLevel.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,14 @@ package com.threegap.bitnagil.domain.recommendroutine.model
22

33
enum class RecommendLevel(
44
val level: String,
5+
val koreanLevel: String,
56
val displayName: String,
67
) {
7-
LEVEL1("LEVEL1", "가볍게 할 수 있어요"),
8-
LEVEL2("LEVEL2", "조금 신경써서 할 수 있어요"),
9-
LEVEL3("LEVEL3", "의지를 다 잡고 할 수 있어요"),
8+
LEVEL1("LEVEL1", "", "가볍게 할 수 있어요"),
9+
LEVEL2("LEVEL2", "", "조금 신경써서 할 수 있어요"),
10+
LEVEL3("LEVEL3", "", "의지를 다 잡고 할 수 있어요"),
1011
;
1112

12-
fun toKoreanLevel() = when (this) {
13-
LEVEL1 -> ""
14-
LEVEL2 -> ""
15-
LEVEL3 -> ""
16-
}
17-
1813
companion object {
1914
fun fromString(levelName: String): RecommendLevel =
2015
entries.find { it.level == levelName } ?: LEVEL1

presentation/src/main/java/com/threegap/bitnagil/presentation/recommendroutine/RecommendRoutineScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ private fun RecommendRoutineScreen(
152152
.clickableWithoutRipple { onShowDifficultyBottomSheet() },
153153
) {
154154
Text(
155-
text = "난이도 ${uiState.selectedRecommendLevel?.toKoreanLevel() ?: "선택"}",
155+
text = "난이도 ${uiState.selectedRecommendLevel?.koreanLevel ?: "선택"}",
156156
color = BitnagilTheme.colors.coolGray40,
157157
style = BitnagilTheme.typography.body2Medium,
158158
modifier = Modifier.padding(start = 10.dp),

presentation/src/main/java/com/threegap/bitnagil/presentation/recommendroutine/component/template/RecommendLevelBottomSheet.kt

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ import androidx.compose.runtime.Composable
1212
import androidx.compose.runtime.rememberCoroutineScope
1313
import androidx.compose.ui.Alignment
1414
import androidx.compose.ui.Modifier
15-
import androidx.compose.ui.text.SpanStyle
16-
import androidx.compose.ui.text.buildAnnotatedString
17-
import androidx.compose.ui.text.style.BaselineShift
18-
import androidx.compose.ui.text.withStyle
1915
import androidx.compose.ui.tooling.preview.Preview
2016
import androidx.compose.ui.unit.dp
2117
import com.threegap.bitnagil.designsystem.BitnagilTheme
@@ -51,7 +47,8 @@ fun RecommendLevelBottomSheet(
5147
) {
5248
RecommendLevel.entries.forEachIndexed { index, recommendLevel ->
5349
LevelOption(
54-
optionText = "난이도 ${recommendLevel.toKoreanLevel()} | ${recommendLevel.displayName}",
50+
optionLevel = recommendLevel.koreanLevel,
51+
optionText = recommendLevel.displayName,
5552
isSelected = selectedRecommendLevel == recommendLevel,
5653
onClick = {
5754
val newLevel = if (selectedRecommendLevel == recommendLevel) null else recommendLevel
@@ -79,6 +76,7 @@ fun RecommendLevelBottomSheet(
7976

8077
@Composable
8178
private fun LevelOption(
79+
optionLevel: String,
8280
optionText: String,
8381
isSelected: Boolean,
8482
onClick: () -> Unit,
@@ -90,35 +88,16 @@ private fun LevelOption(
9088
.clickableWithoutRipple { onClick() }
9189
.padding(vertical = 8.dp),
9290
) {
93-
val parts = optionText.split(" | ")
94-
val annotatedString = buildAnnotatedString {
95-
if (parts.size >= 2) {
96-
withStyle(
97-
style = BitnagilTheme.typography.body1SemiBold.toSpanStyle(),
98-
) {
99-
append(parts[0])
100-
}
101-
102-
withStyle(
103-
style = SpanStyle(
104-
color = BitnagilTheme.colors.coolGray10,
105-
baselineShift = BaselineShift(0.1f),
106-
),
107-
) {
108-
append(" | ")
109-
}
110-
111-
withStyle(
112-
style = BitnagilTheme.typography.body1Regular.toSpanStyle(),
113-
) {
114-
append(parts[1])
115-
}
116-
}
117-
}
91+
Text(
92+
text = "난이도 $optionLevel",
93+
color = BitnagilTheme.colors.coolGray10,
94+
style = BitnagilTheme.typography.body1SemiBold
95+
)
11896

11997
Text(
120-
text = annotatedString,
98+
text = " | $optionText",
12199
color = BitnagilTheme.colors.coolGray10,
100+
style = BitnagilTheme.typography.body1Regular,
122101
modifier = Modifier.weight(1f),
123102
)
124103

@@ -135,7 +114,8 @@ private fun LevelOption(
135114
@Composable
136115
private fun LevelOptionPreview() {
137116
LevelOption(
138-
optionText = "난이도 상 | 가볍게 할 수 있어요",
117+
optionLevel = "",
118+
optionText = "가볍게 할 수 있어요",
139119
isSelected = true,
140120
onClick = {},
141121
)

0 commit comments

Comments
 (0)