From b62a5cc83e794d999f8d0e3eacf6a2225e2f7f70 Mon Sep 17 00:00:00 2001 From: tgyuuAn Date: Fri, 22 Nov 2024 17:28:03 +0900 Subject: [PATCH] =?UTF-8?q?[IDLE-000]=20=EC=84=BC=ED=84=B0=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EB=8C=80=EA=B8=B0=20=ED=99=94=EB=A9=B4=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=8A=B9=EC=9D=B8=EB=90=AC=EC=9D=84=20=EC=8B=9C=20?= =?UTF-8?q?Register,=20Home=20=ED=99=94=EB=A9=B4=20=EB=B6=84=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 +-- .../center/jobposting/JobPostingFragment.kt | 2 +- .../idle/pending/CenterPendingViewModel.kt | 34 ++++++++++++++----- .../com/idle/presentation/MainActivity.kt | 2 +- .../presentation/network/NetworkObserver.kt | 2 +- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 702639bd2..7a026ddf2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,8 +11,8 @@ android { namespace = "com.idle.care" defaultConfig { - versionCode = 18 - versionName = "1.2.3" + versionCode = 19 + versionName = "1.2.4" targetSdk = 34 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/feature/center/job-posting-post/src/main/java/com/idle/center/jobposting/JobPostingFragment.kt b/feature/center/job-posting-post/src/main/java/com/idle/center/jobposting/JobPostingFragment.kt index b62748876..44c849c6c 100644 --- a/feature/center/job-posting-post/src/main/java/com/idle/center/jobposting/JobPostingFragment.kt +++ b/feature/center/job-posting-post/src/main/java/com/idle/center/jobposting/JobPostingFragment.kt @@ -703,7 +703,7 @@ internal fun JobPostingScreen( CareProgressBar( currentStep = jobPostingStep.step, - totalSteps = JobPostingStep.entries.size - 1, + totalSteps = JobPostingStep.entries.size - 2, modifier = Modifier .fillMaxWidth() .padding(start = 8.dp, top = 8.dp, bottom = 8.dp), diff --git a/feature/center/pending/src/main/java/com/idle/pending/CenterPendingViewModel.kt b/feature/center/pending/src/main/java/com/idle/pending/CenterPendingViewModel.kt index 9ba6ee081..6da95d516 100644 --- a/feature/center/pending/src/main/java/com/idle/pending/CenterPendingViewModel.kt +++ b/feature/center/pending/src/main/java/com/idle/pending/CenterPendingViewModel.kt @@ -6,12 +6,16 @@ import com.idle.binding.EventHelper import com.idle.binding.MainEvent import com.idle.binding.ToastType.SUCCESS import com.idle.center.pending.R +import com.idle.domain.model.error.ApiErrorCode import com.idle.domain.model.error.ErrorHelper +import com.idle.domain.model.error.HttpResponseException import com.idle.domain.model.profile.CenterManagerAccountStatus import com.idle.domain.usecase.auth.LogoutCenterUseCase import com.idle.domain.usecase.auth.SendCenterVerificationRequestUseCase import com.idle.domain.usecase.profile.GetCenterStatusUseCase -import com.idle.navigation.DeepLinkDestination +import com.idle.domain.usecase.profile.GetMyCenterProfileUseCase +import com.idle.navigation.DeepLinkDestination.CenterHome +import com.idle.navigation.DeepLinkDestination.CenterRegister import com.idle.navigation.NavigationEvent import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.delay @@ -26,6 +30,7 @@ class CenterPendingViewModel @Inject constructor( private val logoutCenterUseCase: LogoutCenterUseCase, private val sendCenterVerificationRequestUseCase: SendCenterVerificationRequestUseCase, private val getCenterStatusUseCase: GetCenterStatusUseCase, + private val getMyCenterProfileUseCase: GetMyCenterProfileUseCase, private val errorHelper: ErrorHelper, private val eventHelper: EventHelper, private val navigationHelper: com.idle.navigation.NavigationHelper, @@ -75,14 +80,7 @@ class CenterPendingViewModel @Inject constructor( getCenterStatusUseCase().onSuccess { when (it.centerManagerAccountStatus) { CenterManagerAccountStatus.APPROVED -> { - pollingJob.emit(false) - navigationHelper.navigateTo( - NavigationEvent.NavigateTo( - destination = DeepLinkDestination.CenterHome, - popUpTo = R.id.centerPendingFragment, - ) - ) - + handleApprovedCenterStatus() eventHelper.sendEvent(MainEvent.ShowToast("센터 인증이 완료되었습니다.", SUCCESS)) } @@ -90,4 +88,22 @@ class CenterPendingViewModel @Inject constructor( } }.onFailure { errorHelper.sendError(it) } } + + private fun handleApprovedCenterStatus() = viewModelScope.launch { + getMyCenterProfileUseCase().onSuccess { + navigationHelper.navigateTo( + NavigationEvent.NavigateTo(CenterHome, R.id.centerPendingFragment) + ) + }.onFailure { + val error = it as HttpResponseException + if (error.apiErrorCode == ApiErrorCode.CenterNotFound) { + navigationHelper.navigateTo( + NavigationEvent.NavigateTo( + CenterRegister, + R.id.centerPendingFragment, + ) + ) + } + } + } } \ No newline at end of file diff --git a/presentation/src/main/java/com/idle/presentation/MainActivity.kt b/presentation/src/main/java/com/idle/presentation/MainActivity.kt index 53d50f3ee..809bb78cd 100644 --- a/presentation/src/main/java/com/idle/presentation/MainActivity.kt +++ b/presentation/src/main/java/com/idle/presentation/MainActivity.kt @@ -127,7 +127,7 @@ class MainActivity : AppCompatActivity() { override fun onResume() { super.onResume() - networkObserver.checkNetworkState() + networkObserver.subscribeNetworkCallback() if (networkObserver.networkState.value == NetworkState.CONNECTED) { viewModel.connectWebSocket() } diff --git a/presentation/src/main/java/com/idle/presentation/network/NetworkObserver.kt b/presentation/src/main/java/com/idle/presentation/network/NetworkObserver.kt index 7c95387f3..ef3988a0c 100644 --- a/presentation/src/main/java/com/idle/presentation/network/NetworkObserver.kt +++ b/presentation/src/main/java/com/idle/presentation/network/NetworkObserver.kt @@ -55,7 +55,7 @@ class NetworkObserver @Inject constructor(context: Context) { internal fun unsubscribeNetworkCallback() = connectivityManager.unregisterNetworkCallback(networkCallback) - private fun subscribeNetworkCallback() { + internal fun subscribeNetworkCallback() { val networkRequest = NetworkRequest.Builder() .addTransportType(TRANSPORT_WIFI) .addTransportType(TRANSPORT_CELLULAR)