diff --git a/app/src/main/java/org/sopt/official/feature/auth/AuthActivity.kt b/app/src/main/java/org/sopt/official/feature/auth/AuthActivity.kt index 5e53cc7ba..ccc080047 100644 --- a/app/src/main/java/org/sopt/official/feature/auth/AuthActivity.kt +++ b/app/src/main/java/org/sopt/official/feature/auth/AuthActivity.kt @@ -28,6 +28,7 @@ import android.app.NotificationChannel import android.app.NotificationManager import android.content.Context import android.content.Intent +import android.net.Uri import android.os.Bundle import androidx.activity.compose.setContent import androidx.activity.viewModels @@ -51,6 +52,7 @@ import org.sopt.official.auth.model.UserStatus import org.sopt.official.common.di.Auth import org.sopt.official.designsystem.SoptTheme import org.sopt.official.feature.home.HomeActivity +import org.sopt.official.feature.mypage.web.WebUrlConstant import org.sopt.official.network.model.response.OAuthToken import org.sopt.official.network.persistence.SoptDataStore import javax.inject.Inject @@ -145,7 +147,8 @@ class AuthActivity : AppCompatActivity() { } } } - } + }, + navigateToChannel = { startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(WebUrlConstant.OPINION_KAKAO_CHAT))) } ) } } diff --git a/app/src/main/java/org/sopt/official/feature/auth/AuthScreen.kt b/app/src/main/java/org/sopt/official/feature/auth/AuthScreen.kt index d917be9fb..03f8534a2 100644 --- a/app/src/main/java/org/sopt/official/feature/auth/AuthScreen.kt +++ b/app/src/main/java/org/sopt/official/feature/auth/AuthScreen.kt @@ -20,6 +20,7 @@ import org.sopt.official.feature.auth.feature.certificate.navigation.navigateCer internal fun AuthScreen( navigateToUnAuthenticatedHome: () -> Unit, onGoogleLoginCLick: () -> Unit, + navigateToChannel:() -> Unit, navController: NavHostController = rememberNavController(), ) { Scaffold( @@ -44,7 +45,9 @@ internal fun AuthScreen( }, navigateToCertification = { navController.navigateCertification() - } + }, + navigateToChannel = navigateToChannel + ) certificationNavGraph() } diff --git a/app/src/main/java/org/sopt/official/feature/auth/component/LoginErrorDialog.kt b/app/src/main/java/org/sopt/official/feature/auth/component/LoginErrorDialog.kt index f4ffdc6d9..a88279887 100644 --- a/app/src/main/java/org/sopt/official/feature/auth/component/LoginErrorDialog.kt +++ b/app/src/main/java/org/sopt/official/feature/auth/component/LoginErrorDialog.kt @@ -60,6 +60,9 @@ import org.sopt.official.designsystem.SoptTheme @Composable internal fun LoginErrorDialog( onDismissRequest: () -> Unit, + onFindAccountClick: () -> Unit, + onResetAccountClick: () -> Unit, + onContactChannelClick: () -> Unit, modifier: Modifier = Modifier, ) { Popup { @@ -81,17 +84,17 @@ internal fun LoginErrorDialog( Spacer(modifier = Modifier.height(12.dp)) LoginDialogText( text = "로그인한 계정을 알고 싶어요.", - onClick = {} + onClick = onFindAccountClick ) Spacer(modifier = Modifier.height(4.dp)) LoginDialogText( text = "소셜 계정을 재설정하고 싶어요.", - onClick = {} + onClick = onResetAccountClick ) Spacer(modifier = Modifier.height(4.dp)) LoginDialogText( text = "카카오톡 채널에 문의할게요.", - onClick = {} + onClick = onContactChannelClick ) } } @@ -148,7 +151,10 @@ private fun LoginDialogText( private fun LoginErrorDialogPreview() { SoptTheme { LoginErrorDialog( - onDismissRequest = {} + onDismissRequest = {}, + onFindAccountClick = {}, + onResetAccountClick = {}, + onContactChannelClick = {} ) } } diff --git a/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/AuthMainScreen.kt b/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/AuthMainScreen.kt index 04bbf1590..8eae5d6ff 100644 --- a/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/AuthMainScreen.kt +++ b/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/AuthMainScreen.kt @@ -49,7 +49,8 @@ internal fun AuthMainRoute( viewModel: AuthViewModel = hiltViewModel(), navigateToUnAuthenticatedHome: () -> Unit, onGoogleLoginCLick: () -> Unit, - navigateToCertification: () -> Unit + navigateToCertification: () -> Unit, + navigateToChannel: () -> Unit ) { var loginDialogVisibility by remember { mutableStateOf(false) } @@ -57,6 +58,18 @@ internal fun AuthMainRoute( LoginErrorDialog( onDismissRequest = { loginDialogVisibility = false + }, + onFindAccountClick = { + navigateToCertification() + loginDialogVisibility = false + }, + onResetAccountClick = { + navigateToCertification() + loginDialogVisibility = false + }, + onContactChannelClick = { + navigateToChannel() + loginDialogVisibility = false } ) } diff --git a/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/navigation/AuthMainNavigation.kt b/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/navigation/AuthMainNavigation.kt index 0808196b8..11ae076f9 100644 --- a/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/navigation/AuthMainNavigation.kt +++ b/app/src/main/java/org/sopt/official/feature/auth/feature/authmain/navigation/AuthMainNavigation.kt @@ -8,13 +8,15 @@ import org.sopt.official.feature.auth.feature.authmain.AuthMainRoute fun NavGraphBuilder.authMainNavGraph( navigateToUnAuthenticatedHome: () -> Unit, onGoogleLoginCLick: () -> Unit, - navigateToCertification: () -> Unit + navigateToCertification: () -> Unit, + navigateToChannel:()-> Unit ) { composable { AuthMainRoute( navigateToUnAuthenticatedHome = navigateToUnAuthenticatedHome, onGoogleLoginCLick = onGoogleLoginCLick, - navigateToCertification = navigateToCertification + navigateToCertification = navigateToCertification, + navigateToChannel = navigateToChannel ) } } diff --git a/app/src/main/java/org/sopt/official/feature/auth/feature/certificate/CertificationViewModel.kt b/app/src/main/java/org/sopt/official/feature/auth/feature/certificate/CertificationViewModel.kt index b66c4ede3..864d6317b 100644 --- a/app/src/main/java/org/sopt/official/feature/auth/feature/certificate/CertificationViewModel.kt +++ b/app/src/main/java/org/sopt/official/feature/auth/feature/certificate/CertificationViewModel.kt @@ -10,14 +10,9 @@ import kotlinx.coroutines.launch import org.sopt.official.domain.auth.model.InformationWithCode import org.sopt.official.domain.auth.model.InitialInformation import org.sopt.official.domain.auth.repository.AuthRepository +import org.sopt.official.feature.auth.model.AuthStatus import javax.inject.Inject -enum class CertificationType(val type: String) { - REGISTER("REGISTER"), - CHANGE("CHANGE"), - SEARCH("SEARCH") -} - @HiltViewModel class CertificationViewModel @Inject constructor( private val repository: AuthRepository @@ -31,7 +26,7 @@ class CertificationViewModel @Inject constructor( InitialInformation( name = "Mock-Success-Register", phone = "01012345678", - type = CertificationType.REGISTER.type + type = AuthStatus.REGISTER.type ) ).onSuccess { _sideEffect.emit(CertificationSideEffect.ShowToast("성공!!!")) @@ -48,7 +43,7 @@ class CertificationViewModel @Inject constructor( name = "Mock-Success-Register", phone = "01012345678", code = "123456", - type = CertificationType.REGISTER.type + type = AuthStatus.REGISTER.type ) ).onSuccess { _sideEffect.emit(CertificationSideEffect.ShowToast("성공!!!")) diff --git a/app/src/main/java/org/sopt/official/feature/auth/model/AuthStatus.kt b/app/src/main/java/org/sopt/official/feature/auth/model/AuthStatus.kt new file mode 100644 index 000000000..e9f406a74 --- /dev/null +++ b/app/src/main/java/org/sopt/official/feature/auth/model/AuthStatus.kt @@ -0,0 +1,7 @@ +package org.sopt.official.feature.auth.model + +enum class AuthStatus(val type: String) { + REGISTER("REGISTER"), + CHANGE("CHANGE"), + SEARCH("SEARCH") +}