Skip to content

Commit ecd3e3b

Browse files
committed
[IDLE-000] CenterPending 화면에서 CenterStatus를 2초마다 Polling 하도록 변경 및 HandlerHelper -> Helper 네이밍 변경
1 parent 932020f commit ecd3e3b

File tree

35 files changed

+248
-215
lines changed

35 files changed

+248
-215
lines changed

core/common-ui/binding/src/main/java/com/idle/binding/EventHandlerHelper.kt renamed to core/common-ui/binding/src/main/java/com/idle/binding/EventHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import javax.inject.Inject
77
import javax.inject.Singleton
88

99
@Singleton
10-
class EventHandlerHelper @Inject constructor() {
10+
class EventHelper @Inject constructor() {
1111
private val _eventFlow = Channel<MainEvent>(BUFFERED)
1212
val eventFlow = _eventFlow.receiveAsFlow()
1313

core/domain/src/main/kotlin/com/idle/domain/model/error/ErrorHandler.kt renamed to core/domain/src/main/kotlin/com/idle/domain/model/error/ErrorHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import javax.inject.Inject
66
import javax.inject.Singleton
77

88
@Singleton
9-
class ErrorHandler @Inject constructor() {
9+
class ErrorHelper @Inject constructor() {
1010
private val _errorEvent = MutableSharedFlow<Throwable>(extraBufferCapacity = 1)
1111
val errorEvent = _errorEvent.asSharedFlow()
1212

core/network/src/main/java/com/idle/network/source/websocket/WebSocketDataSource.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.idle.network.source.websocket
22

3-
import com.idle.domain.model.error.ErrorHandler
3+
import com.idle.domain.model.error.ErrorHelper
44
import com.idle.network.BuildConfig
55
import com.idle.network.di.WebSocketOkHttpClient
66
import com.idle.network.model.chatting.ChatMessageResponse
@@ -15,7 +15,7 @@ import javax.inject.Singleton
1515
class WebSocketDataSource @Inject constructor(
1616
@WebSocketOkHttpClient private val client: OkHttpClient,
1717
private val chatMessageListener: ChatMessageListener,
18-
private val errorHandlerHelper: ErrorHandler,
18+
private val errorHelper: ErrorHelper,
1919
) {
2020
private lateinit var chatMessageWebSocket: WebSocket
2121

feature/auth/src/main/java/com/idle/auth/AuthFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ internal class AuthFragment : BaseComposeFragment() {
6060

6161
LaunchedEffect(true) {
6262
if (args.toastMsg != "default") {
63-
eventHandlerHelper.sendEvent(
63+
eventHelper.sendEvent(
6464
MainEvent.ShowToast(
6565
msg = args.toastMsg,
6666
toastType = ToastType.create(args.toastType)

feature/auth/src/main/java/com/idle/auth/AuthViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.idle.auth
22

33
import androidx.lifecycle.ViewModel
4-
import com.idle.binding.EventHandlerHelper
4+
import com.idle.binding.EventHelper
55
import com.idle.domain.model.auth.UserType
66
import dagger.hilt.android.lifecycle.HiltViewModel
77
import kotlinx.coroutines.flow.MutableStateFlow
@@ -10,7 +10,7 @@ import javax.inject.Inject
1010

1111
@HiltViewModel
1212
class AuthViewModel @Inject constructor(
13-
val eventHandlerHelper: EventHandlerHelper,
13+
val eventHelper: EventHelper,
1414
val navigationHelper: com.idle.navigation.NavigationHelper,
1515
) : ViewModel() {
1616
private val _userType = MutableStateFlow<UserType?>(null)

feature/center/applicant-inquiry/src/main/java/com/tgyuu/applicant/inquiry/ApplicantInquiryViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.tgyuu.applicant.inquiry
22

33
import androidx.lifecycle.ViewModel
44
import androidx.lifecycle.viewModelScope
5-
import com.idle.domain.model.error.ErrorHandler
5+
import com.idle.domain.model.error.ErrorHelper
66
import com.idle.domain.model.jobposting.Applicant
77
import com.idle.domain.model.jobposting.JobPostingSummary
88
import com.idle.domain.usecase.jobposting.GetApplicantsInfoUseCase
@@ -15,7 +15,7 @@ import javax.inject.Inject
1515
@HiltViewModel
1616
class ApplicantInquiryViewModel @Inject constructor(
1717
private val getApplicantsInfoUseCase: GetApplicantsInfoUseCase,
18-
private val errorHandlerHelper: ErrorHandler,
18+
private val errorHelper: ErrorHelper,
1919
val navigationHelper: com.idle.navigation.NavigationHelper,
2020
) : ViewModel() {
2121
private val _jobPostingSummary = MutableStateFlow<JobPostingSummary?>(null)
@@ -28,6 +28,6 @@ class ApplicantInquiryViewModel @Inject constructor(
2828
getApplicantsInfoUseCase(jobPostingId).onSuccess { (jobPostingSummary, applicants) ->
2929
_jobPostingSummary.value = jobPostingSummary
3030
_applicants.value = applicants
31-
}.onFailure { errorHandlerHelper.sendError(it) }
31+
}.onFailure { errorHelper.sendError(it) }
3232
}
3333
}

feature/center/chatting/src/main/java/com/idle/center/chatting/CenterChattingViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.idle.center.chatting
33
import androidx.lifecycle.ViewModel
44
import androidx.lifecycle.viewModelScope
55
import com.idle.domain.model.chatting.ChatRoom
6-
import com.idle.domain.model.error.ErrorHandler
6+
import com.idle.domain.model.error.ErrorHelper
77
import com.idle.domain.usecase.chatting.GetChatRoomListUseCase
88
import com.idle.domain.usecase.chatting.SubscribeChatMessageUseCase
99
import com.idle.domain.usecase.profile.GetCenterProfileUseCase
@@ -20,7 +20,7 @@ class CenterChattingViewModel @Inject constructor(
2020
private val getCenterProfileUseCase: GetCenterProfileUseCase,
2121
private val getChatRoomListUseCase: GetChatRoomListUseCase,
2222
private val subscribeChatMessageUseCase: SubscribeChatMessageUseCase,
23-
private val errorHandler: ErrorHandler,
23+
private val errorHelper: ErrorHelper,
2424
val navigationHelper: com.idle.navigation.NavigationHelper,
2525
) : ViewModel() {
2626
private val _chatRoomMap = MutableStateFlow<LinkedHashMap<String, ChatRoom>>(LinkedHashMap())
@@ -71,6 +71,6 @@ class CenterChattingViewModel @Inject constructor(
7171
_chatRoomMap.value = LinkedHashMap<String, ChatRoom>().apply {
7272
it.forEach { chatRoom -> put(chatRoom.id, chatRoom) }
7373
}
74-
}.onFailure { errorHandler.sendError(it) }
74+
}.onFailure { errorHelper.sendError(it) }
7575
}
7676
}

feature/center/home/src/main/java/com/idle/center/home/CenterHomeViewModel.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ package com.idle.center.home
22

33
import androidx.lifecycle.ViewModel
44
import androidx.lifecycle.viewModelScope
5-
import com.idle.binding.EventHandlerHelper
5+
import com.idle.binding.EventHelper
66
import com.idle.binding.MainEvent
77
import com.idle.binding.ToastType.SUCCESS
8-
import com.idle.domain.model.error.ErrorHandler
8+
import com.idle.domain.model.error.ErrorHelper
99
import com.idle.domain.model.jobposting.CenterJobPosting
1010
import com.idle.domain.usecase.config.ShowNotificationCenterUseCase
1111
import com.idle.domain.usecase.jobposting.EndJobPostingUseCase
@@ -25,8 +25,8 @@ class CenterHomeViewModel @Inject constructor(
2525
private val endJobPostingUseCase: EndJobPostingUseCase,
2626
private val showNotificationCenterUseCase: ShowNotificationCenterUseCase,
2727
private val getUnreadNotificationCountUseCase: GetUnreadNotificationCountUseCase,
28-
private val errorHandlerHelper: ErrorHandler,
29-
private val eventHandlerHelper: EventHandlerHelper,
28+
private val errorHelper: ErrorHelper,
29+
private val eventHelper: EventHelper,
3030
val navigationHelper: com.idle.navigation.NavigationHelper,
3131
) : ViewModel() {
3232
private val _recruitmentPostStatus = MutableStateFlow(RecruitmentPostStatus.IN_PROGRESS)
@@ -57,7 +57,7 @@ class CenterHomeViewModel @Inject constructor(
5757
internal fun getUnreadNotificationCount() = viewModelScope.launch {
5858
getUnreadNotificationCountUseCase().onSuccess {
5959
_unreadNotificationCount.value = it
60-
}.onFailure { errorHandlerHelper.sendError(it) }
60+
}.onFailure { errorHelper.sendError(it) }
6161
}
6262

6363
internal fun setRecruitmentPostStatus(recruitmentPostStatus: RecruitmentPostStatus) {
@@ -72,13 +72,13 @@ class CenterHomeViewModel @Inject constructor(
7272
internal fun getJobPostingsInProgress() = viewModelScope.launch {
7373
getJobPostingsInProgressUseCase().onSuccess {
7474
_jobPostingsInProgress.value = it
75-
}.onFailure { errorHandlerHelper.sendError(it) }
75+
}.onFailure { errorHelper.sendError(it) }
7676
}
7777

7878
internal fun getJobPostingsCompleted() = viewModelScope.launch {
7979
getJobPostingsCompletedUseCase().onSuccess {
8080
_jobPostingsCompleted.value = it
81-
}.onFailure { errorHandlerHelper.sendError(it) }
81+
}.onFailure { errorHelper.sendError(it) }
8282
}
8383

8484
internal fun endJobPosting(jobPostingId: String) = viewModelScope.launch {
@@ -95,11 +95,11 @@ class CenterHomeViewModel @Inject constructor(
9595
it.id != jobPostingId
9696
}
9797

98-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("채용을 종료했어요.", SUCCESS))
98+
eventHelper.sendEvent(MainEvent.ShowToast("채용을 종료했어요.", SUCCESS))
9999
} else {
100-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("채용 종료에 실패했어요."))
100+
eventHelper.sendEvent(MainEvent.ShowToast("채용 종료에 실패했어요."))
101101
}
102-
}.onFailure { errorHandlerHelper.sendError(it) }
102+
}.onFailure { errorHelper.sendError(it) }
103103
}
104104
}
105105

feature/center/job-posting-post/src/main/java/com/idle/center/jobposting/JobPostingFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ internal class JobPostingFragment : BaseComposeFragment() {
202202
setEditState(false)
203203
},
204204
setEditState = ::setEditState,
205-
showSnackBar = { eventHandlerHelper.sendEvent(MainEvent.ShowToast(it)) },
205+
showSnackBar = { eventHelper.sendEvent(MainEvent.ShowToast(it)) },
206206
)
207207
} else {
208208
JobPostingScreen(
@@ -263,12 +263,12 @@ internal class JobPostingFragment : BaseComposeFragment() {
263263
onCalendarMonthChanged = ::setCalendarMonth,
264264
postJobPosting = ::postJobPosting,
265265
setJobPostingStep = { step ->
266-
eventHandlerHelper.sendEvent(MainEvent.DismissToast)
266+
eventHelper.sendEvent(MainEvent.DismissToast)
267267
setJobPostingStep(step)
268268
},
269269
setEditState = ::setEditState,
270270
setBottomSheetType = ::setBottomSheetType,
271-
showSnackBar = { eventHandlerHelper.sendEvent(MainEvent.ShowToast(it)) },
271+
showSnackBar = { eventHelper.sendEvent(MainEvent.ShowToast(it)) },
272272
navigateToHome = {
273273
navigationHelper.navigateTo(
274274
com.idle.navigation.NavigationEvent.NavigateTo(

feature/center/job-posting-post/src/main/java/com/idle/center/jobposting/JobPostingViewModel.kt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package com.idle.center.jobposting
33
import androidx.core.text.isDigitsOnly
44
import androidx.lifecycle.ViewModel
55
import androidx.lifecycle.viewModelScope
6-
import com.idle.binding.EventHandlerHelper
6+
import com.idle.binding.EventHelper
77
import com.idle.binding.MainEvent
88
import com.idle.center.job.posting.post.R
99
import com.idle.compose.JobPostingBottomSheetType
1010
import com.idle.domain.model.auth.Gender
11-
import com.idle.domain.model.error.ErrorHandler
11+
import com.idle.domain.model.error.ErrorHelper
1212
import com.idle.domain.model.jobposting.ApplyDeadlineType
1313
import com.idle.domain.model.jobposting.ApplyMethod
1414
import com.idle.domain.model.jobposting.DayOfWeek
@@ -37,8 +37,8 @@ import javax.inject.Inject
3737
class JobPostingViewModel @Inject constructor(
3838
private val getLocalMyCenterProfileUseCase: GetLocalMyCenterProfileUseCase,
3939
private val postJobPostingUseCase: PostJobPostingUseCase,
40-
private val errorHandlerHelper: ErrorHandler,
41-
val eventHandlerHelper: EventHandlerHelper,
40+
private val errorHelper: ErrorHelper,
41+
val eventHelper: EventHelper,
4242
val navigationHelper: com.idle.navigation.NavigationHelper,
4343
) : ViewModel() {
4444
private val _profile = MutableStateFlow<CenterProfile?>(null)
@@ -175,10 +175,10 @@ class JobPostingViewModel @Inject constructor(
175175
if (startTime.isBefore(endTime)) {
176176
_workStartTime.value = time
177177
} else {
178-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("근무 시작 시간은 근무 종료 시간보다 빨라야 합니다."))
178+
eventHelper.sendEvent(MainEvent.ShowToast("근무 시작 시간은 근무 종료 시간보다 빨라야 합니다."))
179179
}
180180
} catch (e: DateTimeParseException) {
181-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("근무 시작 시간은 근무 종료 시간보다 빨라야 합니다."))
181+
eventHelper.sendEvent(MainEvent.ShowToast("근무 시작 시간은 근무 종료 시간보다 빨라야 합니다."))
182182
}
183183

184184
return
@@ -195,10 +195,10 @@ class JobPostingViewModel @Inject constructor(
195195
if (endTime.isAfter(startTime)) {
196196
_workEndTime.value = time
197197
} else {
198-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("근무 종료 시간은 근무 시작 시간보다 빨라야 합니다."))
198+
eventHelper.sendEvent(MainEvent.ShowToast("근무 종료 시간은 근무 시작 시간보다 빨라야 합니다."))
199199
}
200200
} catch (e: DateTimeParseException) {
201-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("근무 종료 시간은 근무 시작 시간보다 빨라야 합니다."))
201+
eventHelper.sendEvent(MainEvent.ShowToast("근무 종료 시간은 근무 시작 시간보다 빨라야 합니다."))
202202
}
203203
return
204204
}
@@ -317,41 +317,41 @@ class JobPostingViewModel @Inject constructor(
317317
endTime = _workEndTime.value,
318318
payType = _payType.value ?: PayType.UNKNOWN,
319319
payAmount = _payAmount.value.toIntOrNull() ?: let {
320-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("급여 형식이 잘못되었습니다. 숫자로 입력해주세요."))
320+
eventHelper.sendEvent(MainEvent.ShowToast("급여 형식이 잘못되었습니다. 숫자로 입력해주세요."))
321321
return@launch
322322
},
323323
roadNameAddress = _roadNameAddress.value,
324324
lotNumberAddress = _lotNumberAddress.value,
325325
clientName = _clientName.value,
326326
gender = _gender.value,
327327
birthYear = _birthYear.value.toIntOrNull() ?: let {
328-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("올바른 출생년도를 입력해주세요."))
328+
eventHelper.sendEvent(MainEvent.ShowToast("올바른 출생년도를 입력해주세요."))
329329
return@launch
330330
},
331331
weight = _weight.value.toIntOrNull(),
332332
careLevel = _careLevel.value.toIntOrNull() ?: let {
333-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("올바른 요양 등급을 입력해주세요."))
333+
eventHelper.sendEvent(MainEvent.ShowToast("올바른 요양 등급을 입력해주세요."))
334334
return@launch
335335
},
336336
mentalStatus = _mentalStatus.value,
337337
disease = _disease.value.ifBlank { null },
338338
isMealAssistance = _isMealAssistance.value ?: let {
339-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("식사 보조 여부를 선택해주세요."))
339+
eventHelper.sendEvent(MainEvent.ShowToast("식사 보조 여부를 선택해주세요."))
340340
return@launch
341341
},
342342
isBowelAssistance = _isBowelAssistance.value ?: let {
343-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("배변 보조 여부를 선택해주세요."))
343+
eventHelper.sendEvent(MainEvent.ShowToast("배변 보조 여부를 선택해주세요."))
344344
return@launch
345345
},
346346
isWalkingAssistance = _isWalkingAssistance.value ?: let {
347-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("이동 보조 여부를 선택해주세요."))
347+
eventHelper.sendEvent(MainEvent.ShowToast("이동 보조 여부를 선택해주세요."))
348348
return@launch
349349
},
350350
lifeAssistance = _lifeAssistance.value.toList().sortedBy { it.ordinal }
351351
.takeIf { it.isNotEmpty() } ?: listOf(LifeAssistance.NONE),
352352
extraRequirement = _extraRequirement.value.ifBlank { null },
353353
isExperiencePreferred = _isExperiencePreferred.value ?: let {
354-
eventHandlerHelper.sendEvent(MainEvent.ShowToast("경력 우대 여부를 선택해주세요."))
354+
eventHelper.sendEvent(MainEvent.ShowToast("경력 우대 여부를 선택해주세요."))
355355
return@launch
356356
},
357357
applyMethod = _applyMethod.value.toList()
@@ -365,14 +365,14 @@ class JobPostingViewModel @Inject constructor(
365365
popUpTo = R.id.jobPostingPostFragment
366366
)
367367
)
368-
}.onFailure { errorHandlerHelper.sendError(it) }
368+
}.onFailure { errorHelper.sendError(it) }
369369
}
370370
}
371371

372372
private fun getMyCenterProfile() = viewModelScope.launch {
373373
getLocalMyCenterProfileUseCase().onSuccess {
374374
_profile.value = it
375-
}.onFailure { errorHandlerHelper.sendError(it) }
375+
}.onFailure { errorHelper.sendError(it) }
376376
}
377377

378378
companion object {

0 commit comments

Comments
 (0)