From bf662b2e6a7bf2b289f374d79959d5d28775f5e1 Mon Sep 17 00:00:00 2001 From: flash159483 Date: Mon, 15 Jul 2024 21:11:58 +0900 Subject: [PATCH 1/6] =?UTF-8?q?[CHORE]#29:=20AuthActivity=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 9 +++++++-- .../main/kotlin/com/bff/wespot/auth/AuthActivity.kt | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 045b6bbf..fcc3e80d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,6 @@ xmlns:tools="http://schemas.android.com/tools"> - + + + + Date: Mon, 15 Jul 2024 21:32:18 +0900 Subject: [PATCH 2/6] =?UTF-8?q?[CHORE]#29:=20SideEffect=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EB=8C=80=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/bff/wespot/MainActivity.kt | 17 ---- .../com/bff/wespot/auth/AuthActivity.kt | 79 ++++++++++++++++++- .../com/bff/wespot/auth/screen/ClassScreen.kt | 10 +-- .../com/bff/wespot/auth/screen/EditScreen.kt | 32 +++----- .../bff/wespot/auth/screen/GenderScreen.kt | 14 ++-- .../com/bff/wespot/auth/screen/GradeScreen.kt | 14 ++-- .../com/bff/wespot/auth/screen/NameScreen.kt | 10 +-- .../bff/wespot/auth/screen/SchoolScreen.kt | 10 +-- .../com/bff/wespot/auth/state/AuthAction.kt | 14 ++++ .../bff/wespot/auth/state/AuthSideEffect.kt | 11 ++- .../wespot/auth/viewmodel/AuthViewModel.kt | 27 +++++++ 11 files changed, 163 insertions(+), 75 deletions(-) diff --git a/app/src/main/kotlin/com/bff/wespot/MainActivity.kt b/app/src/main/kotlin/com/bff/wespot/MainActivity.kt index 52189dba..066592fc 100644 --- a/app/src/main/kotlin/com/bff/wespot/MainActivity.kt +++ b/app/src/main/kotlin/com/bff/wespot/MainActivity.kt @@ -20,24 +20,7 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) setContent { - val navController = rememberNavController() - val engine = rememberNavHostEngine() - val viewModel: AuthViewModel = viewModel() - WeSpotTheme { - Surface( - modifier = Modifier.fillMaxSize(), - ) { - DestinationsNavHost( - navGraph = NavGraphs.root, - navController = navController, - engine = engine, - dependenciesContainerBuilder = { - dependency(viewModel) - }, - ) - } - } } } } diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt index 00a678a0..4bfc136e 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt @@ -2,10 +2,87 @@ package com.bff.wespot.auth import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.Surface +import androidx.compose.ui.Modifier +import androidx.lifecycle.viewmodel.compose.viewModel +import androidx.navigation.compose.rememberNavController +import com.bff.wespot.auth.screen.NavGraphs +import com.bff.wespot.auth.screen.destinations.ClassScreenDestination +import com.bff.wespot.auth.screen.destinations.CompleteScreenDestination +import com.bff.wespot.auth.screen.destinations.EditScreenDestination +import com.bff.wespot.auth.screen.destinations.GenderScreenDestination +import com.bff.wespot.auth.screen.destinations.GradeScreenDestination +import com.bff.wespot.auth.screen.destinations.NameScreenDestination +import com.bff.wespot.auth.screen.destinations.SchoolScreenDestination +import com.bff.wespot.auth.state.AuthSideEffect +import com.bff.wespot.auth.viewmodel.AuthViewModel +import com.bff.wespot.designsystem.theme.WeSpotTheme +import com.ramcosta.composedestinations.DestinationsNavHost +import com.ramcosta.composedestinations.navigation.dependency +import com.ramcosta.composedestinations.navigation.navigate +import com.ramcosta.composedestinations.rememberNavHostEngine +import org.orbitmvi.orbit.compose.collectSideEffect class AuthActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + setContent { + val navController = rememberNavController() + val engine = rememberNavHostEngine() + val viewModel: AuthViewModel = viewModel() + + viewModel.collectSideEffect { + when (it) { + AuthSideEffect.PopBackStack -> navController.popBackStack() + is AuthSideEffect.NavigateToGradeScreen -> { + navController.navigate(GradeScreenDestination(it.edit)) + } + + is AuthSideEffect.NavigateToSchoolScreen -> { + navController.navigate(SchoolScreenDestination(it.edit)) + } + + is AuthSideEffect.NavigateToClassScreen -> { + navController.navigate(ClassScreenDestination(it.edit)) + } + + is AuthSideEffect.NavigateToGenderScreen -> { + navController.navigate(GenderScreenDestination(it.edit)) + } + + is AuthSideEffect.NavigateToNameScreen -> { + navController.navigate(NameScreenDestination(it.edit)) + } + + AuthSideEffect.NavigateToEditScreen -> { + navController.navigate(EditScreenDestination) + } + + AuthSideEffect.NavigateToCompleteScreen -> { + navController.navigate(CompleteScreenDestination, navOptionsBuilder = { + popUpTo(SchoolScreenDestination.route) { inclusive = true } + }) + } + } + } + + + WeSpotTheme { + Surface( + modifier = Modifier.fillMaxSize(), + ) { + DestinationsNavHost( + navGraph = NavGraphs.root, + navController = navController, + engine = engine, + dependenciesContainerBuilder = { + dependency(viewModel) + }, + ) + } + } + } } } \ No newline at end of file diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/ClassScreen.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/ClassScreen.kt index 13f19fe0..e784a674 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/ClassScreen.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/ClassScreen.kt @@ -23,8 +23,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import com.bff.wespot.auth.R -import com.bff.wespot.auth.screen.destinations.GenderScreenDestination import com.bff.wespot.auth.state.AuthAction +import com.bff.wespot.auth.state.NavigationAction import com.bff.wespot.auth.viewmodel.AuthViewModel import com.bff.wespot.designsystem.component.button.WSButton import com.bff.wespot.designsystem.component.header.WSTopBar @@ -32,7 +32,6 @@ import com.bff.wespot.designsystem.component.input.WsTextField import com.bff.wespot.designsystem.theme.StaticTypeScale import com.bff.wespot.designsystem.theme.WeSpotThemeManager import com.ramcosta.composedestinations.annotation.Destination -import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.coroutines.delay import org.orbitmvi.orbit.compose.collectAsState @@ -42,7 +41,6 @@ import org.orbitmvi.orbit.compose.collectAsState fun ClassScreen( viewModel: AuthViewModel, edit: Boolean, - navigator: DestinationsNavigator, ) { val keyboard = LocalSoftwareKeyboardController.current @@ -56,7 +54,7 @@ fun ClassScreen( title = stringResource(id = R.string.register), canNavigateBack = true, navigateUp = { - navigator.navigateUp() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) }, ) }, @@ -120,10 +118,10 @@ fun ClassScreen( WSButton( onClick = { if (edit) { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) return@WSButton } - navigator.navigate(GenderScreenDestination(edit = false)) + action(AuthAction.Navigation(NavigationAction.NavigateToGenderScreen(false))) }, text = stringResource( id = if (edit) { diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/EditScreen.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/EditScreen.kt index 6c208bfc..38b3bd50 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/EditScreen.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/EditScreen.kt @@ -29,14 +29,9 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import androidx.navigation.NavOptions import com.bff.wespot.auth.R -import com.bff.wespot.auth.screen.destinations.ClassScreenDestination -import com.bff.wespot.auth.screen.destinations.CompleteScreenDestination -import com.bff.wespot.auth.screen.destinations.GenderScreenDestination -import com.bff.wespot.auth.screen.destinations.GradeScreenDestination -import com.bff.wespot.auth.screen.destinations.NameScreenDestination -import com.bff.wespot.auth.screen.destinations.SchoolScreenDestination +import com.bff.wespot.auth.state.AuthAction +import com.bff.wespot.auth.state.NavigationAction import com.bff.wespot.auth.viewmodel.AuthViewModel import com.bff.wespot.designsystem.component.button.WSButton import com.bff.wespot.designsystem.component.button.WSButtonType @@ -45,7 +40,6 @@ import com.bff.wespot.designsystem.theme.StaticTypeScale import com.bff.wespot.designsystem.theme.WeSpotThemeManager import com.bff.wespot.ui.WSBottomSheet import com.ramcosta.composedestinations.annotation.Destination -import com.ramcosta.composedestinations.navigation.DestinationsNavigator import org.orbitmvi.orbit.compose.collectAsState @OptIn(ExperimentalMaterial3Api::class) @@ -53,9 +47,9 @@ import org.orbitmvi.orbit.compose.collectAsState @Composable fun EditScreen( viewModel: AuthViewModel, - navigator: DestinationsNavigator, ) { val state by viewModel.collectAsState() + val action = viewModel::onAction var firstEnter by remember { mutableStateOf(true) @@ -70,7 +64,7 @@ fun EditScreen( title = stringResource(id = R.string.register), canNavigateBack = true, navigateUp = { - navigator.navigateUp() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) }, ) }, @@ -83,7 +77,7 @@ fun EditScreen( title = stringResource(id = R.string.name), value = state.name, ) { - navigator.navigate(NameScreenDestination(edit = true)) + action(AuthAction.Navigation(NavigationAction.NavigateToNameScreen(true))) } EditField( @@ -94,28 +88,28 @@ fun EditScreen( stringResource(id = R.string.female_student) }, ) { - navigator.navigate(GenderScreenDestination(edit = true)) + action(AuthAction.Navigation(NavigationAction.NavigateToGenderScreen(true))) } EditField( title = stringResource(id = R.string.get_class), value = state.classNumber.toString(), ) { - navigator.navigate(ClassScreenDestination(edit = true)) + action(AuthAction.Navigation(NavigationAction.NavigateToClassScreen(true))) } EditField( title = stringResource(id = R.string.grade), value = "${state.grade}학년", ) { - navigator.navigate(GradeScreenDestination(edit = true)) + action(AuthAction.Navigation(NavigationAction.NavigateToGradeScreen(true))) } EditField( title = stringResource(id = R.string.school), value = state.selectedSchool?.name ?: "", ) { - navigator.navigate(SchoolScreenDestination(edit = true)) + action(AuthAction.Navigation(NavigationAction.NavigateToSchoolScreen(true))) } } } @@ -148,13 +142,7 @@ fun EditScreen( if (register) { WSBottomSheet(closeSheet = { register = true }) { RegisterBottomSheetContent { - navigator.navigate( - CompleteScreenDestination, - navOptions = NavOptions - .Builder() - .setPopUpTo(SchoolScreenDestination.route, inclusive = true) - .build(), - ) + action(AuthAction.Navigation(NavigationAction.NavigateToCompleteScreen)) } } } diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GenderScreen.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GenderScreen.kt index f16ce8f9..98da904b 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GenderScreen.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GenderScreen.kt @@ -27,14 +27,13 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.bff.wespot.auth.R -import com.bff.wespot.auth.screen.destinations.NameScreenDestination import com.bff.wespot.auth.state.AuthAction +import com.bff.wespot.auth.state.NavigationAction import com.bff.wespot.auth.viewmodel.AuthViewModel import com.bff.wespot.designsystem.component.header.WSTopBar import com.bff.wespot.designsystem.theme.StaticTypeScale import com.bff.wespot.designsystem.theme.WeSpotThemeManager import com.ramcosta.composedestinations.annotation.Destination -import com.ramcosta.composedestinations.navigation.DestinationsNavigator import org.orbitmvi.orbit.compose.collectAsState @OptIn(ExperimentalMaterial3Api::class) @@ -43,7 +42,6 @@ import org.orbitmvi.orbit.compose.collectAsState fun GenderScreen( viewModel: AuthViewModel, edit: Boolean, - navigator: DestinationsNavigator, ) { val state by viewModel.collectAsState() val action = viewModel::onAction @@ -54,7 +52,7 @@ fun GenderScreen( title = stringResource(id = R.string.register), canNavigateBack = true, navigateUp = { - navigator.navigateUp() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) }, ) }, @@ -87,10 +85,10 @@ fun GenderScreen( onClicked = { action(AuthAction.OnGenderChanged("male")) if (edit) { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) return@GenderBox } - navigator.navigate(NameScreenDestination(edit = false)) + action(AuthAction.Navigation(NavigationAction.NavigateToNameScreen(false))) }, ) GenderBox( @@ -102,10 +100,10 @@ fun GenderScreen( onClicked = { action(AuthAction.OnGenderChanged("female")) if (edit) { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) return@GenderBox } - navigator.navigate(NameScreenDestination(edit = false)) + action(AuthAction.Navigation(NavigationAction.NavigateToNameScreen(false))) }, ) } diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GradeScreen.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GradeScreen.kt index 7c4c397e..97932414 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GradeScreen.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/GradeScreen.kt @@ -25,8 +25,8 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.bff.wespot.auth.R -import com.bff.wespot.auth.screen.destinations.ClassScreenDestination import com.bff.wespot.auth.state.AuthAction +import com.bff.wespot.auth.state.NavigationAction import com.bff.wespot.auth.viewmodel.AuthViewModel import com.bff.wespot.designsystem.component.button.WSButton import com.bff.wespot.designsystem.component.button.WSOutlineButton @@ -37,7 +37,6 @@ import com.bff.wespot.designsystem.theme.StaticTypeScale import com.bff.wespot.designsystem.theme.WeSpotThemeManager import com.bff.wespot.ui.WSBottomSheet import com.ramcosta.composedestinations.annotation.Destination -import com.ramcosta.composedestinations.navigation.DestinationsNavigator import org.orbitmvi.orbit.compose.collectAsState @OptIn(ExperimentalMaterial3Api::class) @@ -46,7 +45,6 @@ import org.orbitmvi.orbit.compose.collectAsState fun GradeScreen( viewModel: AuthViewModel, edit: Boolean, - navigator: DestinationsNavigator, ) { val state by viewModel.collectAsState() val action = viewModel::onAction @@ -60,7 +58,7 @@ fun GradeScreen( title = stringResource(id = R.string.register), canNavigateBack = true, navigateUp = { - navigator.navigateUp() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) }, ) }, @@ -141,10 +139,10 @@ fun GradeScreen( action(AuthAction.OnGradeChanged(grade)) if (edit) { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) return@BottomSheetContent } - navigator.navigate(ClassScreenDestination(edit = false)) + action(AuthAction.Navigation(NavigationAction.NavigateToClassScreen(false))) }, ) } @@ -154,10 +152,10 @@ fun GradeScreen( WSButton( onClick = { if (edit) { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) return@WSButton } - navigator.navigate(ClassScreenDestination(edit = false)) + action(AuthAction.Navigation(NavigationAction.NavigateToClassScreen(false))) }, text = stringResource( id = if (edit) { diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt index cd33dbb1..bbbcbe4d 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt @@ -23,8 +23,8 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.bff.wespot.auth.R -import com.bff.wespot.auth.screen.destinations.EditScreenDestination import com.bff.wespot.auth.state.AuthAction +import com.bff.wespot.auth.state.NavigationAction import com.bff.wespot.auth.viewmodel.AuthViewModel import com.bff.wespot.designsystem.component.button.WSButton import com.bff.wespot.designsystem.component.header.WSTopBar @@ -32,7 +32,6 @@ import com.bff.wespot.designsystem.component.input.WsTextField import com.bff.wespot.designsystem.theme.StaticTypeScale import com.bff.wespot.designsystem.theme.WeSpotThemeManager import com.ramcosta.composedestinations.annotation.Destination -import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.coroutines.delay import org.orbitmvi.orbit.compose.collectAsState @@ -42,7 +41,6 @@ import org.orbitmvi.orbit.compose.collectAsState fun NameScreen( viewModel: AuthViewModel, edit: Boolean, - navigator: DestinationsNavigator, ) { val keyboard = LocalSoftwareKeyboardController.current @@ -63,7 +61,7 @@ fun NameScreen( title = stringResource(id = R.string.register), canNavigateBack = true, navigateUp = { - navigator.navigateUp() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) }, ) }, @@ -119,10 +117,10 @@ fun NameScreen( WSButton( onClick = { if (edit) { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) return@WSButton } - navigator.navigate(EditScreenDestination) + action(AuthAction.Navigation(NavigationAction.NavigateToEditScreen)) }, text = stringResource( id = if (edit) { diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/SchoolScreen.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/SchoolScreen.kt index 4f35d4e7..dc741115 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/SchoolScreen.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/SchoolScreen.kt @@ -24,8 +24,8 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.bff.wespot.auth.R -import com.bff.wespot.auth.screen.destinations.GradeScreenDestination import com.bff.wespot.auth.state.AuthAction +import com.bff.wespot.auth.state.NavigationAction import com.bff.wespot.auth.viewmodel.AuthViewModel import com.bff.wespot.designsystem.component.button.WSButton import com.bff.wespot.designsystem.component.button.WSTextButton @@ -37,7 +37,6 @@ import com.bff.wespot.designsystem.theme.StaticTypeScale import com.bff.wespot.designsystem.theme.WeSpotThemeManager import com.bff.wespot.ui.SchoolListItem import com.ramcosta.composedestinations.annotation.Destination -import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.coroutines.delay import org.orbitmvi.orbit.compose.collectAsState @@ -45,7 +44,6 @@ import org.orbitmvi.orbit.compose.collectAsState @Destination @Composable fun SchoolScreen( - navigator: DestinationsNavigator, edit: Boolean, viewModel: AuthViewModel, ) { @@ -61,7 +59,7 @@ fun SchoolScreen( title = stringResource(id = R.string.register), canNavigateBack = edit, navigateUp = { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) }, ) }, @@ -139,10 +137,10 @@ fun SchoolScreen( WSButton( onClick = { if (edit) { - navigator.popBackStack() + action(AuthAction.Navigation(NavigationAction.PopBackStack)) return@WSButton } - navigator.navigate(GradeScreenDestination(edit = false)) + action(AuthAction.Navigation(NavigationAction.NavigateToGradeScreen(false))) }, enabled = state.selectedSchool != null, text = stringResource( diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt index 6528adca..9ab656e9 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt @@ -16,4 +16,18 @@ sealed class AuthAction { data class OnGenderChanged(val gender: String) : AuthAction() data class OnNameChanged(val name: String) : AuthAction() + + data class Navigation(val navigate: NavigationAction) : AuthAction() + } + +sealed interface NavigationAction { + data object PopBackStack : NavigationAction + data class NavigateToGradeScreen(val edit: Boolean) : NavigationAction + data class NavigateToSchoolScreen(val edit: Boolean) : NavigationAction + data class NavigateToClassScreen(val edit: Boolean) : NavigationAction + data class NavigateToGenderScreen(val edit: Boolean) : NavigationAction + data class NavigateToNameScreen(val edit: Boolean) : NavigationAction + data object NavigateToEditScreen : NavigationAction + data object NavigateToCompleteScreen : NavigationAction +} \ No newline at end of file diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt index 996b90d8..f5792fbc 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt @@ -1,3 +1,12 @@ package com.bff.wespot.auth.state -sealed class AuthSideEffect +sealed class AuthSideEffect { + data object PopBackStack : AuthSideEffect() + data class NavigateToGradeScreen(val edit: Boolean) : AuthSideEffect() + data class NavigateToSchoolScreen(val edit: Boolean) : AuthSideEffect() + data class NavigateToClassScreen(val edit: Boolean) : AuthSideEffect() + data class NavigateToGenderScreen(val edit: Boolean) : AuthSideEffect() + data class NavigateToNameScreen(val edit: Boolean) : AuthSideEffect() + data object NavigateToEditScreen : AuthSideEffect() + data object NavigateToCompleteScreen : AuthSideEffect() +} \ No newline at end of file diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt index 4c32253c..b6add375 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt @@ -6,11 +6,13 @@ import com.bff.wespot.auth.state.AuthAction import com.bff.wespot.auth.state.AuthSideEffect import com.bff.wespot.auth.state.AuthUiState import com.bff.wespot.domain.repository.usecase.KakaoLoginUseCase +import com.bff.wespot.auth.state.NavigationAction import com.bff.wespot.model.SchoolItem import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch import org.orbitmvi.orbit.ContainerHost import org.orbitmvi.orbit.syntax.simple.intent +import org.orbitmvi.orbit.syntax.simple.postSideEffect import org.orbitmvi.orbit.syntax.simple.reduce import org.orbitmvi.orbit.viewmodel.container import javax.inject.Inject @@ -30,6 +32,7 @@ class AuthViewModel @Inject constructor( is AuthAction.OnClassNumberChanged -> handleClassNumberChanged(action.number) is AuthAction.OnGenderChanged -> handleGenderChanged(action.gender) is AuthAction.OnNameChanged -> handleNameChanged(action.name) + is AuthAction.Navigation -> handleNavigation(action.navigate) else -> {} } } @@ -101,4 +104,28 @@ class AuthViewModel @Inject constructor( ) } } + + private fun handleNavigation(navigate: NavigationAction) = intent { + val sideEffect = when (navigate) { + NavigationAction.PopBackStack -> AuthSideEffect.PopBackStack + is NavigationAction.NavigateToGradeScreen -> AuthSideEffect.NavigateToGradeScreen( + navigate.edit + ) + is NavigationAction.NavigateToSchoolScreen -> AuthSideEffect.NavigateToSchoolScreen( + navigate.edit + ) + is NavigationAction.NavigateToClassScreen -> AuthSideEffect.NavigateToClassScreen( + navigate.edit + ) + is NavigationAction.NavigateToGenderScreen -> AuthSideEffect.NavigateToGenderScreen( + navigate.edit + ) + is NavigationAction.NavigateToNameScreen -> AuthSideEffect.NavigateToNameScreen( + navigate.edit + ) + NavigationAction.NavigateToEditScreen -> AuthSideEffect.NavigateToEditScreen + NavigationAction.NavigateToCompleteScreen -> AuthSideEffect.NavigateToCompleteScreen + } + postSideEffect(sideEffect) + } } From 0e1acfeccd8e656c08fc0dc35bfd9d0e43e8e69b Mon Sep 17 00:00:00 2001 From: flash159483 Date: Mon, 15 Jul 2024 21:46:12 +0900 Subject: [PATCH 3/6] =?UTF-8?q?[CHORE]#29:=20Navigation=20logic=EC=9D=84?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 1 + .../kotlin/com/bff/wespot/MainActivity.kt | 12 ------- .../kotlin/com/bff/wespot/NavigatorImpl.kt | 16 +++++++++ .../com/bff/wespot/di/NavigationModule.kt | 17 +++++++++ .../com/danggeun/common/util/Extension.kt | 12 +++++++ core/navigation/.gitignore | 1 + core/navigation/build.gradle.kts | 8 +++++ core/navigation/consumer-rules.pro | 0 core/navigation/proguard-rules.pro | 21 +++++++++++ .../navigation/ExampleInstrumentedTest.kt | 24 +++++++++++++ core/navigation/src/main/AndroidManifest.xml | 4 +++ .../java/com/danggeun/navigation/Navigator.kt | 10 ++++++ .../danggeun/navigation/ExampleUnitTest.kt | 17 +++++++++ .../com/bff/wespot/auth/AuthActivity.kt | 3 +- .../com/bff/wespot/auth/screen/NameScreen.kt | 36 +++++++++++-------- .../com/bff/wespot/auth/state/AuthAction.kt | 3 +- .../bff/wespot/auth/state/AuthSideEffect.kt | 2 +- .../wespot/auth/viewmodel/AuthViewModel.kt | 10 +++--- settings.gradle.kts | 1 + 19 files changed, 162 insertions(+), 36 deletions(-) create mode 100644 app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt create mode 100644 app/src/main/kotlin/com/bff/wespot/di/NavigationModule.kt create mode 100644 core/common/src/main/kotlin/com/danggeun/common/util/Extension.kt create mode 100644 core/navigation/.gitignore create mode 100644 core/navigation/build.gradle.kts create mode 100644 core/navigation/consumer-rules.pro create mode 100644 core/navigation/proguard-rules.pro create mode 100644 core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt create mode 100644 core/navigation/src/main/AndroidManifest.xml create mode 100644 core/navigation/src/main/java/com/danggeun/navigation/Navigator.kt create mode 100644 core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d7f8de38..f7b16cf5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -33,6 +33,7 @@ dependencies { implementation(project(":core:ui")) implementation(project(":core:common")) implementation(project(":feature:auth")) + implementation(project(":core:navigation")) implementation(libs.kakao.sdk) implementation(libs.androidx.appcompat) diff --git a/app/src/main/kotlin/com/bff/wespot/MainActivity.kt b/app/src/main/kotlin/com/bff/wespot/MainActivity.kt index 066592fc..fcfb4563 100644 --- a/app/src/main/kotlin/com/bff/wespot/MainActivity.kt +++ b/app/src/main/kotlin/com/bff/wespot/MainActivity.kt @@ -3,24 +3,12 @@ package com.bff.wespot import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material3.Surface -import androidx.compose.ui.Modifier -import androidx.lifecycle.viewmodel.compose.viewModel -import androidx.navigation.compose.rememberNavController -import com.bff.wespot.auth.screen.NavGraphs -import com.bff.wespot.auth.viewmodel.AuthViewModel -import com.bff.wespot.designsystem.theme.WeSpotTheme -import com.ramcosta.composedestinations.DestinationsNavHost -import com.ramcosta.composedestinations.navigation.dependency -import com.ramcosta.composedestinations.rememberNavHostEngine class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - } } } diff --git a/app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt b/app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt new file mode 100644 index 00000000..de4d9bb3 --- /dev/null +++ b/app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt @@ -0,0 +1,16 @@ +package com.bff.wespot + +import android.content.Context +import android.content.Intent +import com.danggeun.common.util.buildIntent +import com.danggeun.navigation.Navigator + +class NavigatorImpl : Navigator { + override fun navigateToMain( + context: Context, + ): Intent { + val intent = context.buildIntent() + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + return intent + } +} diff --git a/app/src/main/kotlin/com/bff/wespot/di/NavigationModule.kt b/app/src/main/kotlin/com/bff/wespot/di/NavigationModule.kt new file mode 100644 index 00000000..f0013814 --- /dev/null +++ b/app/src/main/kotlin/com/bff/wespot/di/NavigationModule.kt @@ -0,0 +1,17 @@ +package com.bff.wespot.di + +import com.bff.wespot.NavigatorImpl +import com.danggeun.navigation.Navigator +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +interface NavigationModule { + @Binds + @Singleton + fun provideNavigator(navigator: NavigatorImpl): Navigator +} diff --git a/core/common/src/main/kotlin/com/danggeun/common/util/Extension.kt b/core/common/src/main/kotlin/com/danggeun/common/util/Extension.kt new file mode 100644 index 00000000..8874cc72 --- /dev/null +++ b/core/common/src/main/kotlin/com/danggeun/common/util/Extension.kt @@ -0,0 +1,12 @@ +package com.danggeun.common.util + +import android.app.Activity +import android.content.Context +import android.content.Intent +import androidx.core.os.bundleOf + +inline fun Context.buildIntent( + vararg argument: Pair, +) = Intent(this, T::class.java).apply { + putExtras(bundleOf(*argument)) +} \ No newline at end of file diff --git a/core/navigation/.gitignore b/core/navigation/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/core/navigation/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/navigation/build.gradle.kts b/core/navigation/build.gradle.kts new file mode 100644 index 00000000..22de8bd8 --- /dev/null +++ b/core/navigation/build.gradle.kts @@ -0,0 +1,8 @@ +plugins { + alias(libs.plugins.wespot.android.library) +} + + +android { + namespace = "com.bff.wespot.navigation" +} diff --git a/core/navigation/consumer-rules.pro b/core/navigation/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/core/navigation/proguard-rules.pro b/core/navigation/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/core/navigation/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt b/core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt new file mode 100644 index 00000000..dcd2d135 --- /dev/null +++ b/core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.danggeun.navigation + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.danggeun.navigation.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/core/navigation/src/main/AndroidManifest.xml b/core/navigation/src/main/AndroidManifest.xml new file mode 100644 index 00000000..a5918e68 --- /dev/null +++ b/core/navigation/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/core/navigation/src/main/java/com/danggeun/navigation/Navigator.kt b/core/navigation/src/main/java/com/danggeun/navigation/Navigator.kt new file mode 100644 index 00000000..21754b04 --- /dev/null +++ b/core/navigation/src/main/java/com/danggeun/navigation/Navigator.kt @@ -0,0 +1,10 @@ +package com.danggeun.navigation + +import android.content.Context +import android.content.Intent + +interface Navigator { + fun navigateToMain( + context: Context + ) : Intent +} \ No newline at end of file diff --git a/core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt b/core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt new file mode 100644 index 00000000..4958aff8 --- /dev/null +++ b/core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.danggeun.navigation + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt index 4bfc136e..960b0f8e 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/AuthActivity.kt @@ -68,7 +68,6 @@ class AuthActivity : ComponentActivity() { } } - WeSpotTheme { Surface( modifier = Modifier.fillMaxSize(), @@ -85,4 +84,4 @@ class AuthActivity : ComponentActivity() { } } } -} \ No newline at end of file +} diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt index bbbcbe4d..755704d7 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/screen/NameScreen.kt @@ -3,6 +3,7 @@ package com.bff.wespot.auth.screen import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -67,7 +68,9 @@ fun NameScreen( }, ) { Column( - modifier = Modifier.padding(it).padding(horizontal = 20.dp), + modifier = Modifier + .padding(it) + .padding(horizontal = 20.dp), verticalArrangement = Arrangement.spacedBy(12.dp), ) { Text( @@ -95,20 +98,25 @@ fun NameScreen( focusRequester = focusRequester, ) - if (error) { - Text( - text = stringResource(id = R.string.name_error), - color = WeSpotThemeManager.colors.dangerColor, - style = StaticTypeScale.Default.body6, - ) - } + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + ) { + if (error) { + Text( + text = stringResource(id = R.string.name_error), + color = WeSpotThemeManager.colors.dangerColor, + style = StaticTypeScale.Default.body6, + ) + } - Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.TopEnd) { - Text( - text = "${state.name.length} / 5", - color = Color(0xFF7A7A7A), - style = StaticTypeScale.Default.body7, - ) + Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.TopEnd) { + Text( + text = "${state.name.length} / 5", + color = Color(0xFF7A7A7A), + style = StaticTypeScale.Default.body7, + ) + } } } } diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt index 9ab656e9..6ff5d05b 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthAction.kt @@ -18,7 +18,6 @@ sealed class AuthAction { data class OnNameChanged(val name: String) : AuthAction() data class Navigation(val navigate: NavigationAction) : AuthAction() - } sealed interface NavigationAction { @@ -30,4 +29,4 @@ sealed interface NavigationAction { data class NavigateToNameScreen(val edit: Boolean) : NavigationAction data object NavigateToEditScreen : NavigationAction data object NavigateToCompleteScreen : NavigationAction -} \ No newline at end of file +} diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt index f5792fbc..1b681121 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/state/AuthSideEffect.kt @@ -9,4 +9,4 @@ sealed class AuthSideEffect { data class NavigateToNameScreen(val edit: Boolean) : AuthSideEffect() data object NavigateToEditScreen : AuthSideEffect() data object NavigateToCompleteScreen : AuthSideEffect() -} \ No newline at end of file +} diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt index b6add375..a3f7a052 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt @@ -109,19 +109,19 @@ class AuthViewModel @Inject constructor( val sideEffect = when (navigate) { NavigationAction.PopBackStack -> AuthSideEffect.PopBackStack is NavigationAction.NavigateToGradeScreen -> AuthSideEffect.NavigateToGradeScreen( - navigate.edit + navigate.edit, ) is NavigationAction.NavigateToSchoolScreen -> AuthSideEffect.NavigateToSchoolScreen( - navigate.edit + navigate.edit, ) is NavigationAction.NavigateToClassScreen -> AuthSideEffect.NavigateToClassScreen( - navigate.edit + navigate.edit, ) is NavigationAction.NavigateToGenderScreen -> AuthSideEffect.NavigateToGenderScreen( - navigate.edit + navigate.edit, ) is NavigationAction.NavigateToNameScreen -> AuthSideEffect.NavigateToNameScreen( - navigate.edit + navigate.edit, ) NavigationAction.NavigateToEditScreen -> AuthSideEffect.NavigateToEditScreen NavigationAction.NavigateToCompleteScreen -> AuthSideEffect.NavigateToCompleteScreen diff --git a/settings.gradle.kts b/settings.gradle.kts index e05d91ee..5eea5344 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -33,3 +33,4 @@ include(":core:model") include(":core:common") include(":core:ui") include(":core:network") +include(":core:navigation") From 070a04b64c741b891ebc656cebbc2ae70652dd1c Mon Sep 17 00:00:00 2001 From: flash159483 Date: Mon, 15 Jul 2024 22:00:20 +0900 Subject: [PATCH 4/6] =?UTF-8?q?[CHORE]#29:=20Test=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../navigation/ExampleInstrumentedTest.kt | 24 ------------------- .../danggeun/navigation/ExampleUnitTest.kt | 17 ------------- 2 files changed, 41 deletions(-) delete mode 100644 core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt delete mode 100644 core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt diff --git a/core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt b/core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt deleted file mode 100644 index dcd2d135..00000000 --- a/core/navigation/src/androidTest/java/com/danggeun/navigation/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.danggeun.navigation - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.danggeun.navigation.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt b/core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt deleted file mode 100644 index 4958aff8..00000000 --- a/core/navigation/src/test/java/com/danggeun/navigation/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.danggeun.navigation - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file From 614d0a72928937e19e52bdf260fffe3c05367f70 Mon Sep 17 00:00:00 2001 From: flash159483 Date: Tue, 16 Jul 2024 23:24:23 +0900 Subject: [PATCH 5/6] =?UTF-8?q?[CHORE]#29:=20rebase=20=ED=95=B4=EC=9A=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wespot/domain/{repository => }/usecase/KakaoLoginUseCase.kt | 2 +- .../main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename domain/src/main/kotlin/com/bff/wespot/domain/{repository => }/usecase/KakaoLoginUseCase.kt (88%) diff --git a/domain/src/main/kotlin/com/bff/wespot/domain/repository/usecase/KakaoLoginUseCase.kt b/domain/src/main/kotlin/com/bff/wespot/domain/usecase/KakaoLoginUseCase.kt similarity index 88% rename from domain/src/main/kotlin/com/bff/wespot/domain/repository/usecase/KakaoLoginUseCase.kt rename to domain/src/main/kotlin/com/bff/wespot/domain/usecase/KakaoLoginUseCase.kt index b01f8031..a810958a 100644 --- a/domain/src/main/kotlin/com/bff/wespot/domain/repository/usecase/KakaoLoginUseCase.kt +++ b/domain/src/main/kotlin/com/bff/wespot/domain/usecase/KakaoLoginUseCase.kt @@ -1,4 +1,4 @@ -package com.bff.wespot.domain.repository.usecase +package com.bff.wespot.domain.usecase import com.bff.wespot.domain.repository.auth.KakaoLoginManager import javax.inject.Inject diff --git a/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt b/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt index a3f7a052..d1a9d7f1 100644 --- a/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt +++ b/feature/auth/src/main/kotlin/com/bff/wespot/auth/viewmodel/AuthViewModel.kt @@ -5,8 +5,8 @@ import androidx.lifecycle.viewModelScope import com.bff.wespot.auth.state.AuthAction import com.bff.wespot.auth.state.AuthSideEffect import com.bff.wespot.auth.state.AuthUiState -import com.bff.wespot.domain.repository.usecase.KakaoLoginUseCase import com.bff.wespot.auth.state.NavigationAction +import com.bff.wespot.domain.usecase.KakaoLoginUseCase import com.bff.wespot.model.SchoolItem import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch From 4c118b022bac7e26d670d31bd78dfce72d3ec980 Mon Sep 17 00:00:00 2001 From: flash159483 Date: Tue, 16 Jul 2024 23:39:52 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[CHORE]#29:=20extension=20=EC=98=B4?= =?UTF-8?q?=EA=B2=A8=EC=9A=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt | 2 +- core/navigation/build.gradle.kts | 1 + .../src/main/java/com/danggeun/navigation}/util/Extension.kt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) rename core/{common/src/main/kotlin/com/danggeun/common => navigation/src/main/java/com/danggeun/navigation}/util/Extension.kt (88%) diff --git a/app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt b/app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt index de4d9bb3..07bb712b 100644 --- a/app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt +++ b/app/src/main/kotlin/com/bff/wespot/NavigatorImpl.kt @@ -2,8 +2,8 @@ package com.bff.wespot import android.content.Context import android.content.Intent -import com.danggeun.common.util.buildIntent import com.danggeun.navigation.Navigator +import com.danggeun.navigation.util.buildIntent class NavigatorImpl : Navigator { override fun navigateToMain( diff --git a/core/navigation/build.gradle.kts b/core/navigation/build.gradle.kts index 22de8bd8..1308c677 100644 --- a/core/navigation/build.gradle.kts +++ b/core/navigation/build.gradle.kts @@ -1,5 +1,6 @@ plugins { alias(libs.plugins.wespot.android.library) + alias(libs.plugins.wespot.android.hilt) } diff --git a/core/common/src/main/kotlin/com/danggeun/common/util/Extension.kt b/core/navigation/src/main/java/com/danggeun/navigation/util/Extension.kt similarity index 88% rename from core/common/src/main/kotlin/com/danggeun/common/util/Extension.kt rename to core/navigation/src/main/java/com/danggeun/navigation/util/Extension.kt index 8874cc72..8f83357f 100644 --- a/core/common/src/main/kotlin/com/danggeun/common/util/Extension.kt +++ b/core/navigation/src/main/java/com/danggeun/navigation/util/Extension.kt @@ -1,4 +1,4 @@ -package com.danggeun.common.util +package com.danggeun.navigation.util import android.app.Activity import android.content.Context