From 9b3de66e0d79ff720a27d5e19e0539e21bbabedf Mon Sep 17 00:00:00 2001 From: Hyemin <143622050+hyeminililo@users.noreply.github.com> Date: Fri, 23 Jan 2026 06:45:09 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[FIX/#153]=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=ED=82=A4=EB=B3=B4=EB=93=9C=20=EC=9D=B4=EC=8A=88=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OnboardingInformationScreen.kt | 216 ++++++++++++------ 1 file changed, 146 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt index 02c6407f..cf0f46fa 100644 --- a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt @@ -1,29 +1,45 @@ package com.cherrish.android.presentation.onboarding.information +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background +import androidx.compose.foundation.gestures.awaitEachGesture +import androidx.compose.foundation.gestures.awaitFirstDown +import androidx.compose.foundation.gestures.waitForUpOrCancellation import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.WindowInsetsSides import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.imePadding -import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.ime +import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.windowInsetsPadding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.rememberLazyListState + +import androidx.compose.foundation.relocation.BringIntoViewRequester +import androidx.compose.foundation.relocation.bringIntoViewRequester import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.Color +import androidx.compose.ui.input.pointer.PointerEventPass +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.text.input.ImeAction @@ -33,7 +49,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.cherrish.android.core.common.extension.addFocusCleaner import com.cherrish.android.core.common.extension.collectLatestSideEffect import com.cherrish.android.core.designsystem.component.button.CherrishButton import com.cherrish.android.core.designsystem.component.textfield.CherrishTextField @@ -69,6 +84,8 @@ fun OnboardingInformationRoute( ) } + +@OptIn(ExperimentalFoundationApi::class) @Composable private fun OnboardingInformationScreen( paddingValues: PaddingValues, @@ -84,82 +101,139 @@ private fun OnboardingInformationScreen( ) { val focusManager = LocalFocusManager.current val keyboardController = LocalSoftwareKeyboardController.current + val density = LocalDensity.current + + val nameFocusRequester = remember { FocusRequester() } val ageFocusRequester = remember { FocusRequester() } + var isNameFocused by remember { mutableStateOf(false) } var isAgeFocused by remember { mutableStateOf(false) } - Scaffold( - bottomBar = { - CherrishButton( - text = "다음", - onClick = onNextClick, - enabled = enabled, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 24.dp, vertical = 30.dp) - .background(CherrishTheme.colors.gray0) - .navigationBarsPadding() + val coroutineScope = rememberCoroutineScope() + + val bringIntoViewRequester = remember { BringIntoViewRequester() } - ) + LaunchedEffect(isNameFocused, isAgeFocused) { + if (isNameFocused || isAgeFocused) { + delay(300) + bringIntoViewRequester.bringIntoView() } - ) { innerPadding -> - Column( - modifier = modifier - .fillMaxSize() - .background(color = CherrishTheme.colors.gray0) - .addFocusCleaner(focusManager) - .padding(paddingValues = paddingValues) - .imePadding() + } + + val listState = rememberLazyListState() + val imeBottom = WindowInsets.ime.getBottom(density) + val imeBottomDp = with(density) { imeBottom.toDp() } + val bottomInset = if (imeBottomDp > 0.dp) 0.dp else paddingValues.calculateBottomPadding() + + Column( + modifier = modifier + .fillMaxSize() + .background(color = CherrishTheme.colors.gray0) + ) { + LazyColumn( + state = listState, + modifier = Modifier + .fillMaxWidth() + .weight(1f), + contentPadding = PaddingValues(bottom = 24.dp) ) { - Spacer(modifier = Modifier.weight(135f)) - UserInfoHeader() - Spacer(modifier = Modifier.weight(70f)) + item { + Spacer(modifier = Modifier.height(157.dp)) + } + + stickyHeader { + Column( + modifier = Modifier + .fillMaxWidth() + .background(CherrishTheme.colors.gray0) + ) { + UserInfoHeader() + } + } - UserInfoTextField( - textFieldName = "이름", - value = username, - onValueChange = onNameChange, - placeholder = "김체리", - keyboardImeAction = ImeAction.Next, - onNextAction = { ageFocusRequester.requestFocus() }, - keyboardType = KeyboardType.Text, - errorText = "이름은 최대 7자까지 입력 가능합니다.", - errorCase = nameErrorCase - ) + item { + Spacer(modifier = Modifier.height(70.dp)) + } - Spacer(modifier = Modifier.weight(30f)) + item { + Column( + modifier = Modifier + .bringIntoViewRequester(bringIntoViewRequester) + .windowInsetsPadding(WindowInsets.ime.only(WindowInsetsSides.Bottom)) + ) { + UserInfoTextField( + textFieldName = "이름", + value = username, + onValueChange = onNameChange, + placeholder = "김체리", + keyboardImeAction = ImeAction.Next, + onNextAction = { ageFocusRequester.requestFocus() }, + keyboardType = KeyboardType.Text, + errorText = "이름은 최대 7자까지 입력 가능합니다.", + errorCase = nameErrorCase, + textFieldModifier = Modifier + .focusRequester(nameFocusRequester) + .pointerInput(Unit) { + awaitEachGesture { + awaitFirstDown(pass = PointerEventPass.Initial) + nameFocusRequester.requestFocus() + waitForUpOrCancellation() + } + } + .onFocusChanged { state -> + isNameFocused = state.isFocused + } + ) - UserInfoTextField( - textFieldName = "나이", - value = age, - onValueChange = onAgeChange, - placeholder = "20", - keyboardImeAction = ImeAction.Done, - onDoneAction = { - keyboardController?.hide() - kotlinx.coroutines.MainScope().launch { - delay(100) - focusManager.clearFocus() - } - }, - keyboardType = KeyboardType.Number, - visualTransformation = if (isAgeFocused) { - VisualTransformation.None - } else { - AgeSuffixTransformation(" 세") - }, - errorText = "입력 가능한 최대 나이 100세를 초과했습니다.", - errorCase = ageErrorCase, - modifier = Modifier - .focusRequester(ageFocusRequester) - .onFocusChanged { state -> - isAgeFocused = state.isFocused - } - ) + Spacer(modifier = Modifier.height(30.dp)) - Spacer(modifier = Modifier.weight(200f)) + UserInfoTextField( + textFieldName = "나이", + value = age, + onValueChange = onAgeChange, + placeholder = "20", + keyboardImeAction = ImeAction.Done, + onDoneAction = { + keyboardController?.hide() + coroutineScope.launch { + delay(100) + focusManager.clearFocus() + } + }, + keyboardType = KeyboardType.Number, + visualTransformation = if (isAgeFocused) VisualTransformation.None else AgeSuffixTransformation( + " 세" + ), + errorText = "입력 가능한 최대 나이 100세를 초과했습니다.", + errorCase = ageErrorCase, + textFieldModifier = Modifier + .focusRequester(ageFocusRequester) + .pointerInput(Unit) { + awaitEachGesture { + awaitFirstDown(pass = PointerEventPass.Initial) + ageFocusRequester.requestFocus() + waitForUpOrCancellation() + } + } + .onFocusChanged { state -> + isAgeFocused = state.isFocused + } + ) + } - Spacer(modifier = Modifier.padding(innerPadding.calculateBottomPadding())) + Spacer(modifier = Modifier.height(24.dp)) + } } + + CherrishButton( + text = "다음", + onClick = onNextClick, + enabled = enabled, + modifier = Modifier + .fillMaxWidth() + .background(CherrishTheme.colors.gray0) + .padding(horizontal = 24.dp) + .padding(top = 30.dp, bottom = 30.dp + bottomInset) + ) } } @@ -168,7 +242,7 @@ private fun UserInfoHeader() { Column( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 26.dp), + .padding(horizontal = 15.dp), verticalArrangement = Arrangement.spacedBy(4.dp) ) { Text( @@ -195,6 +269,7 @@ private fun UserInfoTextField( keyboardType: KeyboardType, errorText: String, modifier: Modifier = Modifier, + textFieldModifier: Modifier = Modifier, onNextAction: () -> Unit = {}, onDoneAction: () -> Unit = {}, visualTransformation: VisualTransformation = VisualTransformation.None, @@ -227,7 +302,7 @@ private fun UserInfoTextField( onDoneAction = onDoneAction, keyboardType = keyboardType, visualTransformation = visualTransformation, - modifier = Modifier.fillMaxWidth() + modifier = textFieldModifier.fillMaxWidth() ) Spacer(modifier = Modifier.height(4.dp)) @@ -240,6 +315,7 @@ private fun UserInfoTextField( } } + @Preview(showBackground = true) @Composable private fun Preview() { From 49565f63b83c8945ce4b4225c0aa963ca2542d11 Mon Sep 17 00:00:00 2001 From: Hyemin <143622050+hyeminililo@users.noreply.github.com> Date: Fri, 23 Jan 2026 07:14:47 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[FIX/#153]=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=ED=82=A4=EB=B3=B4=EB=93=9C=20=EC=B6=94=EA=B0=80=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/information/OnboardingInformationScreen.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt index cf0f46fa..573bcec9 100644 --- a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt @@ -1,5 +1,6 @@ package com.cherrish.android.presentation.onboarding.information +import androidx.compose.animation.core.animateDpAsState import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.gestures.awaitEachGesture @@ -122,7 +123,8 @@ private fun OnboardingInformationScreen( val listState = rememberLazyListState() val imeBottom = WindowInsets.ime.getBottom(density) val imeBottomDp = with(density) { imeBottom.toDp() } - val bottomInset = if (imeBottomDp > 0.dp) 0.dp else paddingValues.calculateBottomPadding() + val targetBottomInset = if (imeBottomDp > 0.dp) 0.dp else paddingValues.calculateBottomPadding() + val bottomInset by animateDpAsState(targetValue = targetBottomInset, label = "bottomInset") Column( modifier = modifier From 34b0abe5b6360c7c7e253983de8d3c46e76f4b38 Mon Sep 17 00:00:00 2001 From: Hyemin <143622050+hyeminililo@users.noreply.github.com> Date: Fri, 23 Jan 2026 07:17:23 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[CHORE/#153]=20Lint=20=EC=8B=A4=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../information/OnboardingInformationScreen.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt index 573bcec9..c816dd33 100644 --- a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationScreen.kt @@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.rememberLazyListState - import androidx.compose.foundation.relocation.BringIntoViewRequester import androidx.compose.foundation.relocation.bringIntoViewRequester import androidx.compose.foundation.shape.RoundedCornerShape @@ -85,7 +84,6 @@ fun OnboardingInformationRoute( ) } - @OptIn(ExperimentalFoundationApi::class) @Composable private fun OnboardingInformationScreen( @@ -202,9 +200,13 @@ private fun OnboardingInformationScreen( } }, keyboardType = KeyboardType.Number, - visualTransformation = if (isAgeFocused) VisualTransformation.None else AgeSuffixTransformation( - " 세" - ), + visualTransformation = if (isAgeFocused) { + VisualTransformation.None + } else { + AgeSuffixTransformation( + " 세" + ) + }, errorText = "입력 가능한 최대 나이 100세를 초과했습니다.", errorCase = ageErrorCase, textFieldModifier = Modifier @@ -317,7 +319,6 @@ private fun UserInfoTextField( } } - @Preview(showBackground = true) @Composable private fun Preview() { From 5c302cc9e032979123f35cdb3d7a03da099a8e43 Mon Sep 17 00:00:00 2001 From: sohee <144779368+sohee6989@users.noreply.github.com> Date: Fri, 23 Jan 2026 17:55:27 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[CHORE/#143]=20=EB=84=A4=EB=B9=84=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/presentation/main/MainScreen.kt | 1 - .../information/OnboardingInformationViewModel.kt | 9 +++------ .../android/presentation/splash/SplashScreen.kt | 9 +++------ .../presentation/splash/SplashSideEffect.kt | 1 - .../presentation/splash/SplashViewModel.kt | 15 +++------------ .../splash/navigation/SplashNavigation.kt | 2 -- 6 files changed, 9 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/main/MainScreen.kt b/app/src/main/java/com/cherrish/android/presentation/main/MainScreen.kt index 2449615a..8eda6733 100644 --- a/app/src/main/java/com/cherrish/android/presentation/main/MainScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/main/MainScreen.kt @@ -63,7 +63,6 @@ fun MainScreen( ) { splashNavGraph( navigateToOnboarding = appState::navigateToOnboarding, - navigateToHome = appState::navigateToHome, paddingValues = innerPadding ) diff --git a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt index a5d51736..5a8d557d 100644 --- a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt @@ -3,11 +3,9 @@ package com.cherrish.android.presentation.onboarding.information import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.cherrish.android.core.common.extension.onLogFailure -import com.cherrish.android.core.local.TokenManager import com.cherrish.android.data.model.OnboardingProfileRequestModel import com.cherrish.android.data.repository.OnboardingProfileRepository import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharedFlow @@ -16,11 +14,11 @@ import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch +import javax.inject.Inject @HiltViewModel class OnboardingInformationViewModel @Inject constructor( - private val onboardingProfileRepository: OnboardingProfileRepository, - private val tokenManager: TokenManager + private val onboardingProfileRepository: OnboardingProfileRepository ) : ViewModel() { private val _uiState = MutableStateFlow(InformationUiState()) val uiState: StateFlow = _uiState.asStateFlow() @@ -43,7 +41,7 @@ class OnboardingInformationViewModel @Inject constructor( _uiState.update { it.copy(age = filtered) } } - fun onAgeErrorCase(age: String): Boolean = age.toIntOrNull() ?.let { it > 100 } ?: false + fun onAgeErrorCase(age: String): Boolean = age.toIntOrNull()?.let { it > 100 } ?: false fun onNextClicked() { val age = uiState.value.age.toIntOrNull() ?: return @@ -55,7 +53,6 @@ class OnboardingInformationViewModel @Inject constructor( age = age ) ).onSuccess { response -> - tokenManager.saveId(response.id) _sideEffect.emit(InformationSideEffect.NavigateToHome) }.onLogFailure {} } diff --git a/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt b/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt index 52762218..00372cf0 100644 --- a/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt @@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment @@ -19,8 +20,6 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.compose.LifecycleEventEffect import com.airbnb.lottie.compose.LottieAnimation import com.airbnb.lottie.compose.LottieCompositionSpec import com.airbnb.lottie.compose.LottieConstants @@ -35,23 +34,21 @@ import kotlinx.coroutines.launch @Composable fun SplashRoute( navigateToOnboarding: () -> Unit, - navigateToHome: () -> Unit, paddingValues: PaddingValues, viewModel: SplashViewModel = hiltViewModel() ) { val scope = rememberCoroutineScope() - LifecycleEventEffect(Lifecycle.Event.ON_START) { + LaunchedEffect (Unit) { scope.launch { delay(3000) - viewModel.isAutoLoginCheck() + viewModel.navigateToOnboarding() } } viewModel.sideEffect.collectLatestSideEffect { sideEffect -> when (sideEffect) { SplashSideEffect.NavigateToOnboarding -> navigateToOnboarding() - SplashSideEffect.NavigateToHome -> navigateToHome() } } diff --git a/app/src/main/java/com/cherrish/android/presentation/splash/SplashSideEffect.kt b/app/src/main/java/com/cherrish/android/presentation/splash/SplashSideEffect.kt index f1e660a0..95368757 100644 --- a/app/src/main/java/com/cherrish/android/presentation/splash/SplashSideEffect.kt +++ b/app/src/main/java/com/cherrish/android/presentation/splash/SplashSideEffect.kt @@ -2,5 +2,4 @@ package com.cherrish.android.presentation.splash sealed interface SplashSideEffect { data object NavigateToOnboarding : SplashSideEffect - data object NavigateToHome : SplashSideEffect } diff --git a/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt index a62445dc..65bfcc34 100644 --- a/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt @@ -2,31 +2,22 @@ package com.cherrish.android.presentation.splash import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.cherrish.android.core.local.TokenManager import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.launch +import javax.inject.Inject @HiltViewModel -class SplashViewModel @Inject constructor( - private val tokenManager: TokenManager -) : ViewModel() { +class SplashViewModel @Inject constructor() : ViewModel() { private val _sideEffect = MutableSharedFlow() val sideEffect: SharedFlow = _sideEffect.asSharedFlow() - fun isAutoLoginCheck() { + fun navigateToOnboarding() { viewModelScope.launch { - val id = tokenManager.getId() _sideEffect.emit( SplashSideEffect.NavigateToOnboarding -// if (id != null) { -// SplashSideEffect.NavigateToHome -// } else { -// SplashSideEffect.NavigateToOnboarding -// } ) } } diff --git a/app/src/main/java/com/cherrish/android/presentation/splash/navigation/SplashNavigation.kt b/app/src/main/java/com/cherrish/android/presentation/splash/navigation/SplashNavigation.kt index 848e6d5e..20e76700 100644 --- a/app/src/main/java/com/cherrish/android/presentation/splash/navigation/SplashNavigation.kt +++ b/app/src/main/java/com/cherrish/android/presentation/splash/navigation/SplashNavigation.kt @@ -18,13 +18,11 @@ fun NavController.navigateToSplash(navOptions: NavOptions? = null) { fun NavGraphBuilder.splashNavGraph( navigateToOnboarding: () -> Unit, - navigateToHome: () -> Unit, paddingValues: PaddingValues ) { composable { SplashRoute( navigateToOnboarding = navigateToOnboarding, - navigateToHome = navigateToHome, paddingValues = paddingValues ) } From b8139b430d94cd2766dfc55938b19edb990bad17 Mon Sep 17 00:00:00 2001 From: Kim Nahyeon Date: Fri, 23 Jan 2026 19:18:15 +0900 Subject: [PATCH 5/5] [CHORE/#153] Lint format --- .../onboarding/information/OnboardingInformationViewModel.kt | 2 +- .../com/cherrish/android/presentation/splash/SplashScreen.kt | 2 +- .../com/cherrish/android/presentation/splash/SplashViewModel.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt index 5a8d557d..b9659d15 100644 --- a/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/onboarding/information/OnboardingInformationViewModel.kt @@ -6,6 +6,7 @@ import com.cherrish.android.core.common.extension.onLogFailure import com.cherrish.android.data.model.OnboardingProfileRequestModel import com.cherrish.android.data.repository.OnboardingProfileRepository import dagger.hilt.android.lifecycle.HiltViewModel +import javax.inject.Inject import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharedFlow @@ -14,7 +15,6 @@ import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import javax.inject.Inject @HiltViewModel class OnboardingInformationViewModel @Inject constructor( diff --git a/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt b/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt index 00372cf0..cf5d10f9 100644 --- a/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/splash/SplashScreen.kt @@ -39,7 +39,7 @@ fun SplashRoute( ) { val scope = rememberCoroutineScope() - LaunchedEffect (Unit) { + LaunchedEffect(Unit) { scope.launch { delay(3000) viewModel.navigateToOnboarding() diff --git a/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt index 65bfcc34..4147365e 100644 --- a/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt @@ -3,11 +3,11 @@ package com.cherrish.android.presentation.splash import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel +import javax.inject.Inject import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.launch -import javax.inject.Inject @HiltViewModel class SplashViewModel @Inject constructor() : ViewModel() {