Skip to content

Commit 46d7396

Browse files
authored
[MERGE] #152 -> develop
[FEAT] 로띠 적용 및 2차 QA 적용
2 parents 0ff2256 + d6868dc commit 46d7396

File tree

4 files changed

+1151
-35
lines changed

4 files changed

+1151
-35
lines changed

app/src/main/java/com/cherrish/android/presentation/challenge/loading/ChallengeLoadingScreen.kt

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,34 @@
11
package com.cherrish.android.presentation.challenge.loading
22

3-
import androidx.compose.foundation.Image
43
import androidx.compose.foundation.background
54
import androidx.compose.foundation.layout.Arrangement
65
import androidx.compose.foundation.layout.Column
76
import androidx.compose.foundation.layout.PaddingValues
87
import androidx.compose.foundation.layout.Row
98
import androidx.compose.foundation.layout.Spacer
9+
import androidx.compose.foundation.layout.aspectRatio
1010
import androidx.compose.foundation.layout.fillMaxSize
11+
import androidx.compose.foundation.layout.fillMaxWidth
1112
import androidx.compose.foundation.layout.height
1213
import androidx.compose.foundation.layout.navigationBarsPadding
1314
import androidx.compose.foundation.layout.padding
14-
import androidx.compose.foundation.layout.size
1515
import androidx.compose.material3.Icon
1616
import androidx.compose.material3.Text
1717
import androidx.compose.runtime.Composable
1818
import androidx.compose.runtime.LaunchedEffect
19+
import androidx.compose.runtime.getValue
1920
import androidx.compose.ui.Alignment
2021
import androidx.compose.ui.Modifier
2122
import androidx.compose.ui.graphics.vector.ImageVector
22-
import androidx.compose.ui.res.painterResource
2323
import androidx.compose.ui.res.vectorResource
2424
import androidx.compose.ui.tooling.preview.Preview
2525
import androidx.compose.ui.unit.dp
2626
import androidx.hilt.navigation.compose.hiltViewModel
27+
import com.airbnb.lottie.compose.LottieAnimation
28+
import com.airbnb.lottie.compose.LottieCompositionSpec
29+
import com.airbnb.lottie.compose.LottieConstants
30+
import com.airbnb.lottie.compose.animateLottieCompositionAsState
31+
import com.airbnb.lottie.compose.rememberLottieComposition
2732
import com.cherrish.android.R
2833
import com.cherrish.android.core.common.extension.collectLatestSideEffect
2934
import com.cherrish.android.core.common.extension.noRippleClickable
@@ -61,6 +66,14 @@ private fun ChallengeLoadingScreen(
6166
onClick: () -> Unit,
6267
modifier: Modifier = Modifier
6368
) {
69+
val composition by rememberLottieComposition(
70+
LottieCompositionSpec.RawRes(R.raw.lt_challenge_loading)
71+
)
72+
val progress by animateLottieCompositionAsState(
73+
composition,
74+
iterations = LottieConstants.IterateForever,
75+
isPlaying = true
76+
)
6477
Column(
6578
modifier = modifier
6679
.fillMaxSize()
@@ -106,12 +119,17 @@ private fun ChallengeLoadingScreen(
106119
style = CherrishTheme.typography.title1SB18
107120
)
108121

109-
Spacer(modifier = Modifier.height(60.dp))
122+
Spacer(modifier = Modifier.height(80.dp))
110123

111-
Image(
112-
painter = painterResource(id = R.drawable.img_challenge_loading),
113-
contentDescription = null,
114-
modifier = Modifier.size(150.dp)
124+
LottieAnimation(
125+
composition = composition,
126+
progress = { progress },
127+
modifier = Modifier
128+
.fillMaxWidth()
129+
.padding(horizontal = 105.dp)
130+
.aspectRatio(130f / 154f)
131+
.align(Alignment.CenterHorizontally)
132+
.noRippleClickable(onClick = onClick)
115133
)
116134

117135
Spacer(modifier = Modifier.height(80.dp))

app/src/main/java/com/cherrish/android/presentation/mypage/MyPageScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ private fun MyPageScreen(
7272
)
7373

7474
HorizontalDivider(
75-
color = CherrishTheme.colors.gray100,
75+
color = CherrishTheme.colors.gray200,
7676
thickness = 10.dp
7777
)
7878

@@ -94,7 +94,7 @@ private fun MyPageScreen(
9494
Spacer(Modifier.weight(weight = 120f))
9595

9696
HorizontalDivider(
97-
color = CherrishTheme.colors.gray100,
97+
color = CherrishTheme.colors.gray200,
9898
thickness = 10.dp
9999
)
100100
}

app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt

Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
11
package com.cherrish.android.presentation.splash
22

3-
import androidx.compose.foundation.Image
43
import androidx.compose.foundation.layout.Column
54
import androidx.compose.foundation.layout.PaddingValues
65
import androidx.compose.foundation.layout.Spacer
6+
import androidx.compose.foundation.layout.aspectRatio
77
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
89
import androidx.compose.foundation.layout.height
910
import androidx.compose.foundation.layout.padding
10-
import androidx.compose.foundation.layout.size
1111
import androidx.compose.runtime.Composable
12-
import androidx.compose.runtime.LaunchedEffect
12+
import androidx.compose.runtime.getValue
13+
import androidx.compose.runtime.rememberCoroutineScope
1314
import androidx.compose.ui.Alignment
1415
import androidx.compose.ui.Modifier
1516
import androidx.compose.ui.draw.drawBehind
1617
import androidx.compose.ui.geometry.Offset
1718
import androidx.compose.ui.graphics.Brush
18-
import androidx.compose.ui.graphics.vector.ImageVector
19-
import androidx.compose.ui.res.painterResource
20-
import androidx.compose.ui.res.vectorResource
2119
import androidx.compose.ui.tooling.preview.Preview
2220
import androidx.compose.ui.unit.dp
2321
import androidx.hilt.navigation.compose.hiltViewModel
22+
import androidx.lifecycle.Lifecycle
23+
import androidx.lifecycle.compose.LifecycleEventEffect
24+
import com.airbnb.lottie.compose.LottieAnimation
25+
import com.airbnb.lottie.compose.LottieCompositionSpec
26+
import com.airbnb.lottie.compose.LottieConstants
27+
import com.airbnb.lottie.compose.animateLottieCompositionAsState
28+
import com.airbnb.lottie.compose.rememberLottieComposition
2429
import com.cherrish.android.R
2530
import com.cherrish.android.core.common.extension.collectLatestSideEffect
2631
import com.cherrish.android.core.designsystem.theme.CherrishTheme
2732
import kotlinx.coroutines.delay
33+
import kotlinx.coroutines.launch
2834

2935
@Composable
3036
fun SplashRoute(
@@ -33,20 +39,19 @@ fun SplashRoute(
3339
paddingValues: PaddingValues,
3440
viewModel: SplashViewModel = hiltViewModel()
3541
) {
36-
LaunchedEffect(Unit) {
37-
viewModel.isAutoLoginCheck()
42+
val scope = rememberCoroutineScope()
43+
44+
LifecycleEventEffect(Lifecycle.Event.ON_START) {
45+
scope.launch {
46+
delay(3000)
47+
viewModel.isAutoLoginCheck()
48+
}
3849
}
3950

4051
viewModel.sideEffect.collectLatestSideEffect { sideEffect ->
41-
delay(3000)
42-
4352
when (sideEffect) {
44-
SplashSideEffect.NavigateToOnboarding -> {
45-
navigateToOnboarding()
46-
}
47-
SplashSideEffect.NavigateToHome -> {
48-
navigateToHome()
49-
}
53+
SplashSideEffect.NavigateToOnboarding -> navigateToOnboarding()
54+
SplashSideEffect.NavigateToHome -> navigateToHome()
5055
}
5156
}
5257

@@ -60,6 +65,15 @@ private fun SplashScreen(
6065
paddingValues: PaddingValues,
6166
modifier: Modifier = Modifier
6267
) {
68+
val composition by rememberLottieComposition(
69+
LottieCompositionSpec.RawRes(R.raw.lt_challenge_loading)
70+
)
71+
val progress by animateLottieCompositionAsState(
72+
composition,
73+
iterations = LottieConstants.IterateForever,
74+
isPlaying = true
75+
)
76+
6377
val gradationColors = listOf(CherrishTheme.colors.gradation, CherrishTheme.colors.gradation2)
6478

6579
Column(
@@ -77,19 +91,18 @@ private fun SplashScreen(
7791
) {
7892
Spacer(modifier = Modifier.weight(283f))
7993

80-
Image(
81-
painter = painterResource(id = R.drawable.ic_app_logo),
82-
contentDescription = null,
83-
modifier = Modifier.size(width = 114.dp, height = 100.dp)
94+
LottieAnimation(
95+
composition = composition,
96+
progress = { progress },
97+
modifier = Modifier
98+
.fillMaxWidth()
99+
.padding(horizontal = 105.dp)
100+
.aspectRatio(130f / 154f)
101+
.align(Alignment.CenterHorizontally)
84102
)
85103

86104
Spacer(modifier = Modifier.height(14.dp))
87105

88-
Image(
89-
imageVector = ImageVector.vectorResource(id = R.drawable.ic_app_logo_title),
90-
contentDescription = null
91-
)
92-
93106
Spacer(modifier = Modifier.weight(298f))
94107
}
95108
}

0 commit comments

Comments
 (0)