From 293864e405a4f30d4dd18d96d22758da844d5e6e Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Fri, 12 Jul 2024 00:54:00 +0900 Subject: [PATCH 01/14] =?UTF-8?q?[FEAT/#51]=20navigation=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/changefilter/ChangeFilterRoute.kt | 17 +++++++++++ .../navigation/ChangeFilterNavigation.kt | 30 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt create mode 100644 feature/src/main/java/com/terning/feature/home/changefilter/navigation/ChangeFilterNavigation.kt diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt new file mode 100644 index 000000000..34ce960d9 --- /dev/null +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -0,0 +1,17 @@ +package com.terning.feature.home.changefilter + +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.navigation.NavController + +@Composable +fun ChangeFilterRoute( + navController: NavController, +) { + ChangeFilterScreen() +} + +@Composable +fun ChangeFilterScreen() { + Text(text = "필터링 재설정") +} \ No newline at end of file diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/navigation/ChangeFilterNavigation.kt b/feature/src/main/java/com/terning/feature/home/changefilter/navigation/ChangeFilterNavigation.kt new file mode 100644 index 000000000..5c2cab77f --- /dev/null +++ b/feature/src/main/java/com/terning/feature/home/changefilter/navigation/ChangeFilterNavigation.kt @@ -0,0 +1,30 @@ +package com.terning.feature.home.changefilter.navigation + +import androidx.navigation.NavController +import androidx.navigation.NavGraphBuilder +import androidx.navigation.NavHostController +import androidx.navigation.NavOptions +import androidx.navigation.compose.composable +import com.terning.core.navigation.Route +import com.terning.feature.home.changefilter.ChangeFilterRoute +import kotlinx.serialization.Serializable + +fun NavController.navigateChangeFilter(navOptions: NavOptions? = null) { + navigate( + route = ChangeFilter, + navOptions = navOptions + ) +} + +fun NavGraphBuilder.changeFilterNavGraph( + navHostController: NavHostController +) { + composable { + ChangeFilterRoute( + navController = navHostController + ) + } +} + +@Serializable +data object ChangeFilter : Route \ No newline at end of file From 9d64fcf05042d4ba40e8999913c7401646691827 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Fri, 12 Jul 2024 01:18:43 +0900 Subject: [PATCH 02/14] =?UTF-8?q?[FEAT/#51]=20=ED=99=88=20-=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=EB=A7=81=20=EC=9E=AC=EC=84=A4=EC=A0=95=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/terning/feature/home/home/HomeRoute.kt | 14 ++++++++++---- .../home/home/component/HomeFilteringScreen.kt | 5 ++++- .../home/home/navigation/HometNavigation.kt | 5 +++-- .../java/com/terning/feature/main/MainNavigator.kt | 4 ++-- .../java/com/terning/feature/main/MainScreen.kt | 4 +++- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index bc8c30273..bd814517f 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -14,23 +14,27 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import androidx.navigation.NavHostController import com.terning.core.designsystem.component.topappbar.LogoTopAppBar import com.terning.core.designsystem.theme.Black import com.terning.core.designsystem.theme.Grey150 import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.designsystem.theme.White import com.terning.feature.R +import com.terning.feature.home.changefilter.navigation.navigateChangeFilter import com.terning.feature.home.home.component.HomeFilteringScreen import com.terning.feature.home.home.component.HomeTodayIntern @Composable -fun HomeRoute() { - HomeScreen() +fun HomeRoute( + navController: NavHostController +) { + HomeScreen(navController) } @OptIn(ExperimentalFoundationApi::class) @Composable -fun HomeScreen() { +fun HomeScreen(navController: NavHostController) { Scaffold( modifier = Modifier, topBar = { @@ -49,7 +53,8 @@ fun HomeScreen() { ) { Text( text = stringResource( - id = R.string.home_today_title,"남지우"), + id = R.string.home_today_title, "남지우" + ), modifier = Modifier .padding(top = 11.dp) .padding(horizontal = 24.dp), @@ -87,6 +92,7 @@ fun HomeScreen() { period = 1, startYear = 2024, startMonth = 7, + { navController.navigateChangeFilter() }, ) HorizontalDivider( diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt b/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt index e22a775ed..f490c5562 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt @@ -24,6 +24,7 @@ import com.terning.core.designsystem.theme.Grey300 import com.terning.core.designsystem.theme.TerningMain import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.designsystem.theme.White +import com.terning.core.extension.noRippleClickable import com.terning.feature.R @Composable @@ -32,6 +33,7 @@ fun HomeFilteringScreen( period: Int, startYear: Int, startMonth: Int, + onChangeFilterClick: () -> Unit, modifier: Modifier = Modifier, ) { Row( @@ -48,7 +50,8 @@ fun HomeFilteringScreen( color = TerningMain, shape = RoundedCornerShape(5.dp), ) - .align(Alignment.CenterVertically), + .align(Alignment.CenterVertically) + .noRippleClickable { onChangeFilterClick() }, ) { Image( painter = painterResource(id = R.drawable.ic_home_filtering_28), diff --git a/feature/src/main/java/com/terning/feature/home/home/navigation/HometNavigation.kt b/feature/src/main/java/com/terning/feature/home/home/navigation/HometNavigation.kt index c49027a9d..88ce969af 100644 --- a/feature/src/main/java/com/terning/feature/home/home/navigation/HometNavigation.kt +++ b/feature/src/main/java/com/terning/feature/home/home/navigation/HometNavigation.kt @@ -2,6 +2,7 @@ package com.terning.feature.home.home.navigation import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder +import androidx.navigation.NavHostController import androidx.navigation.NavOptions import androidx.navigation.compose.composable import com.terning.core.navigation.MainTabRoute @@ -15,9 +16,9 @@ fun NavController.navigateHome(navOptions: NavOptions? = null) { ) } -fun NavGraphBuilder.homeNavGraph() { +fun NavGraphBuilder.homeNavGraph(navHostController: NavHostController) { composable { - HomeRoute() + HomeRoute(navController = navHostController) } } diff --git a/feature/src/main/java/com/terning/feature/main/MainNavigator.kt b/feature/src/main/java/com/terning/feature/main/MainNavigator.kt index b538c3e58..1b50c7d23 100644 --- a/feature/src/main/java/com/terning/feature/main/MainNavigator.kt +++ b/feature/src/main/java/com/terning/feature/main/MainNavigator.kt @@ -10,9 +10,9 @@ import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import androidx.navigation.navOptions import com.terning.feature.calendar.navigation.navigateCalendar +import com.terning.feature.home.home.navigation.Home import com.terning.feature.home.home.navigation.navigateHome import com.terning.feature.mypage.navigation.navigateMyPage -import com.terning.feature.onboarding.signin.navigation.SignIn import com.terning.feature.search.search.navigation.navigateSearch class MainNavigator( @@ -22,7 +22,7 @@ class MainNavigator( @Composable get() = navController .currentBackStackEntryAsState().value?.destination - val startDestination = SignIn + val startDestination = Home val currentTab: MainTab? @Composable get() = MainTab.find { tab -> diff --git a/feature/src/main/java/com/terning/feature/main/MainScreen.kt b/feature/src/main/java/com/terning/feature/main/MainScreen.kt index be9252004..c3864d53d 100644 --- a/feature/src/main/java/com/terning/feature/main/MainScreen.kt +++ b/feature/src/main/java/com/terning/feature/main/MainScreen.kt @@ -21,6 +21,7 @@ import com.terning.core.designsystem.theme.TerningMain import com.terning.core.designsystem.theme.White import com.terning.core.util.NoRippleInteractionSource import com.terning.feature.calendar.navigation.calendarNavGraph +import com.terning.feature.home.changefilter.navigation.changeFilterNavGraph import com.terning.feature.home.home.navigation.homeNavGraph import com.terning.feature.mypage.navigation.myPageNavGraph import com.terning.feature.onboarding.filtering.navigation.filteringNavGraph @@ -52,7 +53,7 @@ fun MainScreen( navController = navigator.navController, startDestination = navigator.startDestination ) { - homeNavGraph() + homeNavGraph(navHostController = navigator.navController) calendarNavGraph() searchNavGraph(navHostController = navigator.navController) myPageNavGraph() @@ -60,6 +61,7 @@ fun MainScreen( signUpNavGraph(navHostController = navigator.navController) filteringNavGraph(navHostController = navigator.navController) searchProcessNavGraph(navHostController = navigator.navController) + changeFilterNavGraph(navHostController = navigator.navController) } } } From ea2a72986db5fc47c20d46d024daa7a1f8a50a0a Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Fri, 12 Jul 2024 05:11:27 +0900 Subject: [PATCH 03/14] =?UTF-8?q?[CHORE/#51]=20invoke()=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designsystem/component/topappbar/BackButtonTopAppBar.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/topappbar/BackButtonTopAppBar.kt b/core/src/main/java/com/terning/core/designsystem/component/topappbar/BackButtonTopAppBar.kt index 960ebdc6e..7cac0d516 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/topappbar/BackButtonTopAppBar.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/topappbar/BackButtonTopAppBar.kt @@ -13,6 +13,6 @@ fun BackButtonTopAppBar( title = title, showBackButton = true, modifier = modifier, - onBackButtonClick = { onBackButtonClick.invoke() }, + onBackButtonClick = { onBackButtonClick() }, ) } \ No newline at end of file From 603d2eb0f2f6ef30946f6fcdd70ce893a8935c3c Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Fri, 12 Jul 2024 05:27:10 +0900 Subject: [PATCH 04/14] =?UTF-8?q?[FEAT/#51]=20=ED=83=91=EB=B0=94=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/changefilter/ChangeFilterRoute.kt | 30 +++++++++++++++++-- feature/src/main/res/values/strings.xml | 1 + 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt index 34ce960d9..f02d9caef 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -1,17 +1,41 @@ package com.terning.feature.home.changefilter +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.navigation.NavController +import com.terning.core.designsystem.component.topappbar.BackButtonTopAppBar +import com.terning.feature.R @Composable fun ChangeFilterRoute( navController: NavController, ) { - ChangeFilterScreen() + ChangeFilterScreen(navController) } @Composable -fun ChangeFilterScreen() { - Text(text = "필터링 재설정") +fun ChangeFilterScreen(navController: NavController) { + Scaffold( + modifier = Modifier, + topBar = { + BackButtonTopAppBar( + title = stringResource(id = R.string.change_filter_top_bar_title), + onBackButtonClick = { navController.popBackStack() }, + modifier = Modifier + ) + } + ) { paddingValues -> + Column( + modifier = Modifier + .padding(paddingValues) + ) { + Text(text = "dd") + } + + } } \ No newline at end of file diff --git a/feature/src/main/res/values/strings.xml b/feature/src/main/res/values/strings.xml index 9a2513475..e0cbcb170 100644 --- a/feature/src/main/res/values/strings.xml +++ b/feature/src/main/res/values/strings.xml @@ -81,6 +81,7 @@ 인턴 공고가 없어요! + 필터링 재설정 재학 상태를 선택해주세요 희망하는 인턴 근무 기간을 선택해주세요 입사를 계획중인 달을 선택해주세요 From 6e7a7eed19228613d5723eb18aa977a264b0bbb5 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Fri, 12 Jul 2024 17:12:15 +0900 Subject: [PATCH 05/14] =?UTF-8?q?[FEAT/#51]=20=ED=83=91=EB=B0=94=20?= =?UTF-8?q?=EA=B7=B8=EB=A6=BC=EC=9E=90=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../terning/feature/home/changefilter/ChangeFilterRoute.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt index f02d9caef..51dd24a27 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -6,7 +6,9 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp import androidx.navigation.NavController import com.terning.core.designsystem.component.topappbar.BackButtonTopAppBar import com.terning.feature.R @@ -21,12 +23,12 @@ fun ChangeFilterRoute( @Composable fun ChangeFilterScreen(navController: NavController) { Scaffold( - modifier = Modifier, topBar = { BackButtonTopAppBar( title = stringResource(id = R.string.change_filter_top_bar_title), onBackButtonClick = { navController.popBackStack() }, modifier = Modifier + .shadow(elevation = 2.dp) ) } ) { paddingValues -> From d09fd0bd5339f50fe4434081b061a1603ded832d Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sat, 13 Jul 2024 23:23:54 +0900 Subject: [PATCH 06/14] =?UTF-8?q?[CHORE/#51]=20=EC=A4=91=EB=B3=B5=EB=90=9C?= =?UTF-8?q?=20string=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/home/home/component/HomeFilteringScreen.kt | 6 +++--- feature/src/main/res/values/strings.xml | 8 -------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt b/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt index f490c5562..8b9e5d385 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt @@ -79,9 +79,9 @@ fun HomeFilteringScreen( HomeFilteringText( text = stringResource( id = when (period) { - 1 -> R.string.home_recommend_filtering_working_period_1 - 2 -> R.string.home_recommend_filtering_working_period_2 - 3 -> R.string.home_recommend_filtering_working_period_3 + 1 -> R.string.filtering_status2_button1 + 2 -> R.string.filtering_status2_button2 + 3 -> R.string.filtering_status2_button3 else -> R.string.server_failure } ), diff --git a/feature/src/main/res/values/strings.xml b/feature/src/main/res/values/strings.xml index 41f3cb70e..0e229e01a 100644 --- a/feature/src/main/res/values/strings.xml +++ b/feature/src/main/res/values/strings.xml @@ -66,9 +66,6 @@ 내 계획에 딱 맞는 대학생 인턴 공고 필터링 학년 - 1개월 ~ 3개월 - 4개월 ~ 6개월 - 7개월 이상 필터링 설정에 일치하는 인턴 공고가 없어요!\n딱 맞는 인턴 공고가 올라오면 바로 알려드릴게요 @@ -114,11 +111,6 @@ 필터링 재설정 재학 상태를 선택해주세요 - 희망하는 인턴 근무 기간을 선택해주세요 - 입사를 계획중인 달을 선택해주세요 - 휴학중이라면, 휴학 전 마지막 수료 학년을 선택해주세요 - 선택한 기간동안 근무할 수 있는 인턴 공고를 찾아드릴게요 - 선택한 달부터 근무를 시작할 수 있는 공고를 찾아드릴게요 공유 아이콘 From 8c8386f587bc6e78797988492d59cdd5fcd14d9b Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sun, 14 Jul 2024 03:26:00 +0900 Subject: [PATCH 07/14] =?UTF-8?q?[FEAT/#51]=20=EA=B8=B0=EB=B3=B8=20UI=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/changefilter/ChangeFilterRoute.kt | 82 ++++++++++++++++++- .../terning/feature/home/home/HomeRoute.kt | 10 +-- 2 files changed, 84 insertions(+), 8 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt index 51dd24a27..9ea082b3a 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -1,17 +1,23 @@ package com.terning.feature.home.changefilter import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.navigation.NavController +import com.terning.core.designsystem.component.button.RectangleButton +import com.terning.core.designsystem.component.datepicker.DatePickerUI import com.terning.core.designsystem.component.topappbar.BackButtonTopAppBar +import com.terning.core.designsystem.theme.TerningTheme import com.terning.feature.R +import com.terning.feature.home.changefilter.component.FilteringMainTitleText +import com.terning.feature.home.changefilter.component.FilteringSubTitleText +import com.terning.feature.home.home.navigation.navigateHome @Composable fun ChangeFilterRoute( @@ -34,10 +40,80 @@ fun ChangeFilterScreen(navController: NavController) { ) { paddingValues -> Column( modifier = Modifier - .padding(paddingValues) + .padding( + top = paddingValues.calculateTopPadding(), + ) ) { - Text(text = "dd") + showTitle( + mainTitle = stringResource(id = R.string.change_filter_grade_main), + subTitle = stringResource(id = R.string.filtering_status1_sub), + modifier = Modifier.padding( + top = 31.dp, + start = 24.dp, + end = 24.dp + ) + ) + + showTitle( + mainTitle = stringResource(id = R.string.filtering_status2_title), + subTitle = stringResource(id = R.string.filtering_status2_sub), + modifier = Modifier.padding( + top = 39.dp, + start = 24.dp, + end = 24.dp + ) + ) + + showTitle( + mainTitle = stringResource(id = R.string.filtering_status3_title), + subTitle = stringResource(id = R.string.filtering_status3_sub), + modifier = Modifier.padding( + top = 39.dp, + start = 24.dp, + end = 24.dp + ) + ) + + Spacer(modifier = Modifier.padding(12.dp)) + Spacer(modifier = Modifier.weight(1f)) + DatePickerUI( + chosenYear = 2024, + chosenMonth = 7, + ) + Spacer(modifier = Modifier.weight(1f)) + Spacer(modifier = Modifier.padding(33.dp)) + + RectangleButton( + style = TerningTheme.typography.button0, + paddingVertical = 19.dp, + text = R.string.change_filter_save, + onButtonClick = { + navController.navigateHome() + } + ) } } +} + +@Composable +private fun showTitle( + mainTitle: String, + subTitle: String, + modifier: Modifier = Modifier, +) { + FilteringMainTitleText( + text = mainTitle, + modifier = modifier.padding() + ) + FilteringSubTitleText( + text = subTitle, + modifier = Modifier + .padding( + top = 3.dp, + bottom = 13.dp, + start = 24.dp, + end = 24.dp + ) + ) } \ No newline at end of file diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index 82d25f090..c59b90525 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -28,10 +28,10 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.navigation.NavHostController import com.terning.core.designsystem.component.bottomsheet.SortingBottomSheet import com.terning.core.designsystem.component.button.SortingButton import com.terning.core.designsystem.component.item.InternItem -import androidx.navigation.NavHostController import com.terning.core.designsystem.component.topappbar.LogoTopAppBar import com.terning.core.designsystem.theme.Black import com.terning.core.designsystem.theme.Grey150 @@ -40,8 +40,8 @@ import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.designsystem.theme.White import com.terning.core.extension.customShadow import com.terning.feature.R -import com.terning.feature.home.home.component.HomeFilteringEmptyIntern import com.terning.feature.home.changefilter.navigation.navigateChangeFilter +import com.terning.feature.home.home.component.HomeFilteringEmptyIntern import com.terning.feature.home.home.component.HomeFilteringScreen import com.terning.feature.home.home.component.HomeRecommendEmptyIntern import com.terning.feature.home.home.component.HomeTodayEmptyIntern @@ -60,7 +60,7 @@ fun HomeRoute( val currentSortBy: MutableState = remember { mutableIntStateOf(0) } - HomeScreen(currentSortBy,navController) + HomeScreen(currentSortBy, navController) } @OptIn(ExperimentalFoundationApi::class) @@ -118,7 +118,7 @@ fun HomeScreen( .background(White) ) { ShowRecommendTitle() - ShowInternFilter(userNameState = userNameState) + ShowInternFilter(userNameState = userNameState, navController) HorizontalDivider( thickness = 4.dp, @@ -214,7 +214,7 @@ private fun ShowRecommendTitle() { } @Composable -private fun ShowInternFilter(userNameState: UserNameState) { +private fun ShowInternFilter(userNameState: UserNameState, navController: NavHostController) { if (userNameState.internFilter == null) { HomeFilteringScreen( grade = R.string.home_recommend_no_filtering_hyphen, From e01f98baf7ba82ad8639fb76f4d8a6bcdf8d88e3 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sun, 14 Jul 2024 03:57:31 +0900 Subject: [PATCH 08/14] =?UTF-8?q?[FEAT/#51]=20=EB=9D=BC=EB=94=94=EC=98=A4?= =?UTF-8?q?=20=EB=B2=84=ED=8A=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/button/ChangeFilterButton.kt | 81 +++++++++++++++++++ .../home/changefilter/ChangeFilterRoute.kt | 15 ++++ .../component/ChangeFilteringRadioGroup.kt | 70 ++++++++++++++++ feature/src/main/res/values/strings.xml | 1 + 4 files changed, 167 insertions(+) create mode 100644 core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt create mode 100644 feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt diff --git a/core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt b/core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt new file mode 100644 index 000000000..c5feb3050 --- /dev/null +++ b/core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt @@ -0,0 +1,81 @@ +package com.terning.core.designsystem.component.button + +import androidx.annotation.StringRes +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.collectIsPressedAsState +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.ripple.LocalRippleTheme +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import com.terning.core.designsystem.theme.Grey400 +import com.terning.core.designsystem.theme.TerningMain +import com.terning.core.designsystem.theme.TerningSub1 +import com.terning.core.designsystem.theme.TerningSub5 +import com.terning.core.designsystem.theme.TerningTheme +import com.terning.core.designsystem.theme.White +import com.terning.core.util.NoRippleTheme + +@Composable +fun ChangeFilterButton( + isSelected: Boolean, + @StringRes text: Int, + cornerRadius: Dp, + paddingVertical: Dp, + onButtonClick: () -> Unit, + modifier: Modifier = Modifier, +) { + val interactionSource = remember { MutableInteractionSource() } + val isPressed by interactionSource.collectIsPressedAsState() + val backgroundColor = when { + !isSelected && !isPressed -> White + !isSelected && isPressed -> TerningSub5 + else -> TerningMain + } + val textColor = when { + !isSelected -> Grey400 + else -> White + } + val borderColor = when { + !isSelected && !isPressed -> TerningMain + !isSelected && isPressed -> TerningSub1 + else -> TerningMain + } + + CompositionLocalProvider(LocalRippleTheme provides NoRippleTheme) { + Button( + contentPadding = PaddingValues(paddingVertical), + modifier = modifier + .fillMaxWidth(), + interactionSource = interactionSource, + colors = ButtonDefaults.buttonColors( + containerColor = backgroundColor, + contentColor = textColor, + ), + border = BorderStroke( + width = 1.dp, + color = borderColor + ), + shape = RoundedCornerShape(cornerRadius), + onClick = { onButtonClick() } + ) { + Text( + text = stringResource(id = text), + style = TerningTheme.typography.button3, + textAlign = TextAlign.Center, + ) + } + } +} diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt index 9ea082b3a..11a855eac 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -2,7 +2,9 @@ package com.terning.feature.home.changefilter import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -15,6 +17,7 @@ import com.terning.core.designsystem.component.datepicker.DatePickerUI import com.terning.core.designsystem.component.topappbar.BackButtonTopAppBar import com.terning.core.designsystem.theme.TerningTheme import com.terning.feature.R +import com.terning.feature.home.changefilter.component.ChangeFilteringRadioGroup import com.terning.feature.home.changefilter.component.FilteringMainTitleText import com.terning.feature.home.changefilter.component.FilteringSubTitleText import com.terning.feature.home.home.navigation.navigateHome @@ -53,6 +56,12 @@ fun ChangeFilterScreen(navController: NavController) { end = 24.dp ) ) + ChangeFilteringRadioGroup( + filterType = 0, + modifier = Modifier + .height(36.dp), + onButtonClick = { } + ) showTitle( mainTitle = stringResource(id = R.string.filtering_status2_title), @@ -63,6 +72,12 @@ fun ChangeFilterScreen(navController: NavController) { end = 24.dp ) ) + ChangeFilteringRadioGroup( + filterType = 1, + modifier = Modifier + .height(36.dp), + onButtonClick = { } + ) showTitle( mainTitle = stringResource(id = R.string.filtering_status3_title), diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt new file mode 100644 index 000000000..abdccae91 --- /dev/null +++ b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt @@ -0,0 +1,70 @@ +package com.terning.feature.home.changefilter.component + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyHorizontalGrid +import androidx.compose.foundation.lazy.grid.itemsIndexed +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.terning.core.designsystem.component.button.ChangeFilterButton +import com.terning.core.designsystem.component.button.FilteringButton +import com.terning.feature.R + +@Composable +fun ChangeFilteringRadioGroup( + filterType: Int, + onButtonClick: (Int) -> Unit, + modifier: Modifier = Modifier, +) { + val options = if (filterType == 0) { + listOf( + R.string.filtering_status1_button1, + R.string.filtering_status1_button2, + R.string.filtering_status1_button3, + R.string.filtering_status1_button4, + ) + } else { + listOf( + R.string.filtering_status2_button1, + R.string.filtering_status2_button2, + R.string.filtering_status2_button3, + ) + } + + val selectedIndex = remember { mutableIntStateOf(0) } + val selectedButton = remember { mutableStateListOf(false, false, false, false) } + + LazyHorizontalGrid( + rows = GridCells.Fixed(1), + horizontalArrangement = Arrangement.SpaceBetween, + modifier = modifier + .padding(horizontal = 24.dp) + .fillMaxWidth(), + ) { + itemsIndexed(options) { index, option -> + ChangeFilterButton( + isSelected = selectedButton[index], + modifier = Modifier + .fillMaxWidth(), + text = options[index], + cornerRadius = 10.dp, + paddingVertical = 10.dp, + onButtonClick = { + selectedIndex.intValue = option + selectedButton.indices.forEach { i -> selectedButton[i] = false } + selectedButton[index] = true + onButtonClick(index) + } + ) + } + } +} \ No newline at end of file diff --git a/feature/src/main/res/values/strings.xml b/feature/src/main/res/values/strings.xml index 0e229e01a..2e80cb776 100644 --- a/feature/src/main/res/values/strings.xml +++ b/feature/src/main/res/values/strings.xml @@ -111,6 +111,7 @@ 필터링 재설정 재학 상태를 선택해주세요 + 저장하기 공유 아이콘 From d3e7509b78b4993879e991d45a4c4f4f35671a92 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sun, 14 Jul 2024 05:06:14 +0900 Subject: [PATCH 09/14] =?UTF-8?q?[FEAT/#51]=20UI=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/button/ChangeFilterButton.kt | 7 +++++-- .../home/changefilter/ChangeFilterRoute.kt | 6 ------ .../component/ChangeFilteringRadioGroup.kt | 19 +++++++++---------- feature/src/main/res/values/strings.xml | 2 +- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt b/core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt index c5feb3050..c322ddb6c 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/button/ChangeFilterButton.kt @@ -6,6 +6,8 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsPressedAsState import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ripple.LocalRippleTheme import androidx.compose.material3.Button @@ -56,9 +58,10 @@ fun ChangeFilterButton( CompositionLocalProvider(LocalRippleTheme provides NoRippleTheme) { Button( - contentPadding = PaddingValues(paddingVertical), + contentPadding = PaddingValues(vertical = paddingVertical), modifier = modifier - .fillMaxWidth(), + .fillMaxWidth() + .wrapContentHeight(), interactionSource = interactionSource, colors = ButtonDefaults.buttonColors( containerColor = backgroundColor, diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt index 11a855eac..37c0c486c 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -4,7 +4,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -58,8 +57,6 @@ fun ChangeFilterScreen(navController: NavController) { ) ChangeFilteringRadioGroup( filterType = 0, - modifier = Modifier - .height(36.dp), onButtonClick = { } ) @@ -89,14 +86,12 @@ fun ChangeFilterScreen(navController: NavController) { ) ) - Spacer(modifier = Modifier.padding(12.dp)) Spacer(modifier = Modifier.weight(1f)) DatePickerUI( chosenYear = 2024, chosenMonth = 7, ) Spacer(modifier = Modifier.weight(1f)) - Spacer(modifier = Modifier.padding(33.dp)) RectangleButton( style = TerningTheme.typography.button0, @@ -107,7 +102,6 @@ fun ChangeFilterScreen(navController: NavController) { } ) } - } } diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt index abdccae91..84257cb25 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt @@ -1,13 +1,11 @@ package com.terning.feature.home.changefilter.component import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.grid.GridCells -import androidx.compose.foundation.lazy.grid.LazyHorizontalGrid +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.itemsIndexed import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableIntStateOf @@ -16,7 +14,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.terning.core.designsystem.component.button.ChangeFilterButton -import com.terning.core.designsystem.component.button.FilteringButton import com.terning.feature.R @Composable @@ -43,18 +40,20 @@ fun ChangeFilteringRadioGroup( val selectedIndex = remember { mutableIntStateOf(0) } val selectedButton = remember { mutableStateListOf(false, false, false, false) } - LazyHorizontalGrid( - rows = GridCells.Fixed(1), - horizontalArrangement = Arrangement.SpaceBetween, - modifier = modifier + LazyVerticalGrid( + columns = GridCells.Fixed(options.size), + horizontalArrangement = Arrangement.spacedBy(12.dp), + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() .padding(horizontal = 24.dp) - .fillMaxWidth(), + ) { itemsIndexed(options) { index, option -> ChangeFilterButton( isSelected = selectedButton[index], modifier = Modifier - .fillMaxWidth(), + .wrapContentHeight(), text = options[index], cornerRadius = 10.dp, paddingVertical = 10.dp, diff --git a/feature/src/main/res/values/strings.xml b/feature/src/main/res/values/strings.xml index 2e80cb776..11e708776 100644 --- a/feature/src/main/res/values/strings.xml +++ b/feature/src/main/res/values/strings.xml @@ -110,7 +110,7 @@ 필터링 재설정 - 재학 상태를 선택해주세요 + 재학 상태를 선택해 주세요 저장하기 From 7611e53daa01060e06f7aa8c2f86aeb55ae8d6c7 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sun, 14 Jul 2024 06:32:05 +0900 Subject: [PATCH 10/14] =?UTF-8?q?[FEAT/#51]=20=ED=99=88=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=EB=A7=81=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/changefilter/ChangeFilterRoute.kt | 36 ++++++++++++++----- .../component/ChangeFilteringRadioGroup.kt | 14 +++++++- .../terning/feature/home/home/HomeRoute.kt | 24 ++++++++----- .../feature/home/home/HomeViewModel.kt | 15 ++++++-- .../home/component/HomeFilteringScreen.kt | 23 ++++-------- .../home/home/model/InternFilterData.kt | 4 +-- 6 files changed, 77 insertions(+), 39 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt index 37c0c486c..166a0d3b8 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -2,7 +2,6 @@ package com.terning.feature.home.changefilter import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable @@ -10,6 +9,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.NavController import com.terning.core.designsystem.component.button.RectangleButton import com.terning.core.designsystem.component.datepicker.DatePickerUI @@ -19,7 +19,14 @@ import com.terning.feature.R import com.terning.feature.home.changefilter.component.ChangeFilteringRadioGroup import com.terning.feature.home.changefilter.component.FilteringMainTitleText import com.terning.feature.home.changefilter.component.FilteringSubTitleText +import com.terning.feature.home.home.HomeViewModel +import com.terning.feature.home.home.model.InternFilterData +import com.terning.feature.home.home.model.UserNameState import com.terning.feature.home.home.navigation.navigateHome +import java.util.Calendar + +val currentYear = Calendar.getInstance().get(Calendar.YEAR) +val currentMonth = Calendar.getInstance().get(Calendar.MONTH) @Composable fun ChangeFilterRoute( @@ -29,7 +36,10 @@ fun ChangeFilterRoute( } @Composable -fun ChangeFilterScreen(navController: NavController) { +fun ChangeFilterScreen( + navController: NavController, + viewModel: HomeViewModel = hiltViewModel(), +) { Scaffold( topBar = { BackButtonTopAppBar( @@ -57,7 +67,18 @@ fun ChangeFilterScreen(navController: NavController) { ) ChangeFilteringRadioGroup( filterType = 0, - onButtonClick = { } + internFilterData = viewModel.userName.internFilter, + onButtonClick = { viewModel.setGrade(it) } + ) + + UserNameState( + userName = "남지우자랑스러운티엘이되", + internFilter = InternFilterData( + grade = 4, + workingPeriod = 1, + startYear = 2024, + startMonth = 7, + ) ) showTitle( @@ -71,9 +92,8 @@ fun ChangeFilterScreen(navController: NavController) { ) ChangeFilteringRadioGroup( filterType = 1, - modifier = Modifier - .height(36.dp), - onButtonClick = { } + internFilterData = viewModel.userName.internFilter, + onButtonClick = { viewModel.setWorkingPeriod(it) } ) showTitle( @@ -88,8 +108,8 @@ fun ChangeFilterScreen(navController: NavController) { Spacer(modifier = Modifier.weight(1f)) DatePickerUI( - chosenYear = 2024, - chosenMonth = 7, + chosenYear = currentYear, + chosenMonth = currentMonth, ) Spacer(modifier = Modifier.weight(1f)) diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt index 84257cb25..ad7e222a0 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt @@ -15,10 +15,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.terning.core.designsystem.component.button.ChangeFilterButton import com.terning.feature.R +import com.terning.feature.home.home.model.InternFilterData @Composable fun ChangeFilteringRadioGroup( filterType: Int, + internFilterData: InternFilterData?, onButtonClick: (Int) -> Unit, modifier: Modifier = Modifier, ) { @@ -38,7 +40,17 @@ fun ChangeFilteringRadioGroup( } val selectedIndex = remember { mutableIntStateOf(0) } - val selectedButton = remember { mutableStateListOf(false, false, false, false) } + var selectedButton = remember { mutableStateListOf(false, false, false, false) } + + if(filterType == 0) { + selectedButton[ + internFilterData?.grade ?: 0 + ] = true + } else { + selectedButton[ + internFilterData?.workingPeriod ?: 0 + ] = true + } LazyVerticalGrid( columns = GridCells.Fixed(options.size), diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index c59b90525..6049417a4 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -215,21 +215,27 @@ private fun ShowRecommendTitle() { @Composable private fun ShowInternFilter(userNameState: UserNameState, navController: NavHostController) { - if (userNameState.internFilter == null) { + if (userNameState.internFilter?.grade == null) { HomeFilteringScreen( - grade = R.string.home_recommend_no_filtering_hyphen, - period = R.string.home_recommend_no_filtering_hyphen, - startYear = R.string.home_recommend_no_filtering_hyphen, - startMonth = R.string.home_recommend_no_filtering_hyphen, + grade = stringResource(id = R.string.home_recommend_no_filtering_hyphen), + period = stringResource(id = R.string.home_recommend_no_filtering_hyphen), + startYear = stringResource(id = R.string.home_recommend_no_filtering_hyphen), onChangeFilterClick = { navController.navigateChangeFilter() }, ) } else { with(userNameState.internFilter) { HomeFilteringScreen( - grade = grade, - period = workingPeriod, - startYear = startYear, - startMonth = startMonth, + grade = (grade + 1).toString() + stringResource(id = R.string.home_recommend_filtering_grade), + period = stringResource( + id = when (workingPeriod) { + 0 -> R.string.filtering_status2_button1 + 1 -> R.string.filtering_status2_button2 + 2 -> R.string.filtering_status2_button3 + else -> R.string.home_recommend_no_filtering_hyphen + } + ), + startYear = startYear.toString() + stringResource(id = R.string.home_recommend_filtering_startYear) + + " " + startMonth.toString() + stringResource(id = R.string.home_recommend_filtering_startMonth), onChangeFilterClick = { navController.navigateChangeFilter() }, ) } diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt index 68fd0d2f1..0cc14b5bd 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt @@ -28,7 +28,7 @@ class HomeViewModel @Inject constructor( UserNameState( userName = "남지우자랑스러운티엘이되", internFilter = InternFilterData( - grade = 4, + grade = 1, workingPeriod = 1, startYear = 2024, startMonth = 7, @@ -46,10 +46,19 @@ class HomeViewModel @Inject constructor( val scrapData get() = _scrapState.asStateFlow() private val _recommendInternState = MutableStateFlow>( -// getRecommendData() - listOf() + getRecommendData() +// listOf() ) val recommendInternData get() = _recommendInternState.asStateFlow() + + fun setGrade(grade: Int) { + userName.internFilter?.grade = grade + } + + fun setWorkingPeriod(workingPeriod: Int) { + userName.internFilter?.workingPeriod = workingPeriod + } + } private fun getScrapData(): List = listOf( diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt b/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt index 8b9e5d385..8011d60cf 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt @@ -29,10 +29,9 @@ import com.terning.feature.R @Composable fun HomeFilteringScreen( - grade: Int, - period: Int, - startYear: Int, - startMonth: Int, + grade: String, + period: String, + startYear: String, onChangeFilterClick: () -> Unit, modifier: Modifier = Modifier, ) { @@ -71,29 +70,21 @@ fun HomeFilteringScreen( } HomeFilteringText( - text = grade.toString() + stringResource(id = R.string.home_recommend_filtering_grade), + text = grade, modifier = Modifier .padding(vertical = 7.dp) ) HomeFilteringDivider() HomeFilteringText( - text = stringResource( - id = when (period) { - 1 -> R.string.filtering_status2_button1 - 2 -> R.string.filtering_status2_button2 - 3 -> R.string.filtering_status2_button3 - else -> R.string.server_failure - } - ), + text = period, modifier = Modifier .padding(vertical = 7.dp) ) HomeFilteringDivider() HomeFilteringText( - text = startYear.toString() + stringResource(id = R.string.home_recommend_filtering_startYear) - + " " + startMonth.toString() + stringResource(id = R.string.home_recommend_filtering_startMonth), + text = startYear, modifier = Modifier - .padding(vertical = 7.dp) + .padding(top = 7.dp, bottom = 7.dp) ) } } diff --git a/feature/src/main/java/com/terning/feature/home/home/model/InternFilterData.kt b/feature/src/main/java/com/terning/feature/home/home/model/InternFilterData.kt index b819d24fb..894faaddd 100644 --- a/feature/src/main/java/com/terning/feature/home/home/model/InternFilterData.kt +++ b/feature/src/main/java/com/terning/feature/home/home/model/InternFilterData.kt @@ -1,8 +1,8 @@ package com.terning.feature.home.home.model data class InternFilterData( - val grade: Int, - val workingPeriod: Int, + var grade: Int, + var workingPeriod: Int, val startYear: Int, val startMonth: Int, ) From a629b73a63fdddcb92c09bfb25b6fa0d68e6f1e9 Mon Sep 17 00:00:00 2001 From: LEE YOU BIN Date: Mon, 15 Jul 2024 23:02:28 +0900 Subject: [PATCH 11/14] =?UTF-8?q?[FIX/#71]=20Manifest=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 32 +++++++++++++++++++++++++++- feature/src/main/AndroidManifest.xml | 32 ---------------------------- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0690f2838..06e8aafce 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,10 +14,40 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:usesCleartextTraffic="true" android:theme="@style/Theme.TerningAndroid" + android:usesCleartextTraffic="true" tools:targetApi="31"> + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/feature/src/main/AndroidManifest.xml b/feature/src/main/AndroidManifest.xml index 708160b1c..a5918e68a 100644 --- a/feature/src/main/AndroidManifest.xml +++ b/feature/src/main/AndroidManifest.xml @@ -1,36 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From dfd0c0bfb9977f42c73e689d8a181c1af976a289 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Mon, 15 Jul 2024 23:47:45 +0900 Subject: [PATCH 12/14] =?UTF-8?q?[CHORE/#51]=20=ED=95=A8=EC=88=98=EB=AA=85?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/home/changefilter/ChangeFilterRoute.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt index 166a0d3b8..643857488 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/ChangeFilterRoute.kt @@ -56,7 +56,7 @@ fun ChangeFilterScreen( top = paddingValues.calculateTopPadding(), ) ) { - showTitle( + ShowTitle( mainTitle = stringResource(id = R.string.change_filter_grade_main), subTitle = stringResource(id = R.string.filtering_status1_sub), modifier = Modifier.padding( @@ -81,7 +81,7 @@ fun ChangeFilterScreen( ) ) - showTitle( + ShowTitle( mainTitle = stringResource(id = R.string.filtering_status2_title), subTitle = stringResource(id = R.string.filtering_status2_sub), modifier = Modifier.padding( @@ -96,7 +96,7 @@ fun ChangeFilterScreen( onButtonClick = { viewModel.setWorkingPeriod(it) } ) - showTitle( + ShowTitle( mainTitle = stringResource(id = R.string.filtering_status3_title), subTitle = stringResource(id = R.string.filtering_status3_sub), modifier = Modifier.padding( @@ -126,7 +126,7 @@ fun ChangeFilterScreen( } @Composable -private fun showTitle( +private fun ShowTitle( mainTitle: String, subTitle: String, modifier: Modifier = Modifier, From 76e30b2f1bc1c72ba3c82721e6195f0542ea9e4d Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Mon, 15 Jul 2024 23:55:10 +0900 Subject: [PATCH 13/14] =?UTF-8?q?[MOD/#51]=20navController=20HomeRoute?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/terning/feature/home/home/HomeRoute.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index 6049417a4..e35492375 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -60,14 +60,17 @@ fun HomeRoute( val currentSortBy: MutableState = remember { mutableIntStateOf(0) } - HomeScreen(currentSortBy, navController) + HomeScreen( + currentSortBy, + onChangeFilterClick = { navController.navigateChangeFilter() } + ) } @OptIn(ExperimentalFoundationApi::class) @Composable fun HomeScreen( currentSortBy: MutableState, - navController: NavHostController, + onChangeFilterClick: () -> Unit, viewModel: HomeViewModel = hiltViewModel(), ) { val userNameState = viewModel.userName @@ -118,7 +121,7 @@ fun HomeScreen( .background(White) ) { ShowRecommendTitle() - ShowInternFilter(userNameState = userNameState, navController) + ShowInternFilter(userNameState = userNameState, onChangeFilterClick) HorizontalDivider( thickness = 4.dp, @@ -214,13 +217,13 @@ private fun ShowRecommendTitle() { } @Composable -private fun ShowInternFilter(userNameState: UserNameState, navController: NavHostController) { +private fun ShowInternFilter(userNameState: UserNameState, onChangeFilterClick: () -> Unit) { if (userNameState.internFilter?.grade == null) { HomeFilteringScreen( grade = stringResource(id = R.string.home_recommend_no_filtering_hyphen), period = stringResource(id = R.string.home_recommend_no_filtering_hyphen), startYear = stringResource(id = R.string.home_recommend_no_filtering_hyphen), - onChangeFilterClick = { navController.navigateChangeFilter() }, + onChangeFilterClick = { onChangeFilterClick() }, ) } else { with(userNameState.internFilter) { @@ -236,7 +239,7 @@ private fun ShowInternFilter(userNameState: UserNameState, navController: NavHos ), startYear = startYear.toString() + stringResource(id = R.string.home_recommend_filtering_startYear) + " " + startMonth.toString() + stringResource(id = R.string.home_recommend_filtering_startMonth), - onChangeFilterClick = { navController.navigateChangeFilter() }, + onChangeFilterClick = { onChangeFilterClick() }, ) } } From 8d02b6b3b13aabd9905eceba83a3545cee68d3dc Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Mon, 15 Jul 2024 23:57:44 +0900 Subject: [PATCH 14/14] =?UTF-8?q?[CHORE/#51]=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/changefilter/component/ChangeFilteringRadioGroup.kt | 4 ++-- .../main/java/com/terning/feature/home/home/HomeViewModel.kt | 1 - .../src/main/java/com/terning/feature/main/MainNavigator.kt | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt index ad7e222a0..ca60a3b12 100644 --- a/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt +++ b/feature/src/main/java/com/terning/feature/home/changefilter/component/ChangeFilteringRadioGroup.kt @@ -42,7 +42,7 @@ fun ChangeFilteringRadioGroup( val selectedIndex = remember { mutableIntStateOf(0) } var selectedButton = remember { mutableStateListOf(false, false, false, false) } - if(filterType == 0) { + if (filterType == 0) { selectedButton[ internFilterData?.grade ?: 0 ] = true @@ -55,7 +55,7 @@ fun ChangeFilteringRadioGroup( LazyVerticalGrid( columns = GridCells.Fixed(options.size), horizontalArrangement = Arrangement.spacedBy(12.dp), - modifier = Modifier + modifier = modifier .fillMaxWidth() .wrapContentHeight() .padding(horizontal = 24.dp) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt index 0cc14b5bd..00dbb12f9 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt @@ -47,7 +47,6 @@ class HomeViewModel @Inject constructor( private val _recommendInternState = MutableStateFlow>( getRecommendData() -// listOf() ) val recommendInternData get() = _recommendInternState.asStateFlow() diff --git a/feature/src/main/java/com/terning/feature/main/MainNavigator.kt b/feature/src/main/java/com/terning/feature/main/MainNavigator.kt index 1b50c7d23..b538c3e58 100644 --- a/feature/src/main/java/com/terning/feature/main/MainNavigator.kt +++ b/feature/src/main/java/com/terning/feature/main/MainNavigator.kt @@ -10,9 +10,9 @@ import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import androidx.navigation.navOptions import com.terning.feature.calendar.navigation.navigateCalendar -import com.terning.feature.home.home.navigation.Home import com.terning.feature.home.home.navigation.navigateHome import com.terning.feature.mypage.navigation.navigateMyPage +import com.terning.feature.onboarding.signin.navigation.SignIn import com.terning.feature.search.search.navigation.navigateSearch class MainNavigator( @@ -22,7 +22,7 @@ class MainNavigator( @Composable get() = navController .currentBackStackEntryAsState().value?.destination - val startDestination = Home + val startDestination = SignIn val currentTab: MainTab? @Composable get() = MainTab.find { tab ->