Skip to content

Commit c168672

Browse files
authored
Merge pull request #28 from Team-CrowdZero/feature/#25-scale-fix
[Feature/#25] : 혼잡도, 날씨, 미세먼지 스케일 이슈 해결
2 parents 5e08073 + 0cef29c commit c168672

9 files changed

Lines changed: 147 additions & 91 deletions

File tree

core/src/main/java/com/gdg/core/designsystem/theme/Color.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ val Green600 = Color(0xFF04D181)
3030
val Green500 = Color(0xFF9AE5DA)
3131

3232
// Blue Color
33+
val Blue300 = Color(0xFF049ED1)
3334
val Blue200 = Color(0xFF73CAED)
3435
val Blue100 = Color(0xFF98D1E8)
3536

@@ -51,6 +52,7 @@ class CrowdZeroColors(
5152
green700: Color,
5253
green600: Color,
5354
green500: Color,
55+
blue300: Color,
5456
blue200: Color,
5557
blue100: Color
5658
) {
@@ -86,6 +88,8 @@ class CrowdZeroColors(
8688
private set
8789
var green500 by mutableStateOf(green500)
8890
private set
91+
var blue300 by mutableStateOf(blue300)
92+
private set
8993
var blue200 by mutableStateOf(blue200)
9094
private set
9195
var blue100 by mutableStateOf(blue100)
@@ -108,6 +112,7 @@ class CrowdZeroColors(
108112
green700 = green700,
109113
green600 = green600,
110114
green500 = green500,
115+
blue300 = blue300,
111116
blue200 = blue200,
112117
blue100 = blue100
113118
)
@@ -152,6 +157,7 @@ fun crowdZeroColors(
152157
green700: Color = Green700,
153158
green600: Color = Green600,
154159
green500: Color = Green500,
160+
blue300: Color = Blue300,
155161
blue200: Color = Blue200,
156162
blue100: Color = Blue100
157163
) = CrowdZeroColors(
@@ -171,6 +177,7 @@ fun crowdZeroColors(
171177
green700 = green700,
172178
green600 = green600,
173179
green500 = green500,
180+
blue300 = blue300,
174181
blue200 = blue200,
175182
blue100 = blue100
176183
)

core/src/main/java/com/gdg/core/type/DustConditionType.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.gdg.core.type
33
import androidx.annotation.StringRes
44
import androidx.compose.ui.graphics.Color
55
import com.gdg.core.R
6+
import com.gdg.core.designsystem.theme.Blue300
67
import com.gdg.core.designsystem.theme.Gray700
78
import com.gdg.core.designsystem.theme.Green600
89
import com.gdg.core.designsystem.theme.Orange
@@ -14,14 +15,18 @@ enum class DustConditionType(
1415
) {
1516
GOOD(
1617
title = R.string.dust_condition_good,
17-
color = Green600
18+
color = Blue300
1819
),
1920
NORMAL(
2021
title = R.string.dust_condition_normal,
21-
color = Orange
22+
color = Green600
2223
),
2324
BAD(
2425
title = R.string.dust_condition_bad,
26+
color = Orange
27+
),
28+
VERY_BAD(
29+
title = R.string.dust_condition_very_bad,
2530
color = Red
2631
),
2732
UNKNOWN(

core/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,6 @@
3232
<string name="previous_month">이전 달</string>
3333
<string name="next_month">다음 달</string>
3434
<string name="dust_condition_unknown">모름</string>
35+
<string name="dust_condition_very_bad">매우나쁨</string>
3536

3637
</resources>

feature/src/main/java/com/gdg/feature/calendar/CalendarRoute.kt

Lines changed: 1 addition & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.gdg.feature.calendar
22

33
import androidx.compose.foundation.Image
4-
import androidx.compose.foundation.background
5-
import androidx.compose.foundation.border
64
import androidx.compose.foundation.layout.Arrangement
75
import androidx.compose.foundation.layout.Column
86
import androidx.compose.foundation.layout.PaddingValues
@@ -17,7 +15,6 @@ import androidx.compose.foundation.layout.size
1715
import androidx.compose.foundation.layout.statusBarsPadding
1816
import androidx.compose.foundation.lazy.LazyColumn
1917
import androidx.compose.foundation.lazy.items
20-
import androidx.compose.foundation.shape.RoundedCornerShape
2118
import androidx.compose.material3.HorizontalDivider
2219
import androidx.compose.material3.Text
2320
import androidx.compose.runtime.Composable
@@ -29,8 +26,6 @@ import androidx.compose.runtime.remember
2926
import androidx.compose.runtime.setValue
3027
import androidx.compose.ui.Alignment
3128
import androidx.compose.ui.Modifier
32-
import androidx.compose.ui.draw.clip
33-
import androidx.compose.ui.res.dimensionResource
3429
import androidx.compose.ui.res.painterResource
3530
import androidx.compose.ui.res.stringResource
3631
import androidx.compose.ui.text.SpanStyle
@@ -47,6 +42,7 @@ import com.gdg.core.state.UiState
4742
import com.gdg.core.util.TimeFormatter
4843
import com.gdg.domain.entity.ScheduleEntity
4944
import com.gdg.feature.R
45+
import com.gdg.feature.calendar.component.CalendarInfoBox
5046
import timber.log.Timber
5147
import java.time.LocalDate
5248
import java.time.YearMonth
@@ -212,80 +208,6 @@ fun CalendarScreen(
212208
}
213209
}
214210

215-
@Composable
216-
fun CalendarInfoBox(data: ScheduleEntity) {
217-
Column(
218-
modifier = Modifier
219-
.fillMaxWidth()
220-
.border(0.5.dp, CrowdZeroTheme.colors.gray500, shape = RoundedCornerShape(15.dp))
221-
.clip(RoundedCornerShape(15.dp))
222-
.background(CrowdZeroTheme.colors.white)
223-
.padding(dimensionResource(R.dimen.default_padding))
224-
) {
225-
Row(
226-
modifier = Modifier.fillMaxWidth(),
227-
verticalAlignment = Alignment.CenterVertically
228-
) {
229-
Text(
230-
modifier = Modifier.padding(end = 8.dp),
231-
text = data.duration,
232-
style = CrowdZeroTheme.typography.c4SemiBold,
233-
color = CrowdZeroTheme.colors.green600
234-
)
235-
Text(
236-
text = data.region,
237-
style = CrowdZeroTheme.typography.c4SemiBold,
238-
color = CrowdZeroTheme.colors.white,
239-
modifier = Modifier
240-
.background(
241-
color = CrowdZeroTheme.colors.green600,
242-
shape = RoundedCornerShape(30.dp)
243-
)
244-
.padding(horizontal = 8.dp, vertical = 3.dp)
245-
)
246-
}
247-
Text(
248-
text = data.location.replace("\n", " "),
249-
style = CrowdZeroTheme.typography.h5Bold,
250-
color = CrowdZeroTheme.colors.gray900
251-
)
252-
Row(
253-
modifier = Modifier.fillMaxWidth(),
254-
verticalAlignment = Alignment.CenterVertically
255-
) {
256-
Text(
257-
modifier = Modifier.padding(end = 4.dp),
258-
text = stringResource(R.string.calendar_people_reporting_title),
259-
style = CrowdZeroTheme.typography.c3Regular,
260-
color = CrowdZeroTheme.colors.gray600
261-
)
262-
Text(
263-
modifier = Modifier.padding(end = 8.dp),
264-
text = stringResource(R.string.calendar_people_reporting, data.people),
265-
style = CrowdZeroTheme.typography.c3Regular,
266-
color = CrowdZeroTheme.colors.gray800
267-
)
268-
Text(
269-
modifier = Modifier.padding(end = 8.dp),
270-
text = stringResource(R.string.calendar_slash),
271-
style = CrowdZeroTheme.typography.c3Regular,
272-
color = CrowdZeroTheme.colors.gray600
273-
)
274-
Text(
275-
modifier = Modifier.padding(end = 4.dp),
276-
text = stringResource(R.string.calendar_jurisdiction),
277-
style = CrowdZeroTheme.typography.c3Regular,
278-
color = CrowdZeroTheme.colors.gray600
279-
)
280-
Text(
281-
text = data.jurisdiction.replace("\n", " "),
282-
style = CrowdZeroTheme.typography.c3Regular,
283-
color = CrowdZeroTheme.colors.gray800
284-
)
285-
}
286-
}
287-
}
288-
289211
@Preview(showBackground = true)
290212
@Composable
291213
fun CalendarScreenPreview() {
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
package com.gdg.feature.calendar.component
2+
3+
import androidx.compose.foundation.background
4+
import androidx.compose.foundation.border
5+
import androidx.compose.foundation.layout.Arrangement
6+
import androidx.compose.foundation.layout.Column
7+
import androidx.compose.foundation.layout.Row
8+
import androidx.compose.foundation.layout.fillMaxWidth
9+
import androidx.compose.foundation.layout.padding
10+
import androidx.compose.foundation.shape.RoundedCornerShape
11+
import androidx.compose.material3.Text
12+
import androidx.compose.runtime.Composable
13+
import androidx.compose.ui.Alignment
14+
import androidx.compose.ui.Modifier
15+
import androidx.compose.ui.draw.clip
16+
import androidx.compose.ui.res.dimensionResource
17+
import androidx.compose.ui.res.stringResource
18+
import androidx.compose.ui.tooling.preview.Preview
19+
import androidx.compose.ui.unit.dp
20+
import com.gdg.core.designsystem.theme.CrowdZeroAndroidTheme
21+
import com.gdg.core.designsystem.theme.CrowdZeroTheme
22+
import com.gdg.core.extension.showIf
23+
import com.gdg.domain.entity.ScheduleEntity
24+
import com.gdg.feature.R
25+
26+
@Composable
27+
fun CalendarInfoBox(data: ScheduleEntity) {
28+
Column(
29+
modifier = Modifier
30+
.fillMaxWidth()
31+
.border(0.5.dp, CrowdZeroTheme.colors.gray500, shape = RoundedCornerShape(15.dp))
32+
.clip(RoundedCornerShape(15.dp))
33+
.background(CrowdZeroTheme.colors.white)
34+
.padding(dimensionResource(R.dimen.default_padding)),
35+
verticalArrangement = Arrangement.spacedBy(2.dp)
36+
) {
37+
Row(
38+
modifier = Modifier.fillMaxWidth(),
39+
verticalAlignment = Alignment.CenterVertically
40+
) {
41+
Text(
42+
modifier = Modifier.padding(end = 8.dp),
43+
text = data.duration.replace("\n", " "),
44+
style = CrowdZeroTheme.typography.c4SemiBold,
45+
color = CrowdZeroTheme.colors.green600
46+
)
47+
Text(
48+
text = data.region,
49+
style = CrowdZeroTheme.typography.c4SemiBold,
50+
color = CrowdZeroTheme.colors.white,
51+
modifier = Modifier
52+
.background(
53+
color = CrowdZeroTheme.colors.green600,
54+
shape = RoundedCornerShape(30.dp)
55+
)
56+
.padding(horizontal = 8.dp, vertical = 3.dp)
57+
.showIf(data.region != "None")
58+
)
59+
}
60+
Text(
61+
text = data.location.replace("\n", " "),
62+
style = CrowdZeroTheme.typography.h5Bold,
63+
color = CrowdZeroTheme.colors.gray900
64+
)
65+
Row(
66+
modifier = Modifier.fillMaxWidth(),
67+
verticalAlignment = Alignment.CenterVertically
68+
) {
69+
Text(
70+
modifier = Modifier.padding(end = 4.dp),
71+
text = stringResource(R.string.calendar_people_reporting_title),
72+
style = CrowdZeroTheme.typography.c3Regular,
73+
color = CrowdZeroTheme.colors.gray600
74+
)
75+
Text(
76+
modifier = Modifier.padding(end = 8.dp),
77+
text = stringResource(R.string.calendar_people_reporting, data.people),
78+
style = CrowdZeroTheme.typography.c3Regular,
79+
color = CrowdZeroTheme.colors.gray800
80+
)
81+
Text(
82+
modifier = Modifier.padding(end = 8.dp),
83+
text = stringResource(R.string.calendar_slash),
84+
style = CrowdZeroTheme.typography.c3Regular,
85+
color = CrowdZeroTheme.colors.gray600
86+
)
87+
Text(
88+
modifier = Modifier.padding(end = 4.dp),
89+
text = stringResource(R.string.calendar_jurisdiction),
90+
style = CrowdZeroTheme.typography.c3Regular,
91+
color = CrowdZeroTheme.colors.gray600
92+
)
93+
Text(
94+
text = data.jurisdiction.replace("\n", " "),
95+
style = CrowdZeroTheme.typography.c3Regular,
96+
color = CrowdZeroTheme.colors.gray800
97+
)
98+
}
99+
}
100+
}
101+
102+
@Preview(showBackground = true)
103+
@Composable
104+
fun CalendarInfoBoxPreview() {
105+
CrowdZeroAndroidTheme {
106+
CalendarInfoBox(
107+
ScheduleEntity(
108+
date = "2021-10-01",
109+
duration = "07:30 ~ 24:00",
110+
location = "두터교회 앞 인도 및 2개 차로",
111+
region = "한남동",
112+
people = "3000",
113+
jurisdiction = "용산"
114+
)
115+
)
116+
}
117+
}

feature/src/main/java/com/gdg/feature/detail/DetailRoute.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,8 @@ fun DetailScreen(
213213
true -> when (congestionState.data.level) {
214214
"여유" -> OverlayImage.fromResource(CongestionType.GOOD.icon)
215215
"보통" -> OverlayImage.fromResource(CongestionType.NORMAL.icon)
216-
"약간 혼잡" -> OverlayImage.fromResource(CongestionType.LITTLE_BAD.icon)
217-
"혼잡" -> OverlayImage.fromResource(CongestionType.BAD.icon)
216+
"약간 붐빔" -> OverlayImage.fromResource(CongestionType.LITTLE_BAD.icon)
217+
"붐빔" -> OverlayImage.fromResource(CongestionType.BAD.icon)
218218
else -> OverlayImage.fromResource(CongestionType.UNKNOWN.icon)
219219
}
220220

feature/src/main/java/com/gdg/feature/detail/component/CongestionItem.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ fun CongestionItem(
4343
color = when (data.level) {
4444
"여유" -> CrowdZeroTheme.colors.green600
4545
"보통" -> CrowdZeroTheme.colors.yellow
46-
"약간 혼잡" -> CrowdZeroTheme.colors.orange
47-
"혼잡" -> CrowdZeroTheme.colors.red
46+
"약간 붐빔" -> CrowdZeroTheme.colors.orange
47+
"붐빔" -> CrowdZeroTheme.colors.red
4848
else -> CrowdZeroTheme.colors.gray700
4949
}
5050
)
@@ -69,8 +69,8 @@ fun CongestionItem(
6969
congestionType = when (data.level) {
7070
"여유" -> CongestionType.GOOD
7171
"보통" -> CongestionType.NORMAL
72-
"약간 혼잡" -> CongestionType.LITTLE_BAD
73-
"혼잡" -> CongestionType.BAD
72+
"약간 붐빔" -> CongestionType.LITTLE_BAD
73+
"붐빔" -> CongestionType.BAD
7474
else -> CongestionType.UNKNOWN
7575
}
7676
)

feature/src/main/java/com/gdg/feature/detail/component/WeatherItem.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ fun WeatherItem(
7979
"좋음" -> DustConditionType.GOOD
8080
"보통" -> DustConditionType.NORMAL
8181
"나쁨" -> DustConditionType.BAD
82+
"매우나쁨" -> DustConditionType.VERY_BAD
8283
else -> DustConditionType.UNKNOWN
8384
}
8485
)
@@ -89,6 +90,7 @@ fun WeatherItem(
8990
"좋음" -> DustConditionType.GOOD
9091
"보통" -> DustConditionType.NORMAL
9192
"나쁨" -> DustConditionType.BAD
93+
"매우나쁨" -> DustConditionType.VERY_BAD
9294
else -> DustConditionType.UNKNOWN
9395
}
9496
)
@@ -105,6 +107,8 @@ fun WeatherItem(
105107
imageVector = when (data.skyStts) {
106108
"맑음" -> ImageVector.vectorResource(R.drawable.ic_sunny)
107109
"구름많음" -> ImageVector.vectorResource(R.drawable.ic_cloudy)
110+
"흐림" -> ImageVector.vectorResource(R.drawable.ic_cloudy)
111+
"소나기" -> ImageVector.vectorResource(R.drawable.ic_rainy)
108112
"" -> ImageVector.vectorResource(R.drawable.ic_rainy)
109113
"" -> ImageVector.vectorResource(R.drawable.ic_snowy)
110114
else -> ImageVector.vectorResource(R.drawable.ic_sunny_cloudy)

feature/src/main/java/com/gdg/feature/map/component/PlaceInfoCard.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ fun PlaceInfoCard(
105105
color = when (place.congestion) {
106106
"여유" -> CrowdZeroTheme.colors.green600
107107
"보통" -> CrowdZeroTheme.colors.yellow
108-
"약간 혼잡" -> CrowdZeroTheme.colors.orange
109-
"혼잡" -> CrowdZeroTheme.colors.red
108+
"약간 붐빔" -> CrowdZeroTheme.colors.orange
109+
"붐빔" -> CrowdZeroTheme.colors.red
110110
else -> CrowdZeroTheme.colors.gray700
111111
}
112112
)
@@ -125,8 +125,8 @@ fun PlaceInfoCard(
125125
color = when (place.congestion) {
126126
"여유" -> CrowdZeroTheme.colors.green600
127127
"보통" -> CrowdZeroTheme.colors.yellow
128-
"약간 혼잡" -> CrowdZeroTheme.colors.orange
129-
"혼잡" -> CrowdZeroTheme.colors.red
128+
"약간 붐빔" -> CrowdZeroTheme.colors.orange
129+
"붐빔" -> CrowdZeroTheme.colors.red
130130
else -> CrowdZeroTheme.colors.gray700
131131
}
132132
)

0 commit comments

Comments
 (0)