네트워크 환경 때문인지 좋아요버튼을 누르면 상태가 스위칭 되지않고 일정숫자까지 계속 +1이되는 현상이 발생
fun isLikedToggle(feedUid: String) {
viewModelScope.launch {
when (isLiked.value) {
true -> {
if (uid != null) {
_isLiked.value = false
userInfoUseCases.removeLikedFeed.execute(uid, feedUid)
feedRepository.setLikeMinus(feedUid)
} else {
Timber.e("uid가 null입니다.")
}
}
false -> {
if (uid != null) {
_isLiked.value = true
userInfoUseCases.createLikedFeed.execute(uid, feedUid)
feedRepository.setLikePlus(feedUid)
} else {
Timber.e("uid가 null입니다.")
}
}
}
}
}
_isLiked.value = !isLiked.value
를 _isLiked.value = true
로 각각 적용하게 해주고 처음엔 맨 밑줄에 했는데 요청이 다끝나고 상태가바껴서 바로바로 카운트와 이미지가 안바뀌는 문제가있어 맨윗줄로 옮겨줌
ivLikeIcon.setOnClickListener {
viewLifecycleOwner.lifecycleScope.launch {
detailViewModel.isLikedToggle(args.feedIdArg)
detailViewModel.modifyIsLiked(tvFeedDetailLikeCount.text.toString().toInt())
}
}
실행순서를 보장하기위해서 viewLifecycleOwner.lifecycleScope.launch
안에 넣어줌