Skip to content

Commit

Permalink
#187 setOnMoreClickListner 데이터바인딩으로 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
tgyuuAn committed Jul 25, 2023
1 parent 48ac015 commit f79155f
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,6 @@ import dagger.hilt.android.AndroidEntryPoint
import repeatOnStarted
import javax.inject.Inject


/**
* 행정 처분 목록 프래그먼트
*
* Material3 Chip으로 의약품 명 보여주고, ViewModel로 관리
*/
@AndroidEntryPoint
class RecentPenaltyListFragment :
BaseFragment<FragmentRecentPenaltyListBinding, RecentPenaltyListViewModel>(FragmentRecentPenaltyListBinding::inflate) {
Expand All @@ -37,6 +31,13 @@ class RecentPenaltyListFragment :
@Inject
lateinit var medicineInfoMapper: MedicineInfoMapper

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initHeader()
setBinding()
}


private fun setRecyclerView() {
penaltyListAdapter = PenaltyListAdapter()
binding.penaltyList.apply {
Expand Down Expand Up @@ -65,10 +66,17 @@ class RecentPenaltyListFragment :

private fun setBinding() {
binding.apply {
viewLifecycleOwner.repeatOnStarted {
fragmentViewModel.apply {
recallDisposalList.stateAsCollect(headerView, noHistoryTextView).collect { uiState ->
handleUiState(uiState)
fragmentViewModel.apply {
viewLifecycleOwner.apply {
repeatOnStarted {
recallDisposalList.stateAsCollect(headerView, noHistoryTextView).collect { uiState ->
handleUiState(uiState)
}
}
repeatOnStarted {
eventFlow.collect { event ->
handleEvent(event)
}
}
}
noHistoryTextView.text = medicineInfoMapper.getNoHistorySpan(requireContext())
Expand All @@ -77,25 +85,15 @@ class RecentPenaltyListFragment :
setRecyclerView()
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initHeader()
setBinding()
private fun handleEvent(event: RecentPenaltyListViewModel.PenaltyListEvent) {
when (event) {
is RecentPenaltyListViewModel.PenaltyListEvent.NavigateToNews -> navigateToNews()
}
}


/**
* 헤더 초기화
*
* 확장 버튼 리스너, 더 보기 버튼 리스너
*/
private fun initHeader() {
binding.headerView.setOnExpandClickListener {}

binding.headerView.setOnMoreClickListener {
findNavController().navigateByDeepLink(
"medilens://main/news_nav", RecallDisposalArgs(""),
)
}
private fun navigateToNews() {
findNavController().navigateByDeepLink(
"medilens://main/news_nav", RecallDisposalArgs(""),
)
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.android.mediproject.feature.penalties.recentpenaltylist

import MutableEventFlow
import android.content.Context
import android.text.Spannable
import android.text.SpannableStringBuilder
Expand All @@ -8,6 +9,7 @@ import android.text.style.ForegroundColorSpan
import android.text.style.UnderlineSpan
import androidx.core.content.ContextCompat
import androidx.lifecycle.viewModelScope
import asEventFlow
import com.android.mediproject.core.common.network.Dispatcher
import com.android.mediproject.core.common.network.MediDispatchers
import com.android.mediproject.core.common.viewmodel.UiState
Expand All @@ -26,6 +28,17 @@ import javax.inject.Inject
class RecentPenaltyListViewModel @Inject constructor(
private val getRecallSuspensionInfoUseCase: GetRecallSuspensionInfoUseCase) : BaseViewModel() {

private val _eventFlow = MutableEventFlow<PenaltyListEvent>()
val eventFlow get() = _eventFlow.asEventFlow()

fun event(event: PenaltyListEvent) = viewModelScope.launch { _eventFlow.emit(event) }

fun navigateToNews() = event(PenaltyListEvent.NavigateToNews)

sealed class PenaltyListEvent {
object NavigateToNews : PenaltyListEvent()
}

private val _recallDisposalList = MutableStateFlow<UiState<List<RecallSuspensionListItemDto>>>(UiState.Initial)
val recallDisposalList get() = _recallDisposalList.asStateFlow()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:more_title="@string/read_more"
onMoreClick="@{()->viewModel.navigateToNews()}"
app:visibility_target_view="@id/penaltyList" />

<androidx.recyclerview.widget.RecyclerView
Expand Down

0 comments on commit f79155f

Please sign in to comment.