fix(comment): 캐릭터 댓글 더보기에서 삭제 API 연동 및 UI 반영

- Bottom Sheet 삭제 선택 시 deleteComment API 호출 추가
- 성공 시 목록에서 항목 제거
- 오류 시 사용자에게 에러 토스트 노출
This commit is contained in:
2025-08-20 03:19:05 +09:00
parent e881178f2a
commit c78aed2551

View File

@@ -145,13 +145,38 @@ class CharacterCommentListFragment : BaseFragment<FragmentCharacterCommentListBi
.setTitle(getString(R.string.confirm_delete_title))
.setMessage(getString(R.string.confirm_delete_message))
.setPositiveButton(getString(R.string.confirm)) { _, _ ->
// 삭제 API 스텁 호출 지점
val index =
adapter.items.indexOfFirst { it.commentId == item.commentId }
if (index >= 0) {
adapter.items.removeAt(index)
adapter.notifyItemRemoved(index)
}
val token = "Bearer ${SharedPreferenceManager.token}"
loadingDialog.show(screenWidth)
val d = repository.deleteComment(
characterId = characterId,
commentId = item.commentId,
token = token
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally { loadingDialog.dismiss() }
.subscribe({ resp ->
if (resp.success) {
val index = adapter.items.indexOfFirst { it.commentId == item.commentId }
if (index >= 0) {
adapter.items.removeAt(index)
adapter.notifyItemRemoved(index)
}
} else {
Toast.makeText(
requireContext(),
resp.message ?: "요청 중 오류가 발생했습니다",
Toast.LENGTH_SHORT
).show()
}
}, { e ->
Toast.makeText(
requireContext(),
e.message ?: "요청 중 오류가 발생했습니다",
Toast.LENGTH_SHORT
).show()
})
compositeDisposable.add(d)
}
.setNegativeButton(getString(R.string.cancel), null)
.show()
@@ -231,6 +256,7 @@ class CharacterCommentListFragment : BaseFragment<FragmentCharacterCommentListBi
private var cursor: Long? = null
private var isLoading = false
@SuppressLint("NotifyDataSetChanged")
private fun resetAndLoad() {
cursor = null
adapter.items.clear()