Skip to content

Commit

Permalink
[FEAT/#32] 만약에 다 삭제하여 좋아요에 남은 개수가 0개이면 삭제버튼 비활성화하기
Browse files Browse the repository at this point in the history
  • Loading branch information
0zlrlo committed Jul 5, 2023
1 parent d910adc commit 76350f6
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,12 @@ import com.release.keyneez.util.extension.setOnSingleClickListener

class LikeAdapter(
private val setItemsSelected: (Int) -> List<Int>,
private val getSelectedIdsCount: (Int) -> Int,
private val isEdit: LiveData<Boolean>
) : ListAdapter<Activity, RecyclerView.ViewHolder>(diffUtil) {
private var selectedActivity = arrayListOf<Activity>()

inner class LikeViewHolder(
private val binding: ItemLikeContentBinding,
private val setItemsSelected: (Int) -> List<Int>,
private val getSelectedIdsCount: (Int) -> Int,
private val isEdit: LiveData<Boolean>
) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: Activity) {
Expand Down Expand Up @@ -50,7 +47,6 @@ class LikeAdapter(
return LikeViewHolder(
binding,
setItemsSelected,
getSelectedIdsCount,
isEdit
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ class LikeFragment :
private fun initLikeAdapter() {
likeAdapter = LikeAdapter(
setItemsSelected = likeViewModel::setItemsSelected,
getSelectedIdsCount = likeViewModel::getSelectedIdsCount,
isEdit = likeViewModel.isEdit
)
binding.rvLike.adapter = likeAdapter
Expand All @@ -59,7 +58,6 @@ class LikeFragment :

private fun initEditBtnClickListener() {
binding.btnEdit.setOnSingleClickListener {
Log.d("1", "제발삭제버튼")
likeViewModel.deleteSelectedItems()
BindingToast.initLikeDeleteToast(
requireContext(),
Expand All @@ -76,6 +74,14 @@ class LikeFragment :
likeViewModel.activityList.observe(viewLifecycleOwner) { activityList ->
likeList = activityList
likeAdapter?.submitList(activityList)
if (likeViewModel.isEdit.value == false) {
Log.d("1", "false일 때")
binding.tvLikeNum.setText(likeList.size.toString())
} else {
Log.d("1", "true일 때")
binding.tvLikeNum.setText(likeViewModel.getSelectedIdsCount().toString())
}
binding.btnLikeEdit.isEnabled = likeList.isNotEmpty()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ class LikeViewModel : ViewModel() {
private val _isEdit = MutableLiveData<Boolean>()
private val _isSelected = MutableLiveData<Boolean>()
private val _selectedIds = MutableLiveData<MutableList<Int>>()
private val _selectedCount = MutableLiveData<Int>()
val selectedCount: LiveData<Int>
get() = _selectedCount
val activityList: LiveData<List<Activity>>
get() = _activityList
val isEdit: LiveData<Boolean>
Expand All @@ -21,6 +24,7 @@ class LikeViewModel : ViewModel() {

init {
getLikeActivityList()
getSelectedIdsCount()
_isEdit.value = false
_isSelected.value = false
_selectedIds.value = emptyList<Int>().toMutableList()
Expand All @@ -34,18 +38,20 @@ class LikeViewModel : ViewModel() {
selectedIdsList.add(id)
}
_selectedIds.value = selectedIdsList
getSelectedIdsCount()
return selectedIdsList.toList()
}

fun getSelectedIdsCount(id: Int): Int {
val selectedIdsList = _selectedIds.value ?: mutableListOf()
return selectedIdsList.size
}

fun updateEditView() {
_isEdit.value = _isEdit.value?.not()
}

fun getSelectedIdsCount() {
val selectedIdsList = _selectedIds.value ?: mutableListOf()
val selectedCount = selectedIdsList.size
_selectedCount.value = selectedCount
}

fun updateSelected() {
_isSelected.value = _isSelected.value?.not()
}
Expand Down

0 comments on commit 76350f6

Please sign in to comment.