fix(comment): 캐릭터 댓글 더보기에서 삭제 API 연동 및 UI 반영
- Bottom Sheet 삭제 선택 시 deleteComment API 호출 추가 - 성공 시 목록에서 항목 제거 - 오류 시 사용자에게 에러 토스트 노출
This commit is contained in:
		@@ -145,13 +145,38 @@ class CharacterCommentListFragment : BaseFragment<FragmentCharacterCommentListBi
 | 
				
			|||||||
                            .setTitle(getString(R.string.confirm_delete_title))
 | 
					                            .setTitle(getString(R.string.confirm_delete_title))
 | 
				
			||||||
                            .setMessage(getString(R.string.confirm_delete_message))
 | 
					                            .setMessage(getString(R.string.confirm_delete_message))
 | 
				
			||||||
                            .setPositiveButton(getString(R.string.confirm)) { _, _ ->
 | 
					                            .setPositiveButton(getString(R.string.confirm)) { _, _ ->
 | 
				
			||||||
                                // 삭제 API 스텁 호출 지점
 | 
					                                val token = "Bearer ${SharedPreferenceManager.token}"
 | 
				
			||||||
                                val index =
 | 
					                                loadingDialog.show(screenWidth)
 | 
				
			||||||
                                    adapter.items.indexOfFirst { it.commentId == item.commentId }
 | 
					                                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) {
 | 
					                                            if (index >= 0) {
 | 
				
			||||||
                                                adapter.items.removeAt(index)
 | 
					                                                adapter.items.removeAt(index)
 | 
				
			||||||
                                                adapter.notifyItemRemoved(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)
 | 
					                            .setNegativeButton(getString(R.string.cancel), null)
 | 
				
			||||||
                            .show()
 | 
					                            .show()
 | 
				
			||||||
@@ -231,6 +256,7 @@ class CharacterCommentListFragment : BaseFragment<FragmentCharacterCommentListBi
 | 
				
			|||||||
    private var cursor: Long? = null
 | 
					    private var cursor: Long? = null
 | 
				
			||||||
    private var isLoading = false
 | 
					    private var isLoading = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @SuppressLint("NotifyDataSetChanged")
 | 
				
			||||||
    private fun resetAndLoad() {
 | 
					    private fun resetAndLoad() {
 | 
				
			||||||
        cursor = null
 | 
					        cursor = null
 | 
				
			||||||
        adapter.items.clear()
 | 
					        adapter.items.clear()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user