From cd9d97aa2fec8746243e2bf332023895c2462c21 Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 13:08:14 +0900 Subject: [PATCH 01/14] =?UTF-8?q?[feat=20#8]=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=ED=95=84=EC=9A=94=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EB=B0=8F?= =?UTF-8?q?=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/drawable/ic_center_onboarding.xml | 78 ++++++++++++++++ .../res/drawable/ic_doctor_onboarding.xml | 74 ++++++++++++++++ app/src/main/res/drawable/ic_loginimg.xml | 88 +++++++++++++++++++ .../res/drawable/ic_patience_onboarding.xml | 67 ++++++++++++++ app/src/main/res/drawable/img_background.xml | 28 ++++++ 5 files changed, 335 insertions(+) create mode 100644 app/src/main/res/drawable/ic_center_onboarding.xml create mode 100644 app/src/main/res/drawable/ic_doctor_onboarding.xml create mode 100644 app/src/main/res/drawable/ic_loginimg.xml create mode 100644 app/src/main/res/drawable/ic_patience_onboarding.xml create mode 100644 app/src/main/res/drawable/img_background.xml diff --git a/app/src/main/res/drawable/ic_center_onboarding.xml b/app/src/main/res/drawable/ic_center_onboarding.xml new file mode 100644 index 0000000..ed58da6 --- /dev/null +++ b/app/src/main/res/drawable/ic_center_onboarding.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_doctor_onboarding.xml b/app/src/main/res/drawable/ic_doctor_onboarding.xml new file mode 100644 index 0000000..479f9f9 --- /dev/null +++ b/app/src/main/res/drawable/ic_doctor_onboarding.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_loginimg.xml b/app/src/main/res/drawable/ic_loginimg.xml new file mode 100644 index 0000000..f88ab2f --- /dev/null +++ b/app/src/main/res/drawable/ic_loginimg.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_patience_onboarding.xml b/app/src/main/res/drawable/ic_patience_onboarding.xml new file mode 100644 index 0000000..1fb73bc --- /dev/null +++ b/app/src/main/res/drawable/ic_patience_onboarding.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/img_background.xml b/app/src/main/res/drawable/img_background.xml new file mode 100644 index 0000000..321df7c --- /dev/null +++ b/app/src/main/res/drawable/img_background.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + From cc2f114b7d596a50887d927beb87c80b2a9c1f7c Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 13:24:27 +0900 Subject: [PATCH 02/14] =?UTF-8?q?[feat=20#8]=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=ED=95=84=EC=9A=94=ED=95=9C=20=ED=99=94=EB=A9=B4=20graph?= =?UTF-8?q?=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/remind/app/Screens.kt | 5 +++++ .../remind/feature/screens/auth/AuthGraph.kt | 20 +++++++++++++++++++ .../auth/onboarding/OnBoardingCenter.kt | 8 ++++++++ .../auth/onboarding/OnBoardingCheckDoctor.kt | 8 ++++++++ .../auth/onboarding/OnBoardingFinal.kt | 8 ++++++++ .../onboarding/OnBoardingLoadingDoctor.kt | 8 ++++++++ .../auth/onboarding/OnBoardingPatience.kt | 8 ++++++++ 7 files changed, 65 insertions(+) create mode 100644 app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt create mode 100644 app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt create mode 100644 app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt create mode 100644 app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingLoadingDoctor.kt create mode 100644 app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt diff --git a/app/src/main/java/com/example/remind/app/Screens.kt b/app/src/main/java/com/example/remind/app/Screens.kt index fa7c3a1..e614690 100644 --- a/app/src/main/java/com/example/remind/app/Screens.kt +++ b/app/src/main/java/com/example/remind/app/Screens.kt @@ -7,6 +7,11 @@ sealed class Screens(val route: String) { object Register: Screens("register") { object Login: Screens("login") object SelectType: Screens("selecttype") + object OnBoardingPatience: Screens("patience_onboarding") + object OnBoardingCheckDoctor: Screens("doctor_1") + object OnBoardingLoadingDoctor: Screens("doctor_2") + object OnBoardingCenter: Screens("center_onboarding") + object OnBoardingFinal: Screens("final_onboarding") } object Doctor: Screens("doctor") { diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt index fc34784..a3cae50 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt @@ -9,6 +9,11 @@ import com.example.remind.feature.screens.auth.login.LoginViewModel import androidx.hilt.navigation.compose.hiltViewModel import com.example.remind.feature.screens.auth.login.LoginScreen +import com.example.remind.feature.screens.auth.onboarding.OnBoardingCenterScreen +import com.example.remind.feature.screens.auth.onboarding.OnBoardingCheckDoctorScreen +import com.example.remind.feature.screens.auth.onboarding.OnBoardingFinalScreen +import com.example.remind.feature.screens.auth.onboarding.OnBoardingLoadingDoctorScreen +import com.example.remind.feature.screens.auth.onboarding.OnBoardingPatienceScreen import com.example.remind.feature.screens.auth.onboarding.SelectTypeScreen @@ -26,5 +31,20 @@ fun NavGraphBuilder.RegisterGraph( composable(route = Screens.Register.SelectType.route) { SelectTypeScreen(navHostController) } + composable(route = Screens.Register.OnBoardingPatience.route) { + OnBoardingPatienceScreen() + } + composable(route = Screens.Register.OnBoardingCheckDoctor.route) { + OnBoardingCheckDoctorScreen() + } + composable(route = Screens.Register.OnBoardingLoadingDoctor.route) { + OnBoardingLoadingDoctorScreen() + } + composable(route = Screens.Register.OnBoardingCenter.route) { + OnBoardingCenterScreen() + } + composable(route = Screens.Register.OnBoardingFinal.route) { + OnBoardingFinalScreen() + } } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt new file mode 100644 index 0000000..3660275 --- /dev/null +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt @@ -0,0 +1,8 @@ +package com.example.remind.feature.screens.auth.onboarding + +import androidx.compose.runtime.Composable + +@Composable +fun OnBoardingCenterScreen() { + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt new file mode 100644 index 0000000..f57935d --- /dev/null +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt @@ -0,0 +1,8 @@ +package com.example.remind.feature.screens.auth.onboarding + +import androidx.compose.runtime.Composable + +@Composable +fun OnBoardingCheckDoctorScreen() { + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt new file mode 100644 index 0000000..2913f5e --- /dev/null +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt @@ -0,0 +1,8 @@ +package com.example.remind.feature.screens.auth.onboarding + +import androidx.compose.runtime.Composable + +@Composable +fun OnBoardingFinalScreen() { + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingLoadingDoctor.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingLoadingDoctor.kt new file mode 100644 index 0000000..6ee5ca8 --- /dev/null +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingLoadingDoctor.kt @@ -0,0 +1,8 @@ +package com.example.remind.feature.screens.auth.onboarding + +import androidx.compose.runtime.Composable + +@Composable +fun OnBoardingLoadingDoctorScreen() { + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt new file mode 100644 index 0000000..e8eb015 --- /dev/null +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt @@ -0,0 +1,8 @@ +package com.example.remind.feature.screens.auth.onboarding + +import androidx.compose.runtime.Composable + +@Composable +fun OnBoardingPatienceScreen() { + +} \ No newline at end of file From 8b8130a64261c09972690861746b7aec5c849be8 Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 14:16:11 +0900 Subject: [PATCH 03/14] =?UTF-8?q?[design=20#8]=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=ED=99=94=EB=A9=B4=20ui=EB=94=94=EC=9E=90=EC=9D=B8?= =?UTF-8?q?=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/remind/app/MainActivity.kt | 7 - .../designsystem/theme/RemindTypography.kt | 13 ++ .../remind/feature/screens/auth/AuthGraph.kt | 2 +- .../feature/screens/auth/login/LoginScreen.kt | 127 +++++++++++++++++- app/src/main/res/values/strings.xml | 3 + 5 files changed, 137 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/example/remind/app/MainActivity.kt b/app/src/main/java/com/example/remind/app/MainActivity.kt index 607a257..4683ddd 100644 --- a/app/src/main/java/com/example/remind/app/MainActivity.kt +++ b/app/src/main/java/com/example/remind/app/MainActivity.kt @@ -1,19 +1,12 @@ package com.example.remind.app -import android.graphics.Color import android.os.Bundle import android.util.Log -import android.view.View import androidx.activity.ComponentActivity -import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent -import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material.Surface -import androidx.compose.material.TopAppBar import androidx.compose.ui.Modifier -import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen -import androidx.core.view.WindowCompat import com.example.remind.core.designsystem.theme.RemindTheme import com.google.firebase.Firebase import dagger.hilt.android.AndroidEntryPoint diff --git a/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt b/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt index 62944e7..1246da1 100644 --- a/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt +++ b/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt @@ -308,6 +308,19 @@ data class RemindTypography( trim = LineHeightStyle.Trim.None ) ), + val onBoardingFont: TextStyle = TextStyle( + fontFamily = Pretendard, + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + lineHeight = 48.sp, + platformStyle = PlatformTextStyle( + includeFontPadding = false + ), + lineHeightStyle = LineHeightStyle( + alignment = LineHeightStyle.Alignment.Center, + trim = LineHeightStyle.Trim.None + ) + ) ) val LocalTypography = staticCompositionLocalOf { RemindTypography() } diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt index a3cae50..39bf726 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt @@ -26,7 +26,7 @@ fun NavGraphBuilder.RegisterGraph( ) { composable(route = Screens.Register.Login.route) { val viewModel: LoginViewModel = hiltViewModel() - LoginScreen(viewModel,navHostController) + LoginScreen(navHostController) } composable(route = Screens.Register.SelectType.route) { SelectTypeScreen(navHostController) diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt index d9868f2..6e000f6 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt @@ -1,22 +1,43 @@ package com.example.remind.feature.screens.auth.login +import android.content.Context +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavHostController +import com.example.remind.R +import com.example.remind.core.designsystem.theme.RemindTheme +import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.collectLatest @Composable fun LoginScreen( - viewModel: LoginViewModel, navController: NavHostController ){ + val viewModel: LoginViewModel = hiltViewModel() val uiState by viewModel.uiState.collectAsStateWithLifecycle() val effectFlow = viewModel.effect val context = LocalContext.current @@ -32,11 +53,103 @@ fun LoginScreen( } } - Column() { - Button(onClick = { - viewModel.setEvent(LoginContract.Event.KakaoLoginButtonClicked(context)) - }) { - Text(text = "로그인") + RemindTheme { + Column() { + Box( + modifier = Modifier + .fillMaxSize() + ) { + Image( + modifier = Modifier.fillMaxSize(), + painter = painterResource(R.drawable.img_background), + contentDescription = null + ) + Text( + modifier = Modifier + .align(Alignment.TopStart) + .padding(start = 22.dp, top = 117.dp), + text = stringResource(id = R.string.스스로를_돌아볼_수_있는), + style = RemindTheme.typography.onBoardingFont.copy(color = RemindTheme.colors.white) + ) + Image( + modifier = Modifier + .align(Alignment.TopStart) + .padding(top = 338.dp), + painter = painterResource(R.drawable.ic_loginimg), + contentDescription = null + ) + Button( + modifier = Modifier + .fillMaxWidth() + .align(Alignment.BottomCenter) + .padding(bottom = 32.dp, start = 20.dp, end = 20.dp), + onClick = {}, + shape = RoundedCornerShape(12.dp), + contentPadding = PaddingValues(vertical = 13.dp), + colors = ButtonDefaults.buttonColors( + containerColor = Color(0xFFF9E217), + contentColor =Color(0xFF13151B) + ) + ) { + Text( + text = stringResource(id = R.string.카카오로_로그인하기), + style = RemindTheme.typography.b2Bold.copy(color = Color(0xFF13151B)) + ) + } + } + } + } +} + + + +@Preview +@Composable +fun LoginScreenPreview() { + RemindTheme { + Column() { + Box( + modifier = Modifier + .fillMaxSize() + ) { + Image( + modifier = Modifier.fillMaxSize(), + painter = painterResource(R.drawable.img_background), + contentDescription = null + ) + Text( + modifier = Modifier + .align(Alignment.TopStart) + .padding(start = 22.dp, top = 117.dp), + text = stringResource(id = R.string.스스로를_돌아볼_수_있는), + style = RemindTheme.typography.onBoardingFont.copy(color = RemindTheme.colors.white) + ) + Image( + modifier = Modifier + .align(Alignment.TopStart) + .padding(top = 338.dp), + painter = painterResource(R.drawable.ic_loginimg), + contentDescription = null + ) + Button( + modifier = Modifier + .fillMaxWidth() + .align(Alignment.BottomCenter) + .padding(bottom = 32.dp, start = 20.dp, end = 20.dp), + onClick = {}, + shape = RoundedCornerShape(12.dp), + contentPadding = PaddingValues(vertical = 13.dp), + colors = ButtonDefaults.buttonColors( + containerColor = Color(0xFFF9E217), + contentColor =Color(0xFF13151B) + ) + ) { + Text( + text = stringResource(id = R.string.카카오로_로그인하기), + style = RemindTheme.typography.b2Bold.copy(color = Color(0xFF13151B)) + ) + } + } } } -} \ No newline at end of file +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c4c170e..e4f2868 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,6 +7,9 @@ Next Previous + 스스로를 돌아볼 수 있는\n당신만의 공간으로 초대합니다. + 카카오로 로그인하기 + 김말랑 님, 좋은 하루 되세요! 관리 중인 환자 From 75726ce6d5269a8ddd17a44732aa73387750aa0f Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 15:51:29 +0900 Subject: [PATCH 04/14] =?UTF-8?q?[design=20#8]=20splash=ED=99=94=EB=A9=B4?= =?UTF-8?q?=20ui=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designsystem/theme/RemindTypography.kt | 13 ++++ .../feature/screens/auth/login/LoginScreen.kt | 66 +++---------------- .../screens/auth/login/LoginViewModel.kt | 5 +- .../screens/auth/splash/SplashScreen.kt | 41 +++++++++++- app/src/main/res/drawable/ic_logo_splash.xml | 21 ++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 86 insertions(+), 61 deletions(-) create mode 100644 app/src/main/res/drawable/ic_logo_splash.xml diff --git a/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt b/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt index 1246da1..780e357 100644 --- a/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt +++ b/app/src/main/java/com/example/remind/core/designsystem/theme/RemindTypography.kt @@ -320,6 +320,19 @@ data class RemindTypography( alignment = LineHeightStyle.Alignment.Center, trim = LineHeightStyle.Trim.None ) + ), + val onSplashFont: TextStyle = TextStyle( + fontFamily = Pretendard, + fontWeight = FontWeight.SemiBold, + fontSize = 15.sp, + lineHeight = 3.sp, + platformStyle = PlatformTextStyle( + includeFontPadding = false + ), + lineHeightStyle = LineHeightStyle( + alignment = LineHeightStyle.Alignment.Center, + trim = LineHeightStyle.Trim.None + ) ) ) diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt index 6e000f6..3b54e76 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -19,6 +20,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -38,7 +40,6 @@ fun LoginScreen( navController: NavHostController ){ val viewModel: LoginViewModel = hiltViewModel() - val uiState by viewModel.uiState.collectAsStateWithLifecycle() val effectFlow = viewModel.effect val context = LocalContext.current @@ -48,7 +49,6 @@ fun LoginScreen( is LoginContract.Effect.NavigateTo -> { navController.navigate(effect.destinaton, effect.navOptions) } - else->{} } } } @@ -60,62 +60,12 @@ fun LoginScreen( .fillMaxSize() ) { Image( - modifier = Modifier.fillMaxSize(), - painter = painterResource(R.drawable.img_background), - contentDescription = null - ) - Text( - modifier = Modifier - .align(Alignment.TopStart) - .padding(start = 22.dp, top = 117.dp), - text = stringResource(id = R.string.스스로를_돌아볼_수_있는), - style = RemindTheme.typography.onBoardingFont.copy(color = RemindTheme.colors.white) - ) - Image( - modifier = Modifier - .align(Alignment.TopStart) - .padding(top = 338.dp), - painter = painterResource(R.drawable.ic_loginimg), - contentDescription = null - ) - Button( modifier = Modifier .fillMaxWidth() - .align(Alignment.BottomCenter) - .padding(bottom = 32.dp, start = 20.dp, end = 20.dp), - onClick = {}, - shape = RoundedCornerShape(12.dp), - contentPadding = PaddingValues(vertical = 13.dp), - colors = ButtonDefaults.buttonColors( - containerColor = Color(0xFFF9E217), - contentColor =Color(0xFF13151B) - ) - ) { - Text( - text = stringResource(id = R.string.카카오로_로그인하기), - style = RemindTheme.typography.b2Bold.copy(color = Color(0xFF13151B)) - ) - } - } - } - } -} - - - -@Preview -@Composable -fun LoginScreenPreview() { - RemindTheme { - Column() { - Box( - modifier = Modifier - .fillMaxSize() - ) { - Image( - modifier = Modifier.fillMaxSize(), + .fillMaxHeight(), painter = painterResource(R.drawable.img_background), - contentDescription = null + contentDescription = null, + contentScale = ContentScale.FillBounds ) Text( modifier = Modifier @@ -136,7 +86,9 @@ fun LoginScreenPreview() { .fillMaxWidth() .align(Alignment.BottomCenter) .padding(bottom = 32.dp, start = 20.dp, end = 20.dp), - onClick = {}, + onClick = { + viewModel.setEvent(LoginContract.Event.KakaoLoginButtonClicked(context)) + }, shape = RoundedCornerShape(12.dp), contentPadding = PaddingValues(vertical = 13.dp), colors = ButtonDefaults.buttonColors( @@ -152,4 +104,4 @@ fun LoginScreenPreview() { } } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt index 3d68e8a..c433d30 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt @@ -7,6 +7,8 @@ import androidx.navigation.navOptions import com.example.remind.app.Screens import com.example.remind.core.base.BaseViewModel import com.example.remind.data.model.request.KakaoLoginRequest +import com.example.remind.data.network.adapter.ApiResult +import com.example.remind.data.network.adapter.onFailure import com.example.remind.data.network.adapter.onSuccess import com.example.remind.data.network.interceptor.TokenManager import com.example.remind.domain.usecase.KakaoTokenUseCase @@ -39,7 +41,6 @@ class LoginViewModel @Inject constructor( } } private fun KakaoLogin(context : Context) { - val callback: (OAuthToken?, Throwable?) -> Unit = { token, error -> if(error != null) { Log.e("kakao", "카카오 로그인 실패") @@ -87,7 +88,9 @@ class LoginViewModel @Inject constructor( } )) } + } } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashScreen.kt index 3fdfc8e..ea36e60 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashScreen.kt @@ -1,12 +1,22 @@ package com.example.remind.feature.screens.auth.splash import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.NavHostController import com.example.remind.R @@ -26,9 +36,34 @@ fun SplashScreen( modifier = Modifier .fillMaxSize() ) { - Image(painter = painterResource( - id = R.drawable.ic_logo), - contentDescription = null) + Box( + modifier = Modifier + .fillMaxSize(), + ) { + Box( + modifier = Modifier + .fillMaxSize() + .background(color = RemindTheme.colors.main_6) + ) + Column( + modifier = Modifier + .align(Alignment.Center), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Image( + modifier = Modifier + .width(139.dp) + .height(83.dp), + painter = painterResource(id = R.drawable.ic_logo_splash), + contentDescription = null, + ) + Text( + modifier = Modifier.padding(top = 24.dp), + text = stringResource(id = R.string.진료실_밖_일상을_더하다), + style = RemindTheme.typography.onSplashFont.copy(color = RemindTheme.colors.white) + ) + } + } } } diff --git a/app/src/main/res/drawable/ic_logo_splash.xml b/app/src/main/res/drawable/ic_logo_splash.xml new file mode 100644 index 0000000..16df44a --- /dev/null +++ b/app/src/main/res/drawable/ic_logo_splash.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e4f2868..b569e17 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,6 +9,7 @@ 스스로를 돌아볼 수 있는\n당신만의 공간으로 초대합니다. 카카오로 로그인하기 + 진료실 밖 일상을 더하다 김말랑 님, 좋은 하루 되세요! From f497f641013527c1796531cc76018221b03f9ddd Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 16:19:11 +0900 Subject: [PATCH 05/14] =?UTF-8?q?[feat=20#8]=20=EB=84=A4=ED=8A=B8=EC=9B=8C?= =?UTF-8?q?=ED=81=AC=20=EC=83=81=ED=83=9C=EB=B3=84=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screens/auth/login/LoginContract.kt | 1 + .../feature/screens/auth/login/LoginScreen.kt | 4 ++ .../screens/auth/login/LoginViewModel.kt | 42 ++++++++++++------- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt index dad21e9..74a2e6a 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt @@ -20,5 +20,6 @@ class LoginContract { val destinaton: String, val navOptions: NavOptions? = null ): Effect() + data class Toastmessage(val message: String): Effect() } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt index 3b54e76..018472d 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt @@ -1,6 +1,7 @@ package com.example.remind.feature.screens.auth.login import android.content.Context +import android.widget.Toast import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -49,6 +50,9 @@ fun LoginScreen( is LoginContract.Effect.NavigateTo -> { navController.navigate(effect.destinaton, effect.navOptions) } + is LoginContract.Effect.Toastmessage -> { + Toast.makeText(context, effect.message, Toast.LENGTH_SHORT).show() + } } } } diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt index c433d30..b14aaf8 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt @@ -70,27 +70,39 @@ class LoginViewModel @Inject constructor( } } - private fun socialLogin(token: String) { - viewModelScope.launch { - authUseCase.invoke(KakaoLoginRequest(token)) - .onSuccess { - runBlocking { tokenManager.saveAccessToken( - it.data.accessToken, - it.data.refreshToken + +private fun socialLogin(token: String) { + viewModelScope.launch { + val result = authUseCase.invoke(KakaoLoginRequest(token)) + when(result) { + is ApiResult.Success -> { + runBlocking { tokenManager.saveAccessToken( + result.data.data.accessToken, + result.data.data.refreshToken ) } - postEffect( - LoginContract.Effect.NavigateTo( + postEffect( + LoginContract.Effect.NavigateTo( destinaton = Screens.Register.SelectType.route, navOptions = navOptions { - popUpTo(Screens.Register.Login.route) { - inclusive = true - } + popUpTo( + Screens.Register.Login.route + ) } - )) - } - + ) + ) + } + is ApiResult.Failure.UnknownApiError -> { + postEffect(LoginContract.Effect.Toastmessage("리마인드 서버 관리자에게 문의하세요")) + } + is ApiResult.Failure.NetworkError -> { + postEffect(LoginContract.Effect.Toastmessage("네트워크 설정을 확인해주세요")) + } + is ApiResult.Failure.HttpError -> { + postEffect(LoginContract.Effect.Toastmessage("Http 오류가 발생했습니다")) + } } } +} } \ No newline at end of file From c59a55de0bd936479e7964e0e3d125e0826a7515 Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 18:59:27 +0900 Subject: [PATCH 06/14] =?UTF-8?q?[feat=20#8]=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=20=EC=9E=85=EC=9E=A5=20=EC=84=A0=ED=83=9D=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=20=EB=B0=8F=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/common/component/BasicButton.kt | 25 +-- .../remind/feature/screens/auth/AuthGraph.kt | 1 - .../screens/auth/login/LoginContract.kt | 2 +- .../feature/screens/auth/login/LoginScreen.kt | 22 +-- .../auth/onboarding/OnBoardingCenter.kt | 5 + .../auth/onboarding/OnBoardingCheckDoctor.kt | 5 + .../auth/onboarding/OnBoardingContract.kt | 4 +- .../auth/onboarding/OnBoardingPatience.kt | 6 +- .../auth/onboarding/OnBoardingViewModel.kt | 107 ++++++---- .../auth/onboarding/SelectTypeScreen.kt | 185 ++++++++++++++++-- .../screens/auth/splash/SplashViewModel.kt | 12 +- .../screens/doctor/DoctorMainScreen.kt | 12 +- .../screens/doctor/DoctorRegisterScreen.kt | 8 +- app/src/main/res/values/strings.xml | 7 + 14 files changed, 296 insertions(+), 105 deletions(-) diff --git a/app/src/main/java/com/example/remind/core/common/component/BasicButton.kt b/app/src/main/java/com/example/remind/core/common/component/BasicButton.kt index 3916361..09b36ac 100644 --- a/app/src/main/java/com/example/remind/core/common/component/BasicButton.kt +++ b/app/src/main/java/com/example/remind/core/common/component/BasicButton.kt @@ -9,6 +9,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -18,36 +19,26 @@ import com.example.remind.core.designsystem.theme.RemindTheme fun BasicButton( modifier: Modifier = Modifier, text: String, + RoundedCorner: Dp, backgroundColor: Color, textColor: Color, verticalPadding: Dp, - onClick: () -> Unit + onClick: () -> Unit, + textStyle: TextStyle ) { Button( - modifier = modifier.fillMaxWidth(), + modifier = modifier, onClick = onClick, - shape = RoundedCornerShape(20.dp), + shape = RoundedCornerShape(RoundedCorner), + contentPadding = PaddingValues(vertical = verticalPadding), colors = ButtonDefaults.buttonColors( containerColor = backgroundColor, contentColor = textColor ), - contentPadding = PaddingValues(vertical = verticalPadding), ) { Text( text = text, - style = RemindTheme.typography.c1Medium + style = textStyle ) } } - -@Composable -@Preview -fun BasicButtonPreview() { - BasicButton( - text = "삭제", - backgroundColor = RemindTheme.colors.main_6, - onClick = {}, - verticalPadding = 0.dp, - textColor = RemindTheme.colors.text - ) -} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt index 39bf726..3a8ca77 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt @@ -25,7 +25,6 @@ fun NavGraphBuilder.RegisterGraph( startDestination = Screens.Register.Login.route ) { composable(route = Screens.Register.Login.route) { - val viewModel: LoginViewModel = hiltViewModel() LoginScreen(navHostController) } composable(route = Screens.Register.SelectType.route) { diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt index 74a2e6a..62133d3 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginContract.kt @@ -8,7 +8,7 @@ import com.example.remind.core.base.UiState class LoginContract { data class State( - val isLoading: Boolean = false + val isLoading: Boolean = false, ): UiState sealed class Event: UiEvent { diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt index 018472d..ffd9992 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt @@ -31,6 +31,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavHostController import com.example.remind.R +import com.example.remind.core.common.component.BasicButton import com.example.remind.core.designsystem.theme.RemindTheme import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.collectLatest @@ -85,26 +86,21 @@ fun LoginScreen( painter = painterResource(R.drawable.ic_loginimg), contentDescription = null ) - Button( + BasicButton( modifier = Modifier .fillMaxWidth() .align(Alignment.BottomCenter) .padding(bottom = 32.dp, start = 20.dp, end = 20.dp), + text = stringResource(id = R.string.카카오로_로그인하기), + RoundedCorner = 12.dp, + backgroundColor = Color(0xFFF9E217), + textColor = Color(0xFF13151B), + verticalPadding = 13.dp, onClick = { viewModel.setEvent(LoginContract.Event.KakaoLoginButtonClicked(context)) }, - shape = RoundedCornerShape(12.dp), - contentPadding = PaddingValues(vertical = 13.dp), - colors = ButtonDefaults.buttonColors( - containerColor = Color(0xFFF9E217), - contentColor =Color(0xFF13151B) - ) - ) { - Text( - text = stringResource(id = R.string.카카오로_로그인하기), - style = RemindTheme.typography.b2Bold.copy(color = Color(0xFF13151B)) - ) - } + textStyle = RemindTheme.typography.b2Bold + ) } } } diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt index 3660275..077b434 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCenter.kt @@ -1,8 +1,13 @@ package com.example.remind.feature.screens.auth.onboarding +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import com.example.remind.core.designsystem.theme.RemindTheme @Composable fun OnBoardingCenterScreen() { + RemindTheme { + Text(text = "센터용") + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt index f57935d..cc33fc2 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingCheckDoctor.kt @@ -1,8 +1,13 @@ package com.example.remind.feature.screens.auth.onboarding +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import com.example.remind.core.designsystem.theme.RemindTheme @Composable fun OnBoardingCheckDoctorScreen() { + RemindTheme { + Text(text = "의사용") + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt index 79c9fbc..ab5d63e 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt @@ -9,13 +9,15 @@ import com.example.remind.core.base.UiState class OnBoardingContract { data class State( - val blah: String? = null + //val blah: String? = null + val selectedType: String? = null ): UiState sealed class Event: UiEvent { data class DoctorButtonClicked(val context: Context): Event() data class CenterButtonClicked(val context: Context): Event() data class PatienceButtonClicked(val context: Context): Event() + data class NextButtonClicked(val context: Context): Event() } sealed class Effect: UiEffect { diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt index e8eb015..bbfb788 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt @@ -1,8 +1,12 @@ package com.example.remind.feature.screens.auth.onboarding +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import com.example.remind.core.designsystem.theme.RemindTheme @Composable fun OnBoardingPatienceScreen() { - + RemindTheme { + Text(text = "환자용") + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt index f085a25..6d268e9 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt @@ -5,8 +5,6 @@ import androidx.navigation.navOptions import com.example.remind.app.Screens import com.example.remind.core.base.BaseViewModel import com.example.remind.data.network.interceptor.TokenManager -import com.example.remind.feature.screens.auth.login.LoginContract -import com.example.remind.feature.screens.auth.splash.SplashContract import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking @@ -21,16 +19,23 @@ class OnBoardingViewModel @Inject constructor( override fun reduceState(event: OnBoardingContract.Event) { when(event) { is OnBoardingContract.Event.DoctorButtonClicked -> { - saveUserType("Doctor") - navigateToDoctor() + updateState(currentState.copy("ROLE_DOCTOR")) +// saveUserType("Doctor") +// navigateToDoctor() } is OnBoardingContract.Event.CenterButtonClicked -> { - saveUserType("Center") - navigateToCenter() + updateState(currentState.copy("ROLE_CENTER")) +// saveUserType("Center") +// navigateToCenter() + } + is OnBoardingContract.Event.PatienceButtonClicked -> { + updateState(currentState.copy("ROLE_USER")) +// saveUserType("Patience") +// navigateToPatience() } else -> { - saveUserType("Patience") - navigateToPatience() + saveUserType(currentState.selectedType!!) + navigateToNext(currentState.selectedType!!) } } } @@ -41,39 +46,63 @@ class OnBoardingViewModel @Inject constructor( } } - fun navigateToDoctor() { - postEffect( - OnBoardingContract.Effect.NavigateTo( - destination = Screens.Doctor.DoctorMain.route, - navOptions = navOptions { - popUpTo(Screens.Register.SelectType.route) { - inclusive = true + fun navigateToNext(selectType: String) { + if(selectType == "ROLE_DOCTOR") { + postEffect( + OnBoardingContract.Effect.NavigateTo( + destination = Screens.Register.OnBoardingCheckDoctor.route, + navOptions = navOptions { + popUpTo(Screens.Register.SelectType.route) { + inclusive = true + } } - } - )) - } - - fun navigateToCenter() { - postEffect( - OnBoardingContract.Effect.NavigateTo( - destination = Screens.Center.CenterMain.route, - navOptions = navOptions { - popUpTo(Screens.Register.SelectType.route) { - inclusive = true + )) + } + if(selectType == "ROLE_USER") { + postEffect( + OnBoardingContract.Effect.NavigateTo( + destination = Screens.Register.OnBoardingPatience.route, + navOptions = navOptions { + popUpTo(Screens.Register.SelectType.route) { + inclusive = true + } } - } - )) - } - - fun navigateToPatience() { - postEffect( - OnBoardingContract.Effect.NavigateTo( - destination = Screens.Patience.route, - navOptions = navOptions { - popUpTo(Screens.Register.SelectType.route) { - inclusive = true + )) + } + if(selectType == "ROLE_CENTER") { + postEffect( + OnBoardingContract.Effect.NavigateTo( + destination = Screens.Register.OnBoardingCenter.route, + navOptions = navOptions { + popUpTo(Screens.Register.SelectType.route) { + inclusive = true + } } - } - )) + )) + } } + +// fun navigateToCenter() { +// postEffect( +// OnBoardingContract.Effect.NavigateTo( +// destination = Screens.Center.CenterMain.route, +// navOptions = navOptions { +// popUpTo(Screens.Register.SelectType.route) { +// inclusive = true +// } +// } +// )) +// } +// +// fun navigateToPatience() { +// postEffect( +// OnBoardingContract.Effect.NavigateTo( +// destination = Screens.Patience.route, +// navOptions = navOptions { +// popUpTo(Screens.Register.SelectType.route) { +// inclusive = true +// } +// } +// )) +// } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt index 14be364..6453799 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt @@ -1,13 +1,38 @@ package com.example.remind.feature.screens.auth.onboarding +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.material3.Button +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.PlatformTextStyle +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.LineHeightStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavHostController +import com.example.remind.R +import com.example.remind.core.designsystem.theme.Pretendard +import com.example.remind.core.designsystem.theme.RemindTheme import kotlinx.coroutines.flow.collectLatest @Composable @@ -15,6 +40,7 @@ fun SelectTypeScreen( navController: NavHostController ){ val viewModel: OnBoardingViewModel = hiltViewModel() + val uiState by viewModel.uiState.collectAsStateWithLifecycle() val effectFlow = viewModel.effect val context = LocalContext.current @@ -27,23 +53,148 @@ fun SelectTypeScreen( } } } - - Column() { - Text("선택유") - Button(onClick = { - viewModel.setEvent(OnBoardingContract.Event.PatienceButtonClicked(context)) - }) { - Text("환자") - } - Button(onClick = { - viewModel.setEvent(OnBoardingContract.Event.CenterButtonClicked(context)) - }) { - Text("센터") + RemindTheme { + Column() { + TopBar(modifier = Modifier) + Text( + modifier = Modifier.padding(start = 20.dp, top = 31.dp), + text = stringResource(id = R.string.사용_입장_선택), + style = RemindTheme.typography.h1Bold.copy(color = RemindTheme.colors.text) + ) + Text( + modifier = Modifier.padding(start = 20.dp, top = 12.dp), + text = stringResource(id = R.string.어떤_입장에서_사용하실지_선택해주세요), + style = RemindTheme.typography.b2Medium.copy(color = RemindTheme.colors.grayscale_3) + ) + typeButton( + modifier = Modifier + .fillMaxWidth() + .padding(start = 60.dp, end = 60.dp, top = 115.dp), + backgroundColor = if(uiState.selectedType == "Patience") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, + text = stringResource(id = R.string.환자용), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.PatienceButtonClicked(context)) + }, + textColor = RemindTheme.colors.slate_700 + ) + typeButton( + modifier = Modifier + .fillMaxWidth() + .padding(start = 60.dp, end = 60.dp, top = 22.dp), + backgroundColor = if(uiState.selectedType == "Doctor") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, + text = stringResource(id = R.string.의사용), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.DoctorButtonClicked(context)) + }, + textColor = RemindTheme.colors.slate_700 + ) + typeButton( + modifier = Modifier + .fillMaxWidth() + .padding(start = 60.dp, end = 60.dp, top = 22.dp), + backgroundColor = if(uiState.selectedType == "Center") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, + text = stringResource(id = R.string.센터용), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.CenterButtonClicked(context)) + }, + textColor = RemindTheme.colors.slate_700 + ) + Spacer(modifier = Modifier.weight(1f)) + typeButton( + modifier = Modifier + .fillMaxWidth() + .padding(start = 20.dp, end = 20.dp, bottom = 32.dp), + backgroundColor = if(uiState.selectedType == null) RemindTheme.colors.slate_100 else RemindTheme.colors.main_6, + text = stringResource(id = R.string.다음), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.NextButtonClicked(context)) + }, + textColor = if(uiState.selectedType == null) RemindTheme.colors.slate_300 else RemindTheme.colors.white + ) } - Button(onClick = { - viewModel.setEvent(OnBoardingContract.Event.DoctorButtonClicked(context)) - }) { - Text("의사") + } +} + +@Composable +fun TopBar( + modifier : Modifier = Modifier, + ) { + Column( + modifier = modifier.fillMaxWidth() + ) { + Text( + modifier = modifier.padding(top = 20.dp, bottom = 16.dp), + textAlign = TextAlign.Center, + text = stringResource(id = R.string.환자_관리), + style = RemindTheme.typography.b1Bold.copy(color = RemindTheme.colors.text) + ) + Row( + modifier = Modifier + .fillMaxWidth() + ) { + Box( + modifier = modifier + .weight(0.3f) + .height(4.dp) + .padding(start = 0.dp) + .clip(shape = RoundedCornerShape(23.dp)) + .background(color = RemindTheme.colors.main_6) + ) + Spacer(modifier = modifier.weight(0.7f)) } } +} + +@Composable +fun typeButton( + modifier: Modifier = Modifier, + backgroundColor: Color, + text: String, + textColor: Color, + onClick: () -> Unit +) { + Box( + modifier = modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(color = backgroundColor) + .clickable( + enabled = backgroundColor != RemindTheme.colors.slate_100, + onClick = onClick + ) + ) { + Text( + modifier = modifier + .padding(vertical = 12.dp), + text = text, + textAlign = TextAlign.Center, + style = TextStyle( + fontFamily = Pretendard, + fontWeight = FontWeight.SemiBold, + fontSize = 16.sp, + lineHeight = 8.sp, + platformStyle = PlatformTextStyle( + includeFontPadding = false + ), + lineHeightStyle = LineHeightStyle( + alignment = LineHeightStyle.Alignment.Center, + trim = LineHeightStyle.Trim.None + ), + color = textColor + ), + ) + } +} + +@Preview(showBackground = false) +@Composable +fun SelectTypePreview() { + typeButton( + modifier = Modifier + .fillMaxWidth(), + backgroundColor = RemindTheme.colors.main_4, + text = stringResource(id = R.string.센터용), + onClick = {}, + textColor = RemindTheme.colors.text + ) } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt index b6df9fb..7014994 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt @@ -1,19 +1,13 @@ package com.example.remind.feature.screens.auth.splash -import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import androidx.navigation.navOptions import com.example.remind.app.Screens import com.example.remind.core.base.BaseViewModel import com.example.remind.data.network.interceptor.TokenManager -import com.example.remind.feature.screens.auth.login.LoginContract import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.delay -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking import javax.inject.Inject @HiltViewModel @@ -39,9 +33,9 @@ class SplashViewModel @Inject constructor( fun checkUserState() { val userType = currentState.userType when(userType) { - "Doctor" -> navigateToDoctor() - "Center" -> navigateToCenter() - "Patience" -> navigateToPatience() + "ROLE_DOCTOR" -> navigateToDoctor() + "ROLE_CENTER" -> navigateToCenter() + "ROLE_USER" -> navigateToPatience() else -> navigateToLogin() } } diff --git a/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorMainScreen.kt b/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorMainScreen.kt index fccec1b..a0a4fc9 100644 --- a/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorMainScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorMainScreen.kt @@ -212,20 +212,24 @@ fun StickyHeaderComponent( .padding(start = 4.dp) .weight(1f), text = stringResource(id = R.string.삭제), + RoundedCorner= 20.dp, backgroundColor = RemindTheme.colors.main_4, textColor = RemindTheme.colors.white, - verticalPadding = 0.dp, - onClick = {} + verticalPadding = 13.dp, + onClick = {}, + textStyle = RemindTheme.typography.b1Bold ) BasicButton( modifier = Modifier .padding(start = 4.dp) .weight(1f), text = stringResource(id = R.string.추가하기), + RoundedCorner= 20.dp, backgroundColor = RemindTheme.colors.main_6, textColor = RemindTheme.colors.white, - verticalPadding =0.dp, - onClick = onRegisterClicked + verticalPadding =13.dp, + onClick = onRegisterClicked, + textStyle = RemindTheme.typography.b1Bold ) } } diff --git a/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorRegisterScreen.kt b/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorRegisterScreen.kt index 003fce0..f0d8a1a 100644 --- a/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorRegisterScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/doctor/DoctorRegisterScreen.kt @@ -120,9 +120,11 @@ fun RequestListItem( BasicButton( text = stringResource(id = R.string.수락), backgroundColor = RemindTheme.colors.main_6, + RoundedCorner = 20.dp, textColor = RemindTheme.colors.white, verticalPadding = 18.dp, - onClick = onClick + onClick = onClick, + textStyle = RemindTheme.typography.b2Bold ) } Spacer(modifier = modifier.height(10.dp)) @@ -159,9 +161,11 @@ fun RequestListItem( BasicButton( text = stringResource(id = R.string.수락), backgroundColor = RemindTheme.colors.main_6, + RoundedCorner = 20.dp, textColor = RemindTheme.colors.white, verticalPadding = 5.dp, - onClick = onClick + onClick = onClick, + textStyle = RemindTheme.typography.b2Bold ) } Box( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b569e17..957d64d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,6 +10,13 @@ 스스로를 돌아볼 수 있는\n당신만의 공간으로 초대합니다. 카카오로 로그인하기 진료실 밖 일상을 더하다 + 환자용 + 의사용 + 센터용 + 다음 + + 사용 입장 선택 + 어떤 입장에서 사용하실지 선택해주세요! 김말랑 님, 좋은 하루 되세요! From ff9bec1a7faf7f15493839ebf1fbfebb6cfadd69 Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 20:52:29 +0900 Subject: [PATCH 07/14] =?UTF-8?q?[feat=20#8]=20=ED=99=98=EC=9E=90=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=EC=9E=85=EB=A0=A5=ED=99=94=EB=A9=B4=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 --- app/build.gradle.kts | 1 + .../common/component/BasicOnBoardingAppBar.kt | 52 ++++++ .../core/designsystem/theme/RemindColors.kt | 1 + .../remind/feature/screens/auth/AuthGraph.kt | 2 +- .../auth/onboarding/OnBoardingContract.kt | 2 +- .../auth/onboarding/OnBoardingFinal.kt | 15 ++ .../auth/onboarding/OnBoardingPatience.kt | 171 +++++++++++++++++- .../auth/onboarding/OnBoardingViewModel.kt | 48 ++--- .../auth/onboarding/SelectTypeScreen.kt | 144 +++++++-------- .../screens/auth/splash/SplashViewModel.kt | 2 +- app/src/main/res/drawable/ic_example1.xml | 15 ++ app/src/main/res/values/strings.xml | 5 + 12 files changed, 346 insertions(+), 112 deletions(-) create mode 100644 app/src/main/java/com/example/remind/core/common/component/BasicOnBoardingAppBar.kt create mode 100644 app/src/main/res/drawable/ic_example1.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 05b3f3e..49a25cd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -78,6 +78,7 @@ dependencies { implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.navigation:navigation-fragment-ktx:2.7.7") implementation("androidx.navigation:navigation-ui-ktx:2.7.7") + implementation("androidx.benchmark:benchmark-macro:1.2.4") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") diff --git a/app/src/main/java/com/example/remind/core/common/component/BasicOnBoardingAppBar.kt b/app/src/main/java/com/example/remind/core/common/component/BasicOnBoardingAppBar.kt new file mode 100644 index 0000000..7e4a9b9 --- /dev/null +++ b/app/src/main/java/com/example/remind/core/common/component/BasicOnBoardingAppBar.kt @@ -0,0 +1,52 @@ +package com.example.remind.core.common.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import com.example.remind.R +import com.example.remind.core.designsystem.theme.RemindTheme + +@Composable +fun BasicOnBoardingAppBar( + modifier : Modifier = Modifier, + weight: Float, + title: String +) { + Column( + modifier = modifier.fillMaxWidth() + ) { + Text( + modifier = modifier.padding(top = 20.dp, bottom = 16.dp), + textAlign = TextAlign.Center, + text = title, + style = RemindTheme.typography.b1Bold.copy(color = RemindTheme.colors.text) + ) + Row( + modifier = Modifier + .fillMaxWidth() + ) { + Box( + modifier = modifier + .weight(weight) + .height(4.dp) + .padding(start = 0.dp) + .clip(shape = RoundedCornerShape(23.dp)) + .background(color = RemindTheme.colors.main_6) + ) + Spacer(modifier = modifier.weight(0.7f)) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/core/designsystem/theme/RemindColors.kt b/app/src/main/java/com/example/remind/core/designsystem/theme/RemindColors.kt index 5cd0f41..b2743b3 100644 --- a/app/src/main/java/com/example/remind/core/designsystem/theme/RemindColors.kt +++ b/app/src/main/java/com/example/remind/core/designsystem/theme/RemindColors.kt @@ -34,6 +34,7 @@ class RemindColors ( val grayscale_2: Color = Color(0xFFEEEEEE), val grayscale_1: Color = Color(0xFFF3F4F6), val white: Color = Color(0xFFFFFFFF), + val black: Color = Color(0xFF000000), ) diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt index 3a8ca77..7b3de7d 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt @@ -31,7 +31,7 @@ fun NavGraphBuilder.RegisterGraph( SelectTypeScreen(navHostController) } composable(route = Screens.Register.OnBoardingPatience.route) { - OnBoardingPatienceScreen() + OnBoardingPatienceScreen(navHostController) } composable(route = Screens.Register.OnBoardingCheckDoctor.route) { OnBoardingCheckDoctorScreen() diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt index ab5d63e..12bdb84 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt @@ -9,7 +9,6 @@ import com.example.remind.core.base.UiState class OnBoardingContract { data class State( - //val blah: String? = null val selectedType: String? = null ): UiState @@ -18,6 +17,7 @@ class OnBoardingContract { data class CenterButtonClicked(val context: Context): Event() data class PatienceButtonClicked(val context: Context): Event() data class NextButtonClicked(val context: Context): Event() + data class NextButtonPatienceMain(val context: Context): Event() } sealed class Effect: UiEffect { diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt index 2913f5e..2141855 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt @@ -1,8 +1,23 @@ package com.example.remind.feature.screens.auth.onboarding +import androidx.compose.foundation.layout.Box import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import com.example.remind.core.designsystem.theme.RemindTheme @Composable fun OnBoardingFinalScreen() { + RemindTheme { + + } +} + +@Composable +fun PatienceFinal() { + +} +@Preview +@Composable +fun FinalPreview() { } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt index bbfb788..9efa307 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt @@ -1,12 +1,179 @@ package com.example.remind.feature.screens.auth.onboarding +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Checkbox +import androidx.compose.material3.CheckboxDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.PlatformTextStyle +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.LineHeightStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import androidx.navigation.NavHostController +import com.example.remind.R +import com.example.remind.core.common.component.BasicOnBoardingAppBar +import com.example.remind.core.designsystem.theme.Pretendard import com.example.remind.core.designsystem.theme.RemindTheme +import kotlinx.coroutines.flow.collectLatest @Composable -fun OnBoardingPatienceScreen() { +fun OnBoardingPatienceScreen( + navController: NavHostController +) { + val viewModel: OnBoardingViewModel = hiltViewModel() + val effectFlow = viewModel.effect + val context = LocalContext.current + var isChecked by remember{ mutableStateOf(false) } + + LaunchedEffect(true) { + effectFlow.collectLatest { effect -> + when(effect) { + is OnBoardingContract.Effect.NavigateTo -> { + navController.navigate(effect.destination, effect.navOptions) + } + + } + } + } + RemindTheme { - Text(text = "환자용") + Column( + modifier = Modifier.fillMaxSize() + ) { + BasicOnBoardingAppBar( + modifier = Modifier.fillMaxWidth(), + weight = 0.5f, + title = stringResource(id = R.string.사용자_정보) + ) + Text( + modifier = Modifier.padding(start = 20.dp, top = 35.dp, end = 20.dp), + textAlign = TextAlign.Start, + text = stringResource(id = R.string.보호자_정보_입력), + style = RemindTheme.typography.h1Bold.copy(color = RemindTheme.colors.text) + ) + Text( + modifier = Modifier.padding(start = 20.dp, top = 12.dp, end = 20.dp), + textAlign = TextAlign.Start, + text = stringResource(id = R.string.긴급_시_연락할_수_있는), + style = TextStyle( + fontFamily = Pretendard, + fontWeight = FontWeight.Medium, + fontSize = 16.82.sp, + lineHeight = 32.sp, + platformStyle = PlatformTextStyle( + includeFontPadding = false + ), + lineHeightStyle = LineHeightStyle( + alignment = LineHeightStyle.Alignment.Center, + trim = LineHeightStyle.Trim.None + ) + ), + ) + Spacer(modifier = Modifier.height(56.dp)) + Image( + modifier = Modifier + .fillMaxWidth() + .padding(start = 20.dp, end = 20.dp), + painter = painterResource(id = R.drawable.ic_example1), + contentDescription = null + ) + Spacer(modifier = Modifier.height(12.dp)) + CheckReading( + modifier = Modifier.fillMaxWidth(), + checked = isChecked, + onCheckedChange = {isChecked = it} + ) + Spacer(modifier = Modifier.weight(1f)) + typeButton( + modifier = Modifier + .fillMaxWidth() + .padding(start = 20.dp, end = 20.dp), + backgroundColor = RemindTheme.colors.main_6, + text = stringResource(id = R.string.다음), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.NextButtonPatienceMain(context)) + }, + textColor = RemindTheme.colors.white, + enable = true + ) + Spacer(modifier = Modifier.height(32.dp)) + } + } +} + +@Composable +fun CheckReading( + modifier: Modifier = Modifier, + checked: Boolean, + onCheckedChange: (Boolean) -> Unit +) { + Row( + modifier = modifier + .fillMaxWidth() + .padding(start = 20.dp, end = 20.dp), + horizontalArrangement = Arrangement.Start, + verticalAlignment = Alignment.CenterVertically + ) { + Checkbox( + checked = checked, + colors = CheckboxDefaults.colors( + checkedColor = RemindTheme.colors.main_6, + uncheckedColor = Color(0xFF6B7280), + checkmarkColor = RemindTheme.colors.white + ), + onCheckedChange = onCheckedChange + ) + Spacer(modifier = Modifier.width(9.dp)) + Column() { + Text( + text = stringResource(id = R.string.긴급_상황_발생_시_보호자에게_연락), + style = RemindTheme.typography.b3Medium.copy(color = RemindTheme.colors.black) + ) + Spacer(modifier = Modifier.height(4.dp)) + Text( + text = stringResource(id = R.string.긴급_상황_발생시_담당자가_보호자에게), + style = RemindTheme.typography.c1Regular.copy(color = RemindTheme.colors.grayscale_3, lineHeight = 6.sp) + ) + } + } +} + +@Preview +@Composable +fun OnBoardingPreview() { + Column( + modifier = Modifier.fillMaxSize() + ) { + BasicOnBoardingAppBar( + modifier = Modifier.fillMaxWidth(), + weight = 0.5f, + title = stringResource(id = R.string.사용자_정보) + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt index 6d268e9..fa92b13 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt @@ -20,18 +20,15 @@ class OnBoardingViewModel @Inject constructor( when(event) { is OnBoardingContract.Event.DoctorButtonClicked -> { updateState(currentState.copy("ROLE_DOCTOR")) -// saveUserType("Doctor") -// navigateToDoctor() } is OnBoardingContract.Event.CenterButtonClicked -> { updateState(currentState.copy("ROLE_CENTER")) -// saveUserType("Center") -// navigateToCenter() } is OnBoardingContract.Event.PatienceButtonClicked -> { - updateState(currentState.copy("ROLE_USER")) -// saveUserType("Patience") -// navigateToPatience() + updateState(currentState.copy("ROLE_PATIENT")) + } + is OnBoardingContract.Event.NextButtonPatienceMain -> { + navigateToPatience() } else -> { saveUserType(currentState.selectedType!!) @@ -58,7 +55,7 @@ class OnBoardingViewModel @Inject constructor( } )) } - if(selectType == "ROLE_USER") { + if(selectType == "ROLE_PATIENT") { postEffect( OnBoardingContract.Effect.NavigateTo( destination = Screens.Register.OnBoardingPatience.route, @@ -81,28 +78,15 @@ class OnBoardingViewModel @Inject constructor( )) } } - -// fun navigateToCenter() { -// postEffect( -// OnBoardingContract.Effect.NavigateTo( -// destination = Screens.Center.CenterMain.route, -// navOptions = navOptions { -// popUpTo(Screens.Register.SelectType.route) { -// inclusive = true -// } -// } -// )) -// } -// -// fun navigateToPatience() { -// postEffect( -// OnBoardingContract.Effect.NavigateTo( -// destination = Screens.Patience.route, -// navOptions = navOptions { -// popUpTo(Screens.Register.SelectType.route) { -// inclusive = true -// } -// } -// )) -// } + fun navigateToPatience() { + postEffect( + OnBoardingContract.Effect.NavigateTo( + destination = Screens.Register.OnBoardingFinal.route, + navOptions = navOptions { + popUpTo(Screens.Register.SelectType.route) { + inclusive = true + } + } + )) + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt index 6453799..bc08bad 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/SelectTypeScreen.kt @@ -2,10 +2,11 @@ package com.example.remind.feature.screens.auth.onboarding import androidx.compose.foundation.background import androidx.compose.foundation.clickable +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.Spacer +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -14,6 +15,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color @@ -31,6 +33,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavHostController import com.example.remind.R +import com.example.remind.core.common.component.BasicOnBoardingAppBar import com.example.remind.core.designsystem.theme.Pretendard import com.example.remind.core.designsystem.theme.RemindTheme import kotlinx.coroutines.flow.collectLatest @@ -50,97 +53,90 @@ fun SelectTypeScreen( is OnBoardingContract.Effect.NavigateTo -> { navController.navigate(effect.destination, effect.navOptions) } + + else -> {} } } } RemindTheme { - Column() { - TopBar(modifier = Modifier) + Column( + modifier = Modifier.fillMaxSize() + ) { + BasicOnBoardingAppBar( + modifier = Modifier.fillMaxWidth(), + weight = 0.3f, + title = stringResource(id = R.string.환자_관리) + ) Text( modifier = Modifier.padding(start = 20.dp, top = 31.dp), + textAlign = TextAlign.Start, text = stringResource(id = R.string.사용_입장_선택), style = RemindTheme.typography.h1Bold.copy(color = RemindTheme.colors.text) ) Text( modifier = Modifier.padding(start = 20.dp, top = 12.dp), + textAlign = TextAlign.Start, text = stringResource(id = R.string.어떤_입장에서_사용하실지_선택해주세요), style = RemindTheme.typography.b2Medium.copy(color = RemindTheme.colors.grayscale_3) ) - typeButton( - modifier = Modifier - .fillMaxWidth() - .padding(start = 60.dp, end = 60.dp, top = 115.dp), - backgroundColor = if(uiState.selectedType == "Patience") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, - text = stringResource(id = R.string.환자용), - onClick = { - viewModel.setEvent(OnBoardingContract.Event.PatienceButtonClicked(context)) - }, - textColor = RemindTheme.colors.slate_700 - ) - typeButton( - modifier = Modifier - .fillMaxWidth() - .padding(start = 60.dp, end = 60.dp, top = 22.dp), - backgroundColor = if(uiState.selectedType == "Doctor") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, - text = stringResource(id = R.string.의사용), - onClick = { - viewModel.setEvent(OnBoardingContract.Event.DoctorButtonClicked(context)) - }, - textColor = RemindTheme.colors.slate_700 - ) - typeButton( + Spacer(modifier = Modifier.weight(1f)) + Column( modifier = Modifier .fillMaxWidth() - .padding(start = 60.dp, end = 60.dp, top = 22.dp), - backgroundColor = if(uiState.selectedType == "Center") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, - text = stringResource(id = R.string.센터용), - onClick = { - viewModel.setEvent(OnBoardingContract.Event.CenterButtonClicked(context)) - }, - textColor = RemindTheme.colors.slate_700 - ) + .padding(start = 60.dp, end = 60.dp), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + typeButton( + modifier = Modifier + .fillMaxWidth(), + backgroundColor = if(uiState.selectedType == "ROLE_PATIENT") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, + text = stringResource(id = R.string.환자용), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.PatienceButtonClicked(context)) + }, + textColor = RemindTheme.colors.slate_700, + enable = true + ) + Spacer(modifier = Modifier.height(22.dp)) + typeButton( + modifier = Modifier + .fillMaxWidth(), + backgroundColor = if(uiState.selectedType == "ROLE_DOCTOR") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, + text = stringResource(id = R.string.의사용), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.DoctorButtonClicked(context)) + }, + textColor = RemindTheme.colors.slate_700, + enable = true + ) + Spacer(modifier = Modifier.height(22.dp)) + typeButton( + modifier = Modifier + .fillMaxWidth(), + backgroundColor = if(uiState.selectedType == "ROLE_CENTER") RemindTheme.colors.main_4 else RemindTheme.colors.slate_100, + text = stringResource(id = R.string.센터용), + onClick = { + viewModel.setEvent(OnBoardingContract.Event.CenterButtonClicked(context)) + }, + textColor = RemindTheme.colors.slate_700, + enable = true + ) + } Spacer(modifier = Modifier.weight(1f)) typeButton( modifier = Modifier .fillMaxWidth() - .padding(start = 20.dp, end = 20.dp, bottom = 32.dp), + .padding(start = 20.dp, end = 20.dp), backgroundColor = if(uiState.selectedType == null) RemindTheme.colors.slate_100 else RemindTheme.colors.main_6, text = stringResource(id = R.string.다음), onClick = { viewModel.setEvent(OnBoardingContract.Event.NextButtonClicked(context)) }, - textColor = if(uiState.selectedType == null) RemindTheme.colors.slate_300 else RemindTheme.colors.white - ) - } - } -} - -@Composable -fun TopBar( - modifier : Modifier = Modifier, - ) { - Column( - modifier = modifier.fillMaxWidth() - ) { - Text( - modifier = modifier.padding(top = 20.dp, bottom = 16.dp), - textAlign = TextAlign.Center, - text = stringResource(id = R.string.환자_관리), - style = RemindTheme.typography.b1Bold.copy(color = RemindTheme.colors.text) - ) - Row( - modifier = Modifier - .fillMaxWidth() - ) { - Box( - modifier = modifier - .weight(0.3f) - .height(4.dp) - .padding(start = 0.dp) - .clip(shape = RoundedCornerShape(23.dp)) - .background(color = RemindTheme.colors.main_6) + textColor = if(uiState.selectedType == null) RemindTheme.colors.slate_300 else RemindTheme.colors.white, + enable = uiState.selectedType != null ) - Spacer(modifier = modifier.weight(0.7f)) + Spacer(modifier = Modifier.height(32.dp)) } } } @@ -151,7 +147,8 @@ fun typeButton( backgroundColor: Color, text: String, textColor: Color, - onClick: () -> Unit + onClick: () -> Unit, + enable: Boolean ) { Box( modifier = modifier @@ -159,7 +156,7 @@ fun typeButton( .clip(RoundedCornerShape(12.dp)) .background(color = backgroundColor) .clickable( - enabled = backgroundColor != RemindTheme.colors.slate_100, + enabled = enable, onClick = onClick ) ) { @@ -189,12 +186,9 @@ fun typeButton( @Preview(showBackground = false) @Composable fun SelectTypePreview() { - typeButton( - modifier = Modifier - .fillMaxWidth(), - backgroundColor = RemindTheme.colors.main_4, - text = stringResource(id = R.string.센터용), - onClick = {}, - textColor = RemindTheme.colors.text + BasicOnBoardingAppBar( + //modifier = Modifier.fillMaxWidth(), + weight = 0.3f, + title = stringResource(id = R.string.환자_관리) ) } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt index 7014994..8b6b662 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/splash/SplashViewModel.kt @@ -35,7 +35,7 @@ class SplashViewModel @Inject constructor( when(userType) { "ROLE_DOCTOR" -> navigateToDoctor() "ROLE_CENTER" -> navigateToCenter() - "ROLE_USER" -> navigateToPatience() + "ROLE_PATIENT" -> navigateToPatience() else -> navigateToLogin() } } diff --git a/app/src/main/res/drawable/ic_example1.xml b/app/src/main/res/drawable/ic_example1.xml new file mode 100644 index 0000000..111a34e --- /dev/null +++ b/app/src/main/res/drawable/ic_example1.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 957d64d..e82b303 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,6 +14,11 @@ 의사용 센터용 다음 + 사용자 정보 + 보호자 정보 입력 + 긴급 시 연락할 수 있는\n보호자의 전화번호를 입력해 주세요! + 긴급 상황 발생 시 보호자에게 연락 + 긴급 상황 발생 시 담당자가 보호자에게 연락 할 수 있습니다. 사용 입장 선택 어떤 입장에서 사용하실지 선택해주세요! From 7d90a974d2212c77f0caeed24c4d7d131c80741a Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Tue, 14 May 2024 22:13:56 +0900 Subject: [PATCH 08/14] =?UTF-8?q?[feat=20#8]=20=ED=99=98=EC=9E=90=20?= =?UTF-8?q?=EC=98=A8=EB=B3=B4=EB=94=A9=20=EC=A2=85=EB=A3=8C=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EA=B5=AC=ED=98=84=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/remind/core/util/Constants.kt | 1 + .../data/network/interceptor/TokenManager.kt | 12 ++ .../remind/feature/screens/auth/AuthGraph.kt | 2 +- .../screens/auth/login/LoginViewModel.kt | 7 +- .../auth/onboarding/OnBoardingContract.kt | 3 +- .../auth/onboarding/OnBoardingFinal.kt | 111 +++++++++++++++++- .../auth/onboarding/OnBoardingPatience.kt | 2 +- .../auth/onboarding/OnBoardingViewModel.kt | 19 ++- .../screens/patience/PatienceScreen.kt | 6 +- app/src/main/res/drawable/ic_sos.xml | 12 ++ app/src/main/res/values/strings.xml | 5 + 11 files changed, 164 insertions(+), 16 deletions(-) create mode 100644 app/src/main/res/drawable/ic_sos.xml diff --git a/app/src/main/java/com/example/remind/core/util/Constants.kt b/app/src/main/java/com/example/remind/core/util/Constants.kt index df7d48a..4b0fa26 100644 --- a/app/src/main/java/com/example/remind/core/util/Constants.kt +++ b/app/src/main/java/com/example/remind/core/util/Constants.kt @@ -9,4 +9,5 @@ object Constants { val ACCESS_TOKEN = stringPreferencesKey("access_token") val REFRESH_TOKEN = stringPreferencesKey("refresh_token") val USER_TYPE = stringPreferencesKey("user_type") + val USER_NAME = stringPreferencesKey("user_name") } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt b/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt index 8d83e66..c0f5f9f 100644 --- a/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt +++ b/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt @@ -5,6 +5,7 @@ import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.edit import com.example.remind.core.util.Constants.ACCESS_TOKEN import com.example.remind.core.util.Constants.REFRESH_TOKEN +import com.example.remind.core.util.Constants.USER_NAME import com.example.remind.core.util.Constants.USER_TYPE import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map @@ -40,6 +41,17 @@ class TokenManager @Inject constructor( Timber.d("액세스: $accessToken 리프레시: $refreshToken") } + suspend fun saveUserName(userName: String) { + datastore.edit { prefs -> + prefs[USER_NAME] = userName + } + } + fun getUserName(): Flow { + return datastore.data.map { prefs-> + prefs[USER_NAME] + } + } + suspend fun saveUserType(userType: String) { datastore.edit { prefs-> prefs[USER_TYPE] = userType diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt index 7b3de7d..1ef18af 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/AuthGraph.kt @@ -43,7 +43,7 @@ fun NavGraphBuilder.RegisterGraph( OnBoardingCenterScreen() } composable(route = Screens.Register.OnBoardingFinal.route) { - OnBoardingFinalScreen() + OnBoardingFinalScreen(navHostController) } } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt index b14aaf8..939ac4f 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt @@ -36,7 +36,7 @@ class LoginViewModel @Inject constructor( is LoginContract.Event.KakaoLoginButtonClicked -> { KakaoLogin(event.context) } - + else->{} } } } @@ -79,7 +79,9 @@ private fun socialLogin(token: String) { runBlocking { tokenManager.saveAccessToken( result.data.data.accessToken, result.data.data.refreshToken - ) } + ) + tokenManager.saveUserName(result.data.data.name) + } postEffect( LoginContract.Effect.NavigateTo( destinaton = Screens.Register.SelectType.route, @@ -100,6 +102,7 @@ private fun socialLogin(token: String) { is ApiResult.Failure.HttpError -> { postEffect(LoginContract.Effect.Toastmessage("Http 오류가 발생했습니다")) } + else -> {} } } } diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt index 12bdb84..d668f5c 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt @@ -17,7 +17,8 @@ class OnBoardingContract { data class CenterButtonClicked(val context: Context): Event() data class PatienceButtonClicked(val context: Context): Event() data class NextButtonClicked(val context: Context): Event() - data class NextButtonPatienceMain(val context: Context): Event() + data class NextButtonFinal(val context: Context): Event() + data class NextButtonToPatience(val context: Context): Event() } sealed class Effect: UiEffect { diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt index 2141855..fdaaeeb 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt @@ -1,23 +1,124 @@ package com.example.remind.feature.screens.auth.onboarding +import android.graphics.Paint +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.navigation.NavHostController +import com.example.remind.R +import com.example.remind.core.common.component.BasicButton import com.example.remind.core.designsystem.theme.RemindTheme +import kotlinx.coroutines.flow.collectLatest @Composable -fun OnBoardingFinalScreen() { - RemindTheme { +fun OnBoardingFinalScreen( + navController: NavHostController +) { + val viewModel: OnBoardingViewModel = hiltViewModel() + val uiState by viewModel.uiState.collectAsStateWithLifecycle() + val effectFlow = viewModel.effect + val context = LocalContext.current + + LaunchedEffect(true) { + effectFlow.collectLatest { effect -> + when(effect) { + is OnBoardingContract.Effect.NavigateTo -> { + navController.navigate(effect.destination, effect.navOptions) + } + } + } + } + RemindTheme { + PatienceFinal( + name = "배예진", + onClick = { + viewModel.setEvent(OnBoardingContract.Event.NextButtonToPatience(context)) + } + ) } } @Composable -fun PatienceFinal() { - +fun PatienceFinal( + modifier: Modifier = Modifier, + name: String, + onClick: () -> Unit +) { + var title = stringResource(id = R.string.반가워요_환자님, name) + Box( + modifier = modifier.fillMaxSize() + ) { + Image( + modifier = Modifier + .fillMaxWidth() + .fillMaxHeight(), + painter = painterResource(R.drawable.img_background), + contentDescription = null, + contentScale = ContentScale.FillBounds + ) + Column( + modifier = modifier.align(Alignment.TopStart) + ) { + Text( + modifier = modifier + .padding(top = 95.dp, start = 20.dp, end = 20.dp, bottom = 12.dp), + text = title, + style = RemindTheme.typography.h1Bold.copy(color = RemindTheme.colors.white) + ) + Text( + modifier = modifier + .padding(start = 20.dp, end = 20.dp), + text = stringResource(id = R.string.오늘_하루의_통합적_기분을_선택해주세요), + style = RemindTheme.typography.b1Medium.copy(color = RemindTheme.colors.white) + ) + } + Image( + modifier = modifier + .align(Alignment.Center), + painter = painterResource(id = R.drawable.ic_patience_onboarding), + contentDescription = null + ) + BasicButton( + modifier = modifier + .fillMaxWidth() + .padding(start = 20.dp, end = 20.dp, bottom = 32.dp) + .align(Alignment.BottomCenter), + text = stringResource(id = R.string.시작하기), + RoundedCorner = 12.dp, + backgroundColor = RemindTheme.colors.main_6, + textColor = RemindTheme.colors.white, + verticalPadding = 13.dp, + onClick = onClick, + textStyle = RemindTheme.typography.b2Bold + ) + } } @Preview @Composable fun FinalPreview() { - + PatienceFinal( + name = "배예진", + onClick = {} + ) } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt index 9efa307..77780a4 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt @@ -117,7 +117,7 @@ fun OnBoardingPatienceScreen( backgroundColor = RemindTheme.colors.main_6, text = stringResource(id = R.string.다음), onClick = { - viewModel.setEvent(OnBoardingContract.Event.NextButtonPatienceMain(context)) + viewModel.setEvent(OnBoardingContract.Event.NextButtonFinal(context)) }, textColor = RemindTheme.colors.white, enable = true diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt index fa92b13..54a8281 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt @@ -5,6 +5,7 @@ import androidx.navigation.navOptions import com.example.remind.app.Screens import com.example.remind.core.base.BaseViewModel import com.example.remind.data.network.interceptor.TokenManager +import com.example.remind.feature.screens.auth.splash.SplashContract import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking @@ -27,7 +28,10 @@ class OnBoardingViewModel @Inject constructor( is OnBoardingContract.Event.PatienceButtonClicked -> { updateState(currentState.copy("ROLE_PATIENT")) } - is OnBoardingContract.Event.NextButtonPatienceMain -> { + is OnBoardingContract.Event.NextButtonFinal -> { + navigateToFinal() + } + is OnBoardingContract.Event.NextButtonToPatience -> { navigateToPatience() } else -> { @@ -78,12 +82,21 @@ class OnBoardingViewModel @Inject constructor( )) } } - fun navigateToPatience() { + fun navigateToFinal() { postEffect( OnBoardingContract.Effect.NavigateTo( destination = Screens.Register.OnBoardingFinal.route, navOptions = navOptions { - popUpTo(Screens.Register.SelectType.route) { + + } + )) + } + fun navigateToPatience() { + postEffect( + OnBoardingContract.Effect.NavigateTo( + destination = Screens.Patience.route, + navOptions = navOptions { + popUpTo(Screens.Register.OnBoardingFinal.route) { inclusive = true } } diff --git a/app/src/main/java/com/example/remind/feature/screens/patience/PatienceScreen.kt b/app/src/main/java/com/example/remind/feature/screens/patience/PatienceScreen.kt index dd10aa9..f31c68d 100644 --- a/app/src/main/java/com/example/remind/feature/screens/patience/PatienceScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/patience/PatienceScreen.kt @@ -65,7 +65,7 @@ fun PatienceScreen() { RemindTheme.colors.main_6 } else { RemindTheme.colors.slate_300 - } + }, ) }, label = { @@ -80,9 +80,9 @@ fun PatienceScreen() { ) }, colors = NavigationBarItemDefaults.colors( - indicatorColor = RemindTheme.colors.main_6 - ) + indicatorColor = Color.Transparent ) + ) } } } diff --git a/app/src/main/res/drawable/ic_sos.xml b/app/src/main/res/drawable/ic_sos.xml new file mode 100644 index 0000000..c170146 --- /dev/null +++ b/app/src/main/res/drawable/ic_sos.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e82b303..3df8b08 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -19,6 +19,11 @@ 긴급 시 연락할 수 있는\n보호자의 전화번호를 입력해 주세요! 긴급 상황 발생 시 보호자에게 연락 긴급 상황 발생 시 담당자가 보호자에게 연락 할 수 있습니다. + 반가워요, %1$s님! + 오늘 하루의 통합적 기분을 선택해주세요! + 반갑습니다.\n%1$s 담당자 님! + 반갑습니다. %1$s님! + 시작하기 사용 입장 선택 어떤 입장에서 사용하실지 선택해주세요! From c5348b11f5e07e4d04495a56386e48ab7f6febcb Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Wed, 15 May 2024 12:50:51 +0900 Subject: [PATCH 09/14] =?UTF-8?q?[feat=20#8]=20=ED=86=A0=ED=81=B0=20?= =?UTF-8?q?=EC=A3=BC=EC=9E=85=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/network/interceptor/AuthInterceptor.kt | 11 ++++++----- .../remind/data/network/service/AuthService.kt | 7 +++++++ .../remind/data/repository/auth/AuthRepository.kt | 3 +++ .../remind/data/repository/auth/AuthRepositoryImpl.kt | 7 +++++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/example/remind/data/network/interceptor/AuthInterceptor.kt b/app/src/main/java/com/example/remind/data/network/interceptor/AuthInterceptor.kt index fac838d..af1264f 100644 --- a/app/src/main/java/com/example/remind/data/network/interceptor/AuthInterceptor.kt +++ b/app/src/main/java/com/example/remind/data/network/interceptor/AuthInterceptor.kt @@ -41,20 +41,20 @@ class AuthInterceptor @Inject constructor( val originalRequest = chain.request() val authenticationRequest = accessToken?.let { originalRequest.newBuilder() - .addHeader(AUTHORIZATION, it) + .addHeader(AUTHORIZATION, "Bearer $accessToken") .build() } val response = authenticationRequest?.let { chain.proceed(it) } if(response?.code == 401 && refreshToken.isNotEmpty()) { Timber.d("들어옴") - val newToken = runBlocking { updateToken(refreshToken, context) } + val newToken = runBlocking { updateToken(accessToken,refreshToken, context) } if(newToken is ApiResult.Success) { val newAccessToken = newToken.data.data.accessToken val refreshToken = newToken.data.data.refreshToken runBlocking { tokenManager.saveAccessToken(newAccessToken,refreshToken ) } response.close() val newAuthenticationRequest = originalRequest.newBuilder() - .header("X-AUTH-TOKEN", newAccessToken) + .header(AUTHORIZATION, "Bearer $newAccessToken") .build() return chain.proceed(newAuthenticationRequest) } else { @@ -66,13 +66,14 @@ class AuthInterceptor @Inject constructor( } private suspend fun updateToken( + accessToken: String, refreshToken: String, context: Context ): ApiResult { val retrofit = Retrofit.Builder() .baseUrl(BuildConfig.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) - .client(createOkHttpClient(refreshToken, context)) + .client(createOkHttpClient(accessToken, context)) .build() val service = retrofit.create(AuthService::class.java) @@ -96,7 +97,7 @@ private fun createOkHttpClient( .addInterceptor { chain -> val originalRequest = chain.request() val modifiedRequest = originalRequest.newBuilder() - .header(AUTHORIZATION, refreshToken) + .header(AUTHORIZATION, "Bearer $refreshToken") .build() chain.proceed(modifiedRequest) diff --git a/app/src/main/java/com/example/remind/data/network/service/AuthService.kt b/app/src/main/java/com/example/remind/data/network/service/AuthService.kt index 6a62d15..a8e6227 100644 --- a/app/src/main/java/com/example/remind/data/network/service/AuthService.kt +++ b/app/src/main/java/com/example/remind/data/network/service/AuthService.kt @@ -1,7 +1,9 @@ package com.example.remind.data.network.service import com.example.remind.data.model.request.KakaoLoginRequest +import com.example.remind.data.model.request.OnBoardingRequest import com.example.remind.data.model.request.TokenRequest +import com.example.remind.data.model.response.OnBoardingResponse import com.example.remind.data.model.response.SocialLoginResponse import com.example.remind.data.model.response.TokenResponse import com.example.remind.data.network.adapter.ApiResult @@ -19,4 +21,9 @@ interface AuthService { suspend fun KakaoLogin( @Body body: KakaoLoginRequest ): ApiResult + + @POST("/member/onboarding") + suspend fun OnBoarding( + @Body body: OnBoardingRequest + ): ApiResult } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/repository/auth/AuthRepository.kt b/app/src/main/java/com/example/remind/data/repository/auth/AuthRepository.kt index 458480f..17666b4 100644 --- a/app/src/main/java/com/example/remind/data/repository/auth/AuthRepository.kt +++ b/app/src/main/java/com/example/remind/data/repository/auth/AuthRepository.kt @@ -1,7 +1,9 @@ package com.example.remind.data.repository.auth import com.example.remind.data.model.request.KakaoLoginRequest +import com.example.remind.data.model.request.OnBoardingRequest import com.example.remind.data.model.request.TokenRequest +import com.example.remind.data.model.response.OnBoardingResponse import com.example.remind.data.model.response.SocialLoginResponse import com.example.remind.data.model.response.TokenResponse import com.example.remind.data.network.adapter.ApiResult @@ -9,4 +11,5 @@ import retrofit2.http.Body interface AuthRepository { suspend fun getTokenFromKakao(body: KakaoLoginRequest): ApiResult + suspend fun postOnBoardingInfo(body: OnBoardingRequest): ApiResult } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/repository/auth/AuthRepositoryImpl.kt b/app/src/main/java/com/example/remind/data/repository/auth/AuthRepositoryImpl.kt index e5cb377..0d77597 100644 --- a/app/src/main/java/com/example/remind/data/repository/auth/AuthRepositoryImpl.kt +++ b/app/src/main/java/com/example/remind/data/repository/auth/AuthRepositoryImpl.kt @@ -1,7 +1,9 @@ package com.example.remind.data.repository.auth import com.example.remind.data.model.request.KakaoLoginRequest +import com.example.remind.data.model.request.OnBoardingRequest import com.example.remind.data.model.request.TokenRequest +import com.example.remind.data.model.response.OnBoardingResponse import com.example.remind.data.model.response.SocialLoginResponse import com.example.remind.data.model.response.TokenResponse import com.example.remind.data.network.adapter.ApiResult @@ -15,4 +17,9 @@ class AuthRepositoryImpl @Inject constructor( override suspend fun getTokenFromKakao(kakaoLoginRequest: KakaoLoginRequest): ApiResult { return service.KakaoLogin(kakaoLoginRequest) } + + override suspend fun postOnBoardingInfo(body: OnBoardingRequest): ApiResult { + return service.OnBoarding(body) + } + } \ No newline at end of file From 47d656fe4d729a2cd836d2f62dd938282b38af2d Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Wed, 15 May 2024 12:51:08 +0900 Subject: [PATCH 10/14] =?UTF-8?q?[design=20#8]=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/drawable/ic_arrowleft.xml | 3 --- app/src/main/res/drawable/ic_calendar_next.xml | 13 +++++++++++++ app/src/main/res/drawable/ic_calendar_previous.xml | 13 +++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable/ic_calendar_next.xml create mode 100644 app/src/main/res/drawable/ic_calendar_previous.xml diff --git a/app/src/main/res/drawable/ic_arrowleft.xml b/app/src/main/res/drawable/ic_arrowleft.xml index fa2f19f..0f60e98 100644 --- a/app/src/main/res/drawable/ic_arrowleft.xml +++ b/app/src/main/res/drawable/ic_arrowleft.xml @@ -3,9 +3,6 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + + diff --git a/app/src/main/res/drawable/ic_calendar_previous.xml b/app/src/main/res/drawable/ic_calendar_previous.xml new file mode 100644 index 0000000..fc4136b --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar_previous.xml @@ -0,0 +1,13 @@ + + + From 930053cafcfcda70d533f12ff4bd80b7e3b06b86 Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Thu, 16 May 2024 00:10:10 +0900 Subject: [PATCH 11/14] =?UTF-8?q?[feat=20#8]=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=EB=B0=8F=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=A1=9C=EC=A7=81?= =?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 --- .../data/model/request/OnBoardingRequest.kt | 12 ++++++++ .../data/model/response/OnBoardingResponse.kt | 15 ++++++++++ .../model/response/SocialLoginResponse.kt | 7 +++-- .../data/network/interceptor/TokenManager.kt | 3 +- .../domain/usecase/KakaoTokenUseCase.kt | 2 -- .../domain/usecase/OnBoardingUserCase.kt | 15 ++++++++++ .../feature/screens/auth/login/LoginScreen.kt | 1 + .../screens/auth/login/LoginViewModel.kt | 1 + .../auth/onboarding/OnBoardingContract.kt | 8 +++-- .../auth/onboarding/OnBoardingFinal.kt | 4 +++ .../auth/onboarding/OnBoardingPatience.kt | 16 ++++++++-- .../auth/onboarding/OnBoardingViewModel.kt | 30 ++++++++++++++++++- .../feature/screens/patience/PatienceGraph.kt | 3 ++ 13 files changed, 107 insertions(+), 10 deletions(-) create mode 100644 app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt create mode 100644 app/src/main/java/com/example/remind/data/model/response/OnBoardingResponse.kt create mode 100644 app/src/main/java/com/example/remind/domain/usecase/OnBoardingUserCase.kt diff --git a/app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt b/app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt new file mode 100644 index 0000000..0213969 --- /dev/null +++ b/app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt @@ -0,0 +1,12 @@ +package com.example.remind.data.model.request + +import kotlinx.serialization.Serializable + +@Serializable +data class OnBoardingRequest( + val centerName: String, + val city: String, + val district: String, + val protectorPhoneNumber: String, + val rolesType: String +) \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/model/response/OnBoardingResponse.kt b/app/src/main/java/com/example/remind/data/model/response/OnBoardingResponse.kt new file mode 100644 index 0000000..d9b0758 --- /dev/null +++ b/app/src/main/java/com/example/remind/data/model/response/OnBoardingResponse.kt @@ -0,0 +1,15 @@ +package com.example.remind.data.model.response + +import kotlinx.serialization.Serializable + +@Serializable +data class OnBoardingResponse( + val code: Int, + val message: String, + val data: SuccessResponse +) +@Serializable +data class SuccessResponse( + val userId: Int, + val roles_type: String +) \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/model/response/SocialLoginResponse.kt b/app/src/main/java/com/example/remind/data/model/response/SocialLoginResponse.kt index 14ba968..3fb57cb 100644 --- a/app/src/main/java/com/example/remind/data/model/response/SocialLoginResponse.kt +++ b/app/src/main/java/com/example/remind/data/model/response/SocialLoginResponse.kt @@ -1,14 +1,17 @@ package com.example.remind.data.model.response +import kotlinx.serialization.Serializable + +@Serializable data class SocialLoginResponse( val code: Int, val data: MemberInfo, val message: String ) - +@Serializable data class MemberInfo( val accessToken: String, - val isMemberFinishedOnboarding: Boolean, + val rolesType: String, val name: String, val refreshToken: String ) \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt b/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt index c0f5f9f..05e7874 100644 --- a/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt +++ b/app/src/main/java/com/example/remind/data/network/interceptor/TokenManager.kt @@ -1,5 +1,6 @@ package com.example.remind.data.network.interceptor +import android.util.Log import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.edit @@ -38,7 +39,7 @@ class TokenManager @Inject constructor( prefs[ACCESS_TOKEN] = accessToken prefs[REFRESH_TOKEN] = refreshToken } - Timber.d("액세스: $accessToken 리프레시: $refreshToken") + Log.d("TokenManager","액세스: $accessToken 리프레시: $refreshToken") } suspend fun saveUserName(userName: String) { diff --git a/app/src/main/java/com/example/remind/domain/usecase/KakaoTokenUseCase.kt b/app/src/main/java/com/example/remind/domain/usecase/KakaoTokenUseCase.kt index 2e07f05..021367f 100644 --- a/app/src/main/java/com/example/remind/domain/usecase/KakaoTokenUseCase.kt +++ b/app/src/main/java/com/example/remind/domain/usecase/KakaoTokenUseCase.kt @@ -1,9 +1,7 @@ package com.example.remind.domain.usecase import com.example.remind.data.model.request.KakaoLoginRequest -import com.example.remind.data.model.request.TokenRequest import com.example.remind.data.model.response.SocialLoginResponse -import com.example.remind.data.model.response.TokenResponse import com.example.remind.data.network.adapter.ApiResult import com.example.remind.data.repository.auth.AuthRepository import javax.inject.Inject diff --git a/app/src/main/java/com/example/remind/domain/usecase/OnBoardingUserCase.kt b/app/src/main/java/com/example/remind/domain/usecase/OnBoardingUserCase.kt new file mode 100644 index 0000000..cf941e9 --- /dev/null +++ b/app/src/main/java/com/example/remind/domain/usecase/OnBoardingUserCase.kt @@ -0,0 +1,15 @@ +package com.example.remind.domain.usecase + +import com.example.remind.data.model.request.OnBoardingRequest +import com.example.remind.data.model.response.OnBoardingResponse +import com.example.remind.data.network.adapter.ApiResult +import com.example.remind.data.repository.auth.AuthRepository +import javax.inject.Inject + +class OnBoardingUserCase @Inject constructor( + private val authRepository: AuthRepository +) { + suspend operator fun invoke(requestBody: OnBoardingRequest): ApiResult { + return authRepository.postOnBoardingInfo(requestBody) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt index ffd9992..5c411a4 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginScreen.kt @@ -54,6 +54,7 @@ fun LoginScreen( is LoginContract.Effect.Toastmessage -> { Toast.makeText(context, effect.message, Toast.LENGTH_SHORT).show() } + else->{} } } } diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt index 939ac4f..c7a5e7a 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt @@ -92,6 +92,7 @@ private fun socialLogin(token: String) { } ) ) + Timber.d("${tokenManager.getAccessToken()} ||| ${tokenManager.getRefreshToken()}") } is ApiResult.Failure.UnknownApiError -> { postEffect(LoginContract.Effect.Toastmessage("리마인드 서버 관리자에게 문의하세요")) diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt index d668f5c..47def5a 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt @@ -6,10 +6,13 @@ import androidx.navigation.NavOptionsBuilder import com.example.remind.core.base.UiEffect import com.example.remind.core.base.UiEvent import com.example.remind.core.base.UiState +import com.example.remind.data.model.request.OnBoardingRequest +import com.example.remind.feature.screens.auth.login.LoginContract class OnBoardingContract { data class State( - val selectedType: String? = null + val selectedType: String? = null, + val moveAble: Boolean = false ): UiState sealed class Event: UiEvent { @@ -17,7 +20,7 @@ class OnBoardingContract { data class CenterButtonClicked(val context: Context): Event() data class PatienceButtonClicked(val context: Context): Event() data class NextButtonClicked(val context: Context): Event() - data class NextButtonFinal(val context: Context): Event() + data class NextButtonFinal(val onBoardingData: OnBoardingRequest): Event() data class NextButtonToPatience(val context: Context): Event() } @@ -27,5 +30,6 @@ class OnBoardingContract { val navOptions: NavOptions? = null, val builder: NavOptionsBuilder.() -> Unit = {} ): Effect() + data class Toastmessage(val message: String): Effect() } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt index fdaaeeb..66b6e31 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingFinal.kt @@ -1,6 +1,7 @@ package com.example.remind.feature.screens.auth.onboarding import android.graphics.Paint +import android.widget.Toast import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -45,6 +46,9 @@ fun OnBoardingFinalScreen( is OnBoardingContract.Effect.NavigateTo -> { navController.navigate(effect.destination, effect.navOptions) } + is OnBoardingContract.Effect.Toastmessage -> { + Toast.makeText(context, effect.message, Toast.LENGTH_SHORT).show() + } } } } diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt index 77780a4..2d4b7b4 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt @@ -1,5 +1,6 @@ package com.example.remind.feature.screens.auth.onboarding +import android.widget.Toast import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -40,6 +41,7 @@ import com.example.remind.R import com.example.remind.core.common.component.BasicOnBoardingAppBar import com.example.remind.core.designsystem.theme.Pretendard import com.example.remind.core.designsystem.theme.RemindTheme +import com.example.remind.data.model.request.OnBoardingRequest import kotlinx.coroutines.flow.collectLatest @Composable @@ -57,7 +59,9 @@ fun OnBoardingPatienceScreen( is OnBoardingContract.Effect.NavigateTo -> { navController.navigate(effect.destination, effect.navOptions) } - + is OnBoardingContract.Effect.Toastmessage -> { + Toast.makeText(context, effect.message, Toast.LENGTH_SHORT).show() + } } } } @@ -117,7 +121,15 @@ fun OnBoardingPatienceScreen( backgroundColor = RemindTheme.colors.main_6, text = stringResource(id = R.string.다음), onClick = { - viewModel.setEvent(OnBoardingContract.Event.NextButtonFinal(context)) + viewModel.setEvent(OnBoardingContract.Event.NextButtonFinal( + OnBoardingRequest( + centerName = "", + city = "", + district = "", + protectorPhoneNumber = "01088644622", + rolesType = "ROLE_PATIENT" + ) + )) }, textColor = RemindTheme.colors.white, enable = true diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt index 54a8281..f8ca3de 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt @@ -4,7 +4,11 @@ import androidx.lifecycle.viewModelScope import androidx.navigation.navOptions import com.example.remind.app.Screens import com.example.remind.core.base.BaseViewModel +import com.example.remind.data.model.request.OnBoardingRequest +import com.example.remind.data.network.adapter.ApiResult import com.example.remind.data.network.interceptor.TokenManager +import com.example.remind.domain.usecase.OnBoardingUserCase +import com.example.remind.feature.screens.auth.login.LoginContract import com.example.remind.feature.screens.auth.splash.SplashContract import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch @@ -13,6 +17,7 @@ import javax.inject.Inject @HiltViewModel class OnBoardingViewModel @Inject constructor( + private val onBoardingUserCase: OnBoardingUserCase, private val tokenManager: TokenManager ): BaseViewModel( initialState = OnBoardingContract.State() @@ -29,7 +34,8 @@ class OnBoardingViewModel @Inject constructor( updateState(currentState.copy("ROLE_PATIENT")) } is OnBoardingContract.Event.NextButtonFinal -> { - navigateToFinal() + postOnBoarding(event.onBoardingData) + if(currentState.moveAble == true) navigateToFinal() } is OnBoardingContract.Event.NextButtonToPatience -> { navigateToPatience() @@ -102,4 +108,26 @@ class OnBoardingViewModel @Inject constructor( } )) } + + private fun postOnBoarding(data: OnBoardingRequest) { + viewModelScope.launch { + val result = onBoardingUserCase.invoke(data) + when(result) { + is ApiResult.Success -> { + updateState(currentState.copy(moveAble = true)) + } + is ApiResult.Failure.UnknownApiError -> { + postEffect(OnBoardingContract.Effect.Toastmessage("리마인드 서버 관리자에게 문의하세요")) + } + is ApiResult.Failure.NetworkError -> { + postEffect(OnBoardingContract.Effect.Toastmessage("네트워크 설정을 확인해주세요")) + } + is ApiResult.Failure.HttpError -> { + //나중에 지워야함!!!!!!!!!!!!!!!!!!!!!!!!!!!예비로 넣어둠 + updateState(currentState.copy(moveAble = true)) + postEffect(OnBoardingContract.Effect.Toastmessage("Http 오류가 발생했습니다")) + } + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/patience/PatienceGraph.kt b/app/src/main/java/com/example/remind/feature/screens/patience/PatienceGraph.kt index b191d1a..d294def 100644 --- a/app/src/main/java/com/example/remind/feature/screens/patience/PatienceGraph.kt +++ b/app/src/main/java/com/example/remind/feature/screens/patience/PatienceGraph.kt @@ -1,12 +1,15 @@ package com.example.remind.feature.screens.patience +import android.os.Build +import androidx.annotation.RequiresApi import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.navigation.compose.NavHost import androidx.navigation.NavHostController import com.example.remind.app.Screens import androidx.navigation.compose.composable +@RequiresApi(Build.VERSION_CODES.O) @Composable fun PatienceGraph( navController: NavHostController, From 2687be42e77932305df981a16667528495d3c57b Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Thu, 16 May 2024 00:57:20 +0900 Subject: [PATCH 12/14] =?UTF-8?q?[feat=20#8]=20=EA=B8=B0=EB=B6=84=20?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20=EC=82=AC=EC=9A=A9=EB=90=A0=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/common/component/StepComponent.kt | 47 ++++++++++++++++++ .../patience/writing/WritingMoodStep1.kt | 4 ++ app/src/main/res/drawable/img_emptymood.png | Bin 0 -> 424922 bytes 3 files changed, 51 insertions(+) create mode 100644 app/src/main/java/com/example/remind/core/common/component/StepComponent.kt create mode 100644 app/src/main/java/com/example/remind/feature/screens/patience/writing/WritingMoodStep1.kt create mode 100644 app/src/main/res/drawable/img_emptymood.png diff --git a/app/src/main/java/com/example/remind/core/common/component/StepComponent.kt b/app/src/main/java/com/example/remind/core/common/component/StepComponent.kt new file mode 100644 index 0000000..1fd8d27 --- /dev/null +++ b/app/src/main/java/com/example/remind/core/common/component/StepComponent.kt @@ -0,0 +1,47 @@ +package com.example.remind.core.common.component + +import androidx.compose.foundation.Canvas +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.drawBehind +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.min +import com.example.remind.core.designsystem.theme.RemindTheme +@Composable +fun StepComponent( + modifier: Modifier = Modifier, + text: Int, + backgroundColor: Color, + textColor: Color +) { + Box( + modifier = modifier + .size(28.dp) + .background(color = backgroundColor, shape = RoundedCornerShape(100.dp)), + contentAlignment = Alignment.Center + ) { + Text( + modifier = modifier, + text = text.toString(), + style = RemindTheme.typography.b3Bold.copy(color = textColor) + ) + } +} + +@Preview +@Composable +fun StepComponentPreview() { + StepComponent(text = 1, backgroundColor = RemindTheme.colors.main_6, textColor = RemindTheme.colors.white) +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/patience/writing/WritingMoodStep1.kt b/app/src/main/java/com/example/remind/feature/screens/patience/writing/WritingMoodStep1.kt new file mode 100644 index 0000000..e472ec8 --- /dev/null +++ b/app/src/main/java/com/example/remind/feature/screens/patience/writing/WritingMoodStep1.kt @@ -0,0 +1,4 @@ +package com.example.remind.feature.screens.patience.writing + +class WritingMoodStep1 { +} \ No newline at end of file diff --git a/app/src/main/res/drawable/img_emptymood.png b/app/src/main/res/drawable/img_emptymood.png new file mode 100644 index 0000000000000000000000000000000000000000..759dfa5c81efbb286710e0f2eb7dc82ea7143749 GIT binary patch literal 424922 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

HeqkF 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

-LgnVh+drGd2 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š!Y&?kD(cXvW%_`q*8zBM=f}O42%JkvyLNg&0 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 literal 0 HcmV?d00001 From 9afc1411ca1b4ed90673df95f706821e2f33e51b Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Thu, 16 May 2024 15:42:49 +0900 Subject: [PATCH 13/14] =?UTF-8?q?[feat=20#8]=20fcmtoken=20=EB=B9=84?= =?UTF-8?q?=EB=8F=99=EA=B8=B0=EC=A0=81=EC=9C=BC=EB=A1=9C=20=EB=B0=9B?= =?UTF-8?q?=EC=95=84=EC=84=9C=20=EB=B3=B4=EB=82=B4=EB=8A=94=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EA=B5=AC=EC=B6=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 1 + .../com/example/remind/app/MainActivity.kt | 9 --------- .../example/remind/data/di/NetworkModule.kt | 6 ++++++ .../data/model/request/OnBoardingRequest.kt | 3 ++- .../data/repository/auth/TokenRepository.kt | 5 +++++ .../repository/auth/TokenRepositoryImpl.kt | 14 ++++++++++++++ .../onboarding_usecase/FcmTokenUseCase.kt | 12 ++++++++++++ .../KakaoTokenUseCase.kt | 2 +- .../OnBoardingUserCase.kt | 2 +- .../UpdateTokenUseCase.kt | 2 +- .../screens/auth/login/LoginViewModel.kt | 4 +--- .../auth/onboarding/OnBoardingContract.kt | 3 ++- .../auth/onboarding/OnBoardingPatience.kt | 3 ++- .../auth/onboarding/OnBoardingViewModel.kt | 19 +++++++++++++------ 14 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 app/src/main/java/com/example/remind/data/repository/auth/TokenRepository.kt create mode 100644 app/src/main/java/com/example/remind/data/repository/auth/TokenRepositoryImpl.kt create mode 100644 app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/FcmTokenUseCase.kt rename app/src/main/java/com/example/remind/domain/usecase/{ => onboarding_usecase}/KakaoTokenUseCase.kt (89%) rename app/src/main/java/com/example/remind/domain/usecase/{ => onboarding_usecase}/OnBoardingUserCase.kt (89%) rename app/src/main/java/com/example/remind/domain/usecase/{ => onboarding_usecase}/UpdateTokenUseCase.kt (89%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 49a25cd..8de65f7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -79,6 +79,7 @@ dependencies { implementation("androidx.navigation:navigation-fragment-ktx:2.7.7") implementation("androidx.navigation:navigation-ui-ktx:2.7.7") implementation("androidx.benchmark:benchmark-macro:1.2.4") + implementation("com.google.android.engage:engage-core:1.5.1") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") diff --git a/app/src/main/java/com/example/remind/app/MainActivity.kt b/app/src/main/java/com/example/remind/app/MainActivity.kt index 4683ddd..aed6403 100644 --- a/app/src/main/java/com/example/remind/app/MainActivity.kt +++ b/app/src/main/java/com/example/remind/app/MainActivity.kt @@ -28,15 +28,6 @@ class MainActivity : ComponentActivity() { } } } - //곧 지워질 코드 - Firebase.messaging.token.addOnCompleteListener { task -> - if(!task.isSuccessful) { - Log.e("tagg", "failed") - } else { - val token = task.result - Log.d("taag", "$token") - } - } } } diff --git a/app/src/main/java/com/example/remind/data/di/NetworkModule.kt b/app/src/main/java/com/example/remind/data/di/NetworkModule.kt index d7a2868..3dcc884 100644 --- a/app/src/main/java/com/example/remind/data/di/NetworkModule.kt +++ b/app/src/main/java/com/example/remind/data/di/NetworkModule.kt @@ -7,6 +7,8 @@ import com.example.remind.data.network.interceptor.AuthInterceptor import com.example.remind.data.network.service.AuthService import com.example.remind.data.repository.auth.AuthRepository import com.example.remind.data.repository.auth.AuthRepositoryImpl +import com.example.remind.data.repository.auth.TokenRepository +import com.example.remind.data.repository.auth.TokenRepositoryImpl import dagger.Binds import dagger.Module import dagger.Provides @@ -63,5 +65,9 @@ object NetworkModule { @Singleton @Binds abstract fun providesAuthRepository(authRepositoryImpl: AuthRepositoryImpl): AuthRepository + @Singleton + @Binds + abstract fun providesTokenRepository(tokenRepositoryImpl: TokenRepositoryImpl): TokenRepository } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt b/app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt index 0213969..df1d99c 100644 --- a/app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt +++ b/app/src/main/java/com/example/remind/data/model/request/OnBoardingRequest.kt @@ -8,5 +8,6 @@ data class OnBoardingRequest( val city: String, val district: String, val protectorPhoneNumber: String, - val rolesType: String + val rolesType: String, + val fcmToken: String ) \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/repository/auth/TokenRepository.kt b/app/src/main/java/com/example/remind/data/repository/auth/TokenRepository.kt new file mode 100644 index 0000000..848a9e3 --- /dev/null +++ b/app/src/main/java/com/example/remind/data/repository/auth/TokenRepository.kt @@ -0,0 +1,5 @@ +package com.example.remind.data.repository.auth + +interface TokenRepository { + suspend fun getFCMToken(): String +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/repository/auth/TokenRepositoryImpl.kt b/app/src/main/java/com/example/remind/data/repository/auth/TokenRepositoryImpl.kt new file mode 100644 index 0000000..45d193c --- /dev/null +++ b/app/src/main/java/com/example/remind/data/repository/auth/TokenRepositoryImpl.kt @@ -0,0 +1,14 @@ +package com.example.remind.data.repository.auth + +import android.util.Log +import com.google.firebase.Firebase +import com.google.firebase.messaging.FirebaseMessaging +import com.google.firebase.messaging.messaging +import kotlinx.coroutines.tasks.await +import javax.inject.Inject + +class TokenRepositoryImpl @Inject constructor(): TokenRepository { + override suspend fun getFCMToken(): String { + return FirebaseMessaging.getInstance().token.await() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/FcmTokenUseCase.kt b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/FcmTokenUseCase.kt new file mode 100644 index 0000000..58a14b6 --- /dev/null +++ b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/FcmTokenUseCase.kt @@ -0,0 +1,12 @@ +package com.example.remind.domain.usecase.onboarding_usecase + +import com.example.remind.data.repository.auth.TokenRepository +import javax.inject.Inject + +class FcmTokenUseCase @Inject constructor( + private val tokenRepository: TokenRepository +) { + suspend operator fun invoke() : String { + return tokenRepository.getFCMToken() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/domain/usecase/KakaoTokenUseCase.kt b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/KakaoTokenUseCase.kt similarity index 89% rename from app/src/main/java/com/example/remind/domain/usecase/KakaoTokenUseCase.kt rename to app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/KakaoTokenUseCase.kt index 021367f..df4bc89 100644 --- a/app/src/main/java/com/example/remind/domain/usecase/KakaoTokenUseCase.kt +++ b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/KakaoTokenUseCase.kt @@ -1,4 +1,4 @@ -package com.example.remind.domain.usecase +package com.example.remind.domain.usecase.onboarding_usecase import com.example.remind.data.model.request.KakaoLoginRequest import com.example.remind.data.model.response.SocialLoginResponse diff --git a/app/src/main/java/com/example/remind/domain/usecase/OnBoardingUserCase.kt b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/OnBoardingUserCase.kt similarity index 89% rename from app/src/main/java/com/example/remind/domain/usecase/OnBoardingUserCase.kt rename to app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/OnBoardingUserCase.kt index cf941e9..21b9a2a 100644 --- a/app/src/main/java/com/example/remind/domain/usecase/OnBoardingUserCase.kt +++ b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/OnBoardingUserCase.kt @@ -1,4 +1,4 @@ -package com.example.remind.domain.usecase +package com.example.remind.domain.usecase.onboarding_usecase import com.example.remind.data.model.request.OnBoardingRequest import com.example.remind.data.model.response.OnBoardingResponse diff --git a/app/src/main/java/com/example/remind/domain/usecase/UpdateTokenUseCase.kt b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/UpdateTokenUseCase.kt similarity index 89% rename from app/src/main/java/com/example/remind/domain/usecase/UpdateTokenUseCase.kt rename to app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/UpdateTokenUseCase.kt index aa14fec..dbba648 100644 --- a/app/src/main/java/com/example/remind/domain/usecase/UpdateTokenUseCase.kt +++ b/app/src/main/java/com/example/remind/domain/usecase/onboarding_usecase/UpdateTokenUseCase.kt @@ -1,4 +1,4 @@ -package com.example.remind.domain.usecase +package com.example.remind.domain.usecase.onboarding_usecase import com.example.remind.data.model.request.TokenRequest import com.example.remind.data.model.response.TokenResponse diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt index c7a5e7a..c7e355c 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/login/LoginViewModel.kt @@ -8,10 +8,8 @@ import com.example.remind.app.Screens import com.example.remind.core.base.BaseViewModel import com.example.remind.data.model.request.KakaoLoginRequest import com.example.remind.data.network.adapter.ApiResult -import com.example.remind.data.network.adapter.onFailure -import com.example.remind.data.network.adapter.onSuccess import com.example.remind.data.network.interceptor.TokenManager -import com.example.remind.domain.usecase.KakaoTokenUseCase +import com.example.remind.domain.usecase.onboarding_usecase.KakaoTokenUseCase import com.kakao.sdk.auth.model.OAuthToken import com.kakao.sdk.common.model.ClientError import com.kakao.sdk.common.model.ClientErrorCause diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt index 47def5a..e058b7b 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingContract.kt @@ -12,7 +12,8 @@ import com.example.remind.feature.screens.auth.login.LoginContract class OnBoardingContract { data class State( val selectedType: String? = null, - val moveAble: Boolean = false + val moveAble: Boolean = false, + val fcmToken: String = "" ): UiState sealed class Event: UiEvent { diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt index 2d4b7b4..8833888 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingPatience.kt @@ -127,7 +127,8 @@ fun OnBoardingPatienceScreen( city = "", district = "", protectorPhoneNumber = "01088644622", - rolesType = "ROLE_PATIENT" + rolesType = "ROLE_PATIENT", + fcmToken = "" ) )) }, diff --git a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt index f8ca3de..9e81f8c 100644 --- a/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt +++ b/app/src/main/java/com/example/remind/feature/screens/auth/onboarding/OnBoardingViewModel.kt @@ -7,9 +7,9 @@ import com.example.remind.core.base.BaseViewModel import com.example.remind.data.model.request.OnBoardingRequest import com.example.remind.data.network.adapter.ApiResult import com.example.remind.data.network.interceptor.TokenManager -import com.example.remind.domain.usecase.OnBoardingUserCase -import com.example.remind.feature.screens.auth.login.LoginContract -import com.example.remind.feature.screens.auth.splash.SplashContract +import com.example.remind.data.repository.auth.TokenRepository +import com.example.remind.domain.usecase.onboarding_usecase.FcmTokenUseCase +import com.example.remind.domain.usecase.onboarding_usecase.OnBoardingUserCase import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking @@ -18,6 +18,7 @@ import javax.inject.Inject @HiltViewModel class OnBoardingViewModel @Inject constructor( private val onBoardingUserCase: OnBoardingUserCase, + private val tokenUseCase: FcmTokenUseCase, private val tokenManager: TokenManager ): BaseViewModel( initialState = OnBoardingContract.State() @@ -34,7 +35,8 @@ class OnBoardingViewModel @Inject constructor( updateState(currentState.copy("ROLE_PATIENT")) } is OnBoardingContract.Event.NextButtonFinal -> { - postOnBoarding(event.onBoardingData) + getFcmToken() + postOnBoarding(event.onBoardingData.copy(fcmToken = currentState.fcmToken)) if(currentState.moveAble == true) navigateToFinal() } is OnBoardingContract.Event.NextButtonToPatience -> { @@ -109,6 +111,13 @@ class OnBoardingViewModel @Inject constructor( )) } + private fun getFcmToken() { + viewModelScope.launch { + val fcmToken = tokenUseCase.invoke() + updateState(currentState.copy(fcmToken = fcmToken)) + } + } + private fun postOnBoarding(data: OnBoardingRequest) { viewModelScope.launch { val result = onBoardingUserCase.invoke(data) @@ -123,8 +132,6 @@ class OnBoardingViewModel @Inject constructor( postEffect(OnBoardingContract.Effect.Toastmessage("네트워크 설정을 확인해주세요")) } is ApiResult.Failure.HttpError -> { - //나중에 지워야함!!!!!!!!!!!!!!!!!!!!!!!!!!!예비로 넣어둠 - updateState(currentState.copy(moveAble = true)) postEffect(OnBoardingContract.Effect.Toastmessage("Http 오류가 발생했습니다")) } } From e05b8c531f36b5feb32f2beb9615e7ab6291c2ea Mon Sep 17 00:00:00 2001 From: seunghee17 Date: Thu, 16 May 2024 15:44:35 +0900 Subject: [PATCH 14/14] =?UTF-8?q?[feat]=20=ED=99=98=EC=9E=90=20=ED=99=88?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EA=B5=AC=ED=98=84=20description:=20api=20?= =?UTF-8?q?=EB=AF=B8=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/common/component/BasicTextButton.kt | 53 +++ .../core/common/component/MedicineItem.kt | 108 ++++++ .../core/common/component/StarRatingBar.kt | 58 +++ .../remind/data/model/CalendarUiModel.kt | 24 ++ .../data/repository/CalendarDataSource.kt | 55 +++ .../screens/patience/CheeringScreen.kt | 28 ++ .../feature/screens/patience/HomeScreen.kt | 358 +++++++++++++++++- .../screens/patience/MedicineScreen.kt | 33 +- .../screens/patience/MoodChartScreen.kt | 90 ++++- app/src/main/res/drawable/ic_close.xml | 20 + app/src/main/res/drawable/ic_phone_fill.xml | 12 + app/src/main/res/drawable/ic_star_fill.xml | 9 + app/src/main/res/drawable/ic_star_unfill.xml | 9 + .../main/res/drawable/img_example_cheer.xml | 177 +++++++++ app/src/main/res/values/strings.xml | 14 + 15 files changed, 1035 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/com/example/remind/core/common/component/BasicTextButton.kt create mode 100644 app/src/main/java/com/example/remind/core/common/component/MedicineItem.kt create mode 100644 app/src/main/java/com/example/remind/core/common/component/StarRatingBar.kt create mode 100644 app/src/main/java/com/example/remind/data/model/CalendarUiModel.kt create mode 100644 app/src/main/java/com/example/remind/data/repository/CalendarDataSource.kt create mode 100644 app/src/main/java/com/example/remind/feature/screens/patience/CheeringScreen.kt create mode 100644 app/src/main/res/drawable/ic_close.xml create mode 100644 app/src/main/res/drawable/ic_phone_fill.xml create mode 100644 app/src/main/res/drawable/ic_star_fill.xml create mode 100644 app/src/main/res/drawable/ic_star_unfill.xml create mode 100644 app/src/main/res/drawable/img_example_cheer.xml diff --git a/app/src/main/java/com/example/remind/core/common/component/BasicTextButton.kt b/app/src/main/java/com/example/remind/core/common/component/BasicTextButton.kt new file mode 100644 index 0000000..9c71b0c --- /dev/null +++ b/app/src/main/java/com/example/remind/core/common/component/BasicTextButton.kt @@ -0,0 +1,53 @@ +package com.example.remind.core.common.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.PlatformTextStyle +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.LineHeightStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.remind.core.designsystem.theme.Pretendard +import com.example.remind.core.designsystem.theme.RemindTheme + +@Composable +fun BasicTextButton( + modifier: Modifier = Modifier, + backgroundColor: Color, + text: String, + textColor: Color, + onClick: () -> Unit, + verticalPadding: Dp, + enable: Boolean +) { + Box( + modifier = modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(color = backgroundColor) + .clickable( + enabled = enable, + onClick = onClick + ) + ) { + Text( + modifier = modifier + .padding(vertical = verticalPadding), + text = text, + textAlign = TextAlign.Center, + style = RemindTheme.typography.c1Medium.copy(color = textColor) + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/core/common/component/MedicineItem.kt b/app/src/main/java/com/example/remind/core/common/component/MedicineItem.kt new file mode 100644 index 0000000..a7329a1 --- /dev/null +++ b/app/src/main/java/com/example/remind/core/common/component/MedicineItem.kt @@ -0,0 +1,108 @@ +package com.example.remind.core.common.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +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.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.remind.R +import com.example.remind.core.designsystem.theme.RemindTheme + +@Composable +fun MedicineItem( + modifier: Modifier = Modifier, + time: String, + score: Float, + doseClick: () -> Unit, + unadministeredClick: () -> Unit, +) { + Box( + modifier = modifier + .background(color = RemindTheme.colors.slate_50, shape = RoundedCornerShape(12.dp)) + ) { + Column( + horizontalAlignment = Alignment.Start, + ) { + Text( + modifier = modifier.padding(start = 12.dp, top = 7.dp), + text = time, + style = RemindTheme.typography.b3Bold.copy(color = RemindTheme.colors.slate_600) + ) + Row( + modifier = modifier.padding( + start = 12.dp, + end = 12.dp, + top = 2.dp, + bottom = 4.dp + ) + ) { + Text( + text = stringResource(id = R.string.중요도), + style = RemindTheme.typography.c3Medium.copy(color = RemindTheme.colors.slate_400) + ) + Spacer(modifier = modifier.width(6.dp)) + StarRatingBar( + rating = score, + onRatingChanged = {} + ) + } + Spacer(modifier = modifier.height(4.dp)) + Row() { + //시간이 정해져있을 경우 바꿔지도록 하기 + Text( + modifier = modifier + .weight(0.5f) + .background( + color = RemindTheme.colors.main_6, + shape = RoundedCornerShape(bottomStart = 12.dp) + ) + .clickable { doseClick }, + text = stringResource(id = R.string.복용), + textAlign= TextAlign.Center, + style = RemindTheme.typography.c1Bold.copy( + color = RemindTheme.colors.white, + lineHeight = 20.sp + ) + ) + Spacer(modifier = modifier.width(2.dp)) + Text( + modifier = modifier + .weight(0.5f) + .background( + color = RemindTheme.colors.main_5, + shape = RoundedCornerShape(bottomEnd = 12.dp) + ) + .clickable { unadministeredClick }, + text = stringResource(id = R.string.미복용), + textAlign= TextAlign.Center, + style = RemindTheme.typography.c1Bold.copy( + color = RemindTheme.colors.white, + lineHeight = 20.sp + ) + ) + } + } + } +} + +@Preview +@Composable +fun ItemPreview() { + //MedicineItem(time = "아침", score= 2.0, doseClick = {}, unadministeredClick = {}) +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/core/common/component/StarRatingBar.kt b/app/src/main/java/com/example/remind/core/common/component/StarRatingBar.kt new file mode 100644 index 0000000..b00a519 --- /dev/null +++ b/app/src/main/java/com/example/remind/core/common/component/StarRatingBar.kt @@ -0,0 +1,58 @@ +package com.example.remind.core.common.component + +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.selection.selectable +import androidx.compose.foundation.selection.selectableGroup +import androidx.compose.material3.Icon +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import com.example.remind.R +import com.example.remind.core.designsystem.theme.RemindTheme + +@Composable +fun StarRatingBar( + maxStars: Int = 3, + rating: Float, + onRatingChanged: (Float) -> Unit +) { + val density = LocalDensity.current.density + val starSize = (12f * density).dp + val starSpacing = (0.5f * density).dp + + Row( + modifier = Modifier.selectableGroup(), + verticalAlignment = Alignment.CenterVertically + ) { + for (i in 1..maxStars) { + val isSelected = i <= rating + val icon = if (isSelected) R.drawable.ic_star_fill else R.drawable.ic_star_unfill + val iconTintColor = if (isSelected) RemindTheme.colors.main_4 else RemindTheme.colors.slate_200 + Icon( + painter = painterResource(id = icon), + contentDescription = null, + tint = iconTintColor, + modifier = Modifier + .selectable( + selected = isSelected, + onClick = { + onRatingChanged(i.toFloat()) + } + ) + .width(starSize) + .height(starSize) + ) + + if (i < maxStars) { + Spacer(modifier = Modifier.width(starSpacing)) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/model/CalendarUiModel.kt b/app/src/main/java/com/example/remind/data/model/CalendarUiModel.kt new file mode 100644 index 0000000..baa1459 --- /dev/null +++ b/app/src/main/java/com/example/remind/data/model/CalendarUiModel.kt @@ -0,0 +1,24 @@ +package com.example.remind.data.model + +import android.os.Build +import androidx.annotation.RequiresApi +import java.time.LocalDate +import java.time.format.DateTimeFormatter +import java.util.Date + +data class CalendarUiModel( + val selectedDate: Date, + val visibleDates: List +) { + val startDate: Date = visibleDates.first() + val endDate: Date = visibleDates.last() + + data class Date( + val date: LocalDate, + val isSelected: Boolean, + val isToday: Boolean + ) { + @RequiresApi(Build.VERSION_CODES.O) + val day: String = date.format(DateTimeFormatter.ofPattern("E")) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/data/repository/CalendarDataSource.kt b/app/src/main/java/com/example/remind/data/repository/CalendarDataSource.kt new file mode 100644 index 0000000..4334077 --- /dev/null +++ b/app/src/main/java/com/example/remind/data/repository/CalendarDataSource.kt @@ -0,0 +1,55 @@ +package com.example.remind.data.repository + +import android.os.Build +import androidx.annotation.RequiresApi +import com.example.remind.data.model.CalendarUiModel +import java.time.DayOfWeek +import java.time.LocalDate +import java.time.temporal.ChronoUnit +import java.util.stream.Collectors +import java.util.stream.Stream + +class CalendarDataSource { + val today: LocalDate + @RequiresApi(Build.VERSION_CODES.O) + get() { + return LocalDate.now() + } + @RequiresApi(Build.VERSION_CODES.O) + fun getData(startDate: LocalDate = today, lastSelectedDate: LocalDate): CalendarUiModel { + val firstDayOfWeek = startDate.with(DayOfWeek.MONDAY) + val endDayOfWeek = firstDayOfWeek.plusDays(7) + val visibleDates = getDateBetween(firstDayOfWeek,endDayOfWeek) + return toUiModel(visibleDates, lastSelectedDate) + } + + @RequiresApi(Build.VERSION_CODES.O) + private fun getDateBetween(startDate: LocalDate, endDate: LocalDate): List { + val numOfDays = ChronoUnit.DAYS.between(startDate, endDate) + return Stream.iterate(startDate) { date -> + date.plusDays(1) + } + .limit(numOfDays) + .collect(Collectors.toList()) + } + + @RequiresApi(Build.VERSION_CODES.O) + private fun toUiModel( + dateList: List, + lastSelectedDate: LocalDate + ): CalendarUiModel { + return CalendarUiModel( + selectedDate = toItemUiModel(lastSelectedDate, true), + visibleDates = dateList.map { + toItemUiModel(it, it.isEqual(lastSelectedDate)) + } + ) + } + + @RequiresApi(Build.VERSION_CODES.O) + private fun toItemUiModel(date: LocalDate, isSelectedDate: Boolean) = CalendarUiModel.Date( + isSelected = isSelectedDate, + isToday = date.isEqual(today), + date = date + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/patience/CheeringScreen.kt b/app/src/main/java/com/example/remind/feature/screens/patience/CheeringScreen.kt new file mode 100644 index 0000000..341a6ab --- /dev/null +++ b/app/src/main/java/com/example/remind/feature/screens/patience/CheeringScreen.kt @@ -0,0 +1,28 @@ +package com.example.remind.feature.screens.patience + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import com.example.remind.R +import com.example.remind.core.designsystem.theme.RemindTheme + +@Composable +fun CheeringScreen(){ + RemindTheme { + Image( + modifier = Modifier.fillMaxSize(), + painter = painterResource(id = R.drawable.img_example_cheer), + contentDescription = null + ) + } +} + +@Preview +@Composable +fun CheeringPreview() { + CheeringScreen() +} \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/patience/HomeScreen.kt b/app/src/main/java/com/example/remind/feature/screens/patience/HomeScreen.kt index 08dde4e..9565119 100644 --- a/app/src/main/java/com/example/remind/feature/screens/patience/HomeScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/patience/HomeScreen.kt @@ -1,38 +1,390 @@ package com.example.remind.feature.screens.patience +import android.os.Build +import androidx.annotation.RequiresApi import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +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.Spacer +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.example.remind.R +import com.example.remind.core.common.component.BasicButton import com.example.remind.core.common.component.BasicListItem import com.example.remind.core.designsystem.theme.RemindTheme +import com.example.remind.data.model.CalendarUiModel +import com.example.remind.data.repository.CalendarDataSource import com.example.remind.feature.viewmodel.CustomViewModel +@RequiresApi(Build.VERSION_CODES.O) @Composable fun HomeScreen(){ + val dataSource = CalendarDataSource() + var calendarUiModel by remember { mutableStateOf(dataSource.getData(lastSelectedDate = dataSource.today)) } + val scrollState = rememberScrollState() + RemindTheme { + Column( + modifier = Modifier + .fillMaxSize() + .background(color = RemindTheme.colors.white) + ) { + HomeTopBar(onClick = {}) + DateSelectHeader(previousBtn = {}, nextBtn = {}, calendarBtn = {}) + Content( + modifier = Modifier.fillMaxWidth(), + data = calendarUiModel, + onDateClicked = { date -> + calendarUiModel = calendarUiModel.copy( + selectedDate = date, + visibleDates = calendarUiModel.visibleDates.map { + it.copy( + isSelected = it.date.isEqual(date.date) + ) + } + ) + } + ) + Spacer(modifier = Modifier.height(10.dp)) + Box( + modifier = Modifier + .fillMaxWidth() + .shadow( + shape = RoundedCornerShape( + topStart = 20.dp, + topEnd = 20.dp, + bottomStart = 0.dp, + bottomEnd = 0.dp + ), + elevation = 2.dp, + ambientColor = Color(0xFF042340).copy(alpha = 0.4f), + ) + .background( + shape = RoundedCornerShape( + topStart = 20.dp, + topEnd = 20.dp, + bottomStart = 0.dp, + bottomEnd = 0.dp + ), + color = RemindTheme.colors.white, + ) + ) { + Column( + modifier = Modifier + .padding(horizontal = 20.dp) + .verticalScroll(scrollState), + horizontalAlignment = Alignment.Start + ) { + Spacer(modifier = Modifier.height(20.dp)) + Text( + text = stringResource(id = R.string.약_복용_체크), + style = RemindTheme.typography.b2Bold.copy(color = Color(0xFF1F2937)) + ) + Spacer(modifier = Modifier.height(10.dp)) + EmptyMedicineList() + Spacer(modifier = Modifier.height(23.dp)) + Text( + text = stringResource(id = R.string.오늘_하루_기분이_어떠셨나요), + style = RemindTheme.typography.b2Bold.copy(color = Color(0xFF1F2937)) + ) + Spacer(modifier = Modifier.height(2.dp)) + Text( + text = stringResource(id = R.string.당신의_하루가_궁금해요), + style = RemindTheme.typography.b3Medium.copy(color = Color(0xFF9B9B9B)) + ) + Spacer(modifier = Modifier.height(10.dp)) + EmptyTodayMoodContainer(clickToWrite = {}) + Spacer(modifier = Modifier.height(80.dp)) + } + } + } + } +} + +@Composable +fun HomeTopBar( + modifier: Modifier = Modifier, + onClick: () -> Unit +) { + Row( + modifier = modifier + .fillMaxWidth() + .background(color = RemindTheme.colors.white) + .padding(start = 20.dp, end = 20.dp, top = 23.6.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Image( + painter = painterResource(id = R.drawable.ic_logo), + contentDescription = null, + modifier = modifier + .size( + width = 37.dp, + height = 22.dp + ) + ) + Spacer(Modifier.weight(1f)) + IconButton( + onClick = onClick, + ) { + Icon( + painter = painterResource(id = R.drawable.ic_sos), + contentDescription = null, + modifier = modifier + .size(width = 24.dp, height = 32.dp), + tint = RemindTheme.colors.sub_3 + ) + } + } +} + +@Composable +fun DateSelectHeader( + modifier: Modifier = Modifier, + previousBtn: () -> Unit, + nextBtn: () -> Unit, + calendarBtn: () -> Unit +) { + Row( + modifier = modifier + .fillMaxWidth() + .background(color = RemindTheme.colors.white) + .padding(start = 20.dp, end = 20.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = "2024년 4월 1주차", + style = RemindTheme.typography.c1Medium.copy(color = RemindTheme.colors.grayscale_3) + ) + Spacer(modifier = modifier.weight(1f)) + IconButton( + onClick = nextBtn, + ) { + Icon( + painter = painterResource(id = R.drawable.ic_calendar_previous), + contentDescription = null, + modifier = Modifier + .size(width = 17.dp, height = 17.dp), + tint = RemindTheme.colors.slate_400 + ) + } + IconButton( + onClick = calendarBtn, + ) { + Icon( + painter = painterResource(id = R.drawable.ic_calendar_next), + contentDescription = null, + modifier = modifier + .size(width = 17.dp, height = 17.dp), + tint = RemindTheme.colors.slate_400 + ) + } + IconButton( + onClick = calendarBtn, + ) { + Icon( + painter = painterResource(id = R.drawable.ic_calendar), + contentDescription = null, + modifier = modifier + .size(width = 14.dp, height = 14.dp), + tint = RemindTheme.colors.slate_500 + ) + } + } +} +@RequiresApi(Build.VERSION_CODES.O) +@Composable +fun Content( + modifier: Modifier = Modifier, + data: CalendarUiModel, + onDateClicked: (CalendarUiModel.Date) -> Unit +) { + LazyRow( + modifier = modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceEvenly + ) { + items(items = data.visibleDates) { date -> + DayItem( + date = date, + onDateClicked = onDateClicked + ) + } + } } +@RequiresApi(Build.VERSION_CODES.O) +@Composable +fun DayItem( + modifier: Modifier = Modifier, + date: CalendarUiModel.Date, + onDateClicked: (CalendarUiModel.Date) -> Unit +) { + Card( + modifier = modifier + .clickable { + onDateClicked(date) + }, + colors = CardDefaults.cardColors( + containerColor = if (date.isSelected) RemindTheme.colors.main_6 else RemindTheme.colors.white + ) + ) { + Column( + ) { + Text( + text = date.day, + modifier = Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 6.dp, bottom = 7.dp), + style = RemindTheme.typography.b2Medium.copy( + color = if(date.isSelected) RemindTheme.colors.white else RemindTheme.colors.slate_800 + ) + ) + Text( + text = date.date.dayOfMonth.toString(), + modifier = Modifier + .align(Alignment.CenterHorizontally) + .padding(vertical = 1.dp, horizontal = 7.dp) + .background(color = RemindTheme.colors.white, shape = CircleShape), + style = RemindTheme.typography.b2Medium.copy(color = RemindTheme.colors.slate_800) + ) + Spacer(modifier = modifier.height(3.dp)) + } + } +} +@Composable +fun EmptyMedicineList( + modifier: Modifier = Modifier +) { + Box( + modifier = modifier + .fillMaxWidth() + .border( + width = 1.dp, + color = RemindTheme.colors.grayscale_1, + shape = RoundedCornerShape(12.dp) + ) + ) { + Text( + modifier = modifier + .align(Alignment.Center) + .padding(vertical = 30.dp), + text = stringResource(id = R.string.등록된_약이_없어요), + style = RemindTheme.typography.c1Medium.copy(color = RemindTheme.colors.slate_400) + ) + } +} + +@Composable +fun EmptyTodayMoodContainer( + modifier: Modifier = Modifier, + clickToWrite: () -> Unit +) { + Box( + modifier = modifier + .fillMaxWidth() + .border( + width = 1.dp, + color = RemindTheme.colors.grayscale_1, + shape = RoundedCornerShape(12.dp) + ) + ) { + Image( + modifier = modifier + .padding( + start = 50.dp, + end = 50.dp, + top = 21.dp, + bottom = 70.dp + ) + .align(Alignment.Center), + painter = painterResource(id = R.drawable.img_emptymood), + contentDescription = null + ) + BasicButton( + modifier = modifier + .align(Alignment.BottomCenter) + .fillMaxWidth() + .padding(start = 53.dp, end = 54.dp, bottom = 31.dp), + text = stringResource(id = R.string.오늘의_기분_기록하기), + RoundedCorner = 29.dp, + backgroundColor = RemindTheme.colors.main_6, + textColor = RemindTheme.colors.white, + verticalPadding = 10.dp, + onClick = clickToWrite, + textStyle = RemindTheme.typography.b2Bold + ) + } +} +//다이얼로그 +@Composable +fun DialogContent() { + Column { + Spacer( + modifier = Modifier + .height(9.dp) + .fillMaxWidth() + ) + Text( + text = stringResource(id = R.string.약_미복용_사유), + textAlign = TextAlign.Center, + modifier = Modifier + .fillMaxWidth() + .wrapContentSize() + .padding(top = 9.dp), + style = RemindTheme.typography.b1Bold.copy(color = RemindTheme.colors.text) + ) + Spacer( + modifier = Modifier + .height(29.dp) + .fillMaxWidth() + ) + + } +} + + + +@RequiresApi(Build.VERSION_CODES.O) +@Preview +@Composable +fun HomePreview() { + EmptyTodayMoodContainer(clickToWrite = {}) +} diff --git a/app/src/main/java/com/example/remind/feature/screens/patience/MedicineScreen.kt b/app/src/main/java/com/example/remind/feature/screens/patience/MedicineScreen.kt index aaf729c..5affb14 100644 --- a/app/src/main/java/com/example/remind/feature/screens/patience/MedicineScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/patience/MedicineScreen.kt @@ -4,16 +4,35 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.sp - +import com.example.remind.core.designsystem.theme.RemindTheme +import com.patrykandpatrick.vico.compose.style.ChartStyle +import com.patrykandpatrick.vico.core.chart.line.LineChart +import com.patrykandpatrick.vico.core.entry.ChartEntryModelProducer +import com.patrykandpatrick.vico.core.entry.FloatEntry +import com.patrykandpatrick.vico.views.chart.line.lineSpec +//그래프 연습용 @Composable fun MedicineScreen(){ - Box(modifier = Modifier - .fillMaxSize(), - contentAlignment = Alignment.Center){ - Text(text = "ThirdScreen", - fontSize = 22.sp) - } +// val refreshDataset = remember { mutableIntStateOf(0) } +// val modelProducer = remember {ChartEntryModelProducer()} +// val datasetForModel = remember { mutableStateListOf() } +// val datasetLineSpec = remember{ arrayListOf() } +// LaunchedEffect(refreshDataset.intValue) { +// datasetForModel.clear() +// datasetLineSpec.clear() +// var xPos = 0f +// val dataPoints = arrayListOf() +// datasetLineSpec.add( +// ) +// } +// RemindTheme { +// +// } } \ No newline at end of file diff --git a/app/src/main/java/com/example/remind/feature/screens/patience/MoodChartScreen.kt b/app/src/main/java/com/example/remind/feature/screens/patience/MoodChartScreen.kt index 396255c..40cc517 100644 --- a/app/src/main/java/com/example/remind/feature/screens/patience/MoodChartScreen.kt +++ b/app/src/main/java/com/example/remind/feature/screens/patience/MoodChartScreen.kt @@ -2,19 +2,103 @@ package com.example.remind.feature.screens.patience import android.content.Context import android.util.Log +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.example.remind.R +import com.example.remind.core.common.component.BasicButton +import com.example.remind.core.common.component.BasicTextButton +import com.example.remind.core.designsystem.theme.RemindTheme +import com.example.remind.feature.screens.auth.onboarding.typeButton import com.kakao.sdk.auth.model.OAuthToken import com.kakao.sdk.common.model.ClientError import com.kakao.sdk.common.model.ClientErrorCause import com.kakao.sdk.user.UserApiClient +import com.patrykandpatrick.vico.compose.chart.Chart +import com.patrykandpatrick.vico.compose.style.ChartStyle +import com.patrykandpatrick.vico.views.chart.line.lineChart @Composable -fun MoodChartScreen(){ - val context = LocalContext.current - Column() { +fun MoodChartScreen() { + val scrollState = rememberScrollState() + RemindTheme { + Column( + modifier = Modifier + .padding(horizontal = 20.dp) + .verticalScroll(scrollState) + ) { + Spacer(modifier = Modifier.height(19.6.dp)) + Text( + text = stringResource(id = R.string.무드_차트), + style = RemindTheme.typography.h2Bold.copy(Color(0xFF303030)) + ) + Spacer(modifier = Modifier.height(22.dp)) + BasicTextButton( + modifier = Modifier.fillMaxWidth(), + backgroundColor = RemindTheme.colors.slate_600, + text = "17일째 연속으로 기록 중이에요! 파이팅:)", + textColor = RemindTheme.colors.slate_100, + onClick = { }, + verticalPadding = 6.dp, + enable = false + ) + Spacer(modifier = Modifier.height(12.dp)) + Text( + text = stringResource(id = R.string.주간_차트_기록), + style = RemindTheme.typography.b1Bold.copy(color = RemindTheme.colors.slate_800,) + ) + Spacer(modifier = Modifier.height(8.dp)) + BasicButton( + text = "기록 확인", + RoundedCorner = 12.dp, + backgroundColor = RemindTheme.colors.main_6, + textColor = RemindTheme.colors.white, + verticalPadding = 18.dp, + onClick = { }, + textStyle = RemindTheme.typography.b3Bold + ) } } +} + +//@Composable +//fun MoodChart( +// modifier: Modifier = Modifier +//) { +// Box( +// modifier = modifier +// .background(RemindTheme.colors.white, shape = RoundedCornerShape(12.dp)) +// .border(width = 1.dp, color = RemindTheme.colors.grayscale_2, shape = RoundedCornerShape(12.dp)) +// ) { +// Chart( +// modifier = modifier.align(Alignment.Center), +// chart = lineChart(), +// chartModelProducer = +// ) +// } +//} + +@Preview +@Composable +fun ChartPreview() { + +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..0394d31 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_phone_fill.xml b/app/src/main/res/drawable/ic_phone_fill.xml new file mode 100644 index 0000000..37b91eb --- /dev/null +++ b/app/src/main/res/drawable/ic_phone_fill.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_star_fill.xml b/app/src/main/res/drawable/ic_star_fill.xml new file mode 100644 index 0000000..8c48fbc --- /dev/null +++ b/app/src/main/res/drawable/ic_star_fill.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_star_unfill.xml b/app/src/main/res/drawable/ic_star_unfill.xml new file mode 100644 index 0000000..5be32c7 --- /dev/null +++ b/app/src/main/res/drawable/ic_star_unfill.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/img_example_cheer.xml b/app/src/main/res/drawable/img_example_cheer.xml new file mode 100644 index 0000000..9344325 --- /dev/null +++ b/app/src/main/res/drawable/img_example_cheer.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3df8b08..0d7e2fb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,6 +24,20 @@ 반갑습니다.\n%1$s 담당자 님! 반갑습니다. %1$s님! 시작하기 + 중요도 + 복용 + 미복용 + 약 미복용 사유 + + 무드 차트 + 주간 차트 기록 + + + 약 복용 체크 + 등록된 약이 없어요! + 오늘 하루 기분이 어떠셨나요? + 당신의 하루가 궁금해요 + 오늘의 기분 기록하기 사용 입장 선택 어떤 입장에서 사용하실지 선택해주세요!