Skip to content

Commit

Permalink
[FEAT/#32] 드디어 isEdit가 true일 때만 클릭되는 것도 해결 완료
Browse files Browse the repository at this point in the history
  • Loading branch information
0zlrlo committed Jul 5, 2023
1 parent e2d00ce commit d910adc
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.release.keyneez.presentation.main.like
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.LiveData
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.release.keyneez.databinding.ItemLikeContentBinding
Expand All @@ -12,32 +13,34 @@ import com.release.keyneez.util.extension.setOnSingleClickListener

class LikeAdapter(
private val setItemsSelected: (Int) -> List<Int>,
private val getSelectedIdsCount: (Int) -> 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 getSelectedIdsCount: (Int) -> Int,
private val isEdit: LiveData<Boolean>
) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: Activity) {
with(binding) {
data = item
ivLikeBackground.setOnSingleClickListener {
item.isSelected = !item.isSelected
setItemsSelected(item.id)
binding.ivLikeCheckedBackground.visibility =
if (item.isSelected) View.VISIBLE else View.GONE
binding.btnLikeChecked.visibility =
if (item.isSelected) View.VISIBLE else View.GONE
if (isEdit.value == true) {
item.isSelected = !item.isSelected
setItemsSelected(item.id)
binding.ivLikeCheckedBackground.visibility =
if (item.isSelected) View.VISIBLE else View.GONE
binding.btnLikeChecked.visibility =
if (item.isSelected) View.VISIBLE else View.GONE
}
}
}
}
}

fun getSelectedExpense() = selectedActivity.size

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val binding = ItemLikeContentBinding.inflate(
LayoutInflater.from(parent.context),
Expand All @@ -47,7 +50,8 @@ class LikeAdapter(
return LikeViewHolder(
binding,
setItemsSelected,
getSelectedIdsCount
getSelectedIdsCount,
isEdit
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class LikeFragment :
lateinit var likeList: List<Activity>
private val likeViewModel by viewModels<LikeViewModel>()
private val mainViewModel by activityViewModels<MainViewModel>()

override fun onAttach(context: Context) {
super.onAttach(context)
}
Expand All @@ -36,7 +37,8 @@ class LikeFragment :
private fun initLikeAdapter() {
likeAdapter = LikeAdapter(
setItemsSelected = likeViewModel::setItemsSelected,
getSelectedIdsCount = likeViewModel::getSelectedIdsCount
getSelectedIdsCount = likeViewModel::getSelectedIdsCount,
isEdit = likeViewModel.isEdit
)
binding.rvLike.adapter = likeAdapter
val animator = binding.rvLike.itemAnimator
Expand All @@ -50,7 +52,6 @@ class LikeFragment :

private fun initLikeEditBtnClickListener() {
binding.btnLikeEdit.setOnSingleClickListener {
Log.d("1", "제발편집버튼")
likeViewModel.updateEditView()
mainViewModel.updateBnvView()
}
Expand Down

0 comments on commit d910adc

Please sign in to comment.