diff --git a/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt b/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt index fc21805e..fd8f68b6 100644 --- a/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt @@ -13,6 +13,7 @@ import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.EditText +import android.widget.TextView import androidx.appcompat.widget.PopupMenu import androidx.core.animation.doOnEnd import androidx.core.content.res.ResourcesCompat @@ -110,6 +111,10 @@ class CommentsFragment : Fragment() { activity.binding.commentReplyToContainer.visibility = View.GONE } + lifecycleScope.launch { + binding.commentCounter.text = commentCounter(mediaId) + } + binding.commentsList.adapter = adapter binding.commentsList.layoutManager = LinearLayoutManager(activity) @@ -588,6 +593,30 @@ class CommentsFragment : Fragment() { } } + + private suspend fun commentCounter(mediaId: Int): String { + var totalComments = 0 + var currentPage = 1 + + while (true) { + val response = CommentsAPI.getCommentsForId(mediaId, page = currentPage, tag = null, sort = null) + totalPages = response?.totalPages ?: 1 + totalComments += response?.comments?.size ?: 0 + + if (currentPage >= totalPages) { + break + } + currentPage++ + } + + return if (totalComments > 0) { + resources.getString(R.string.comments_counter, totalComments.toString()) + } else { + resources.getString(R.string.no_comments_found) + } + } + + private fun processComment() { val commentText = activity.binding.commentInput.text.toString() if (commentText.isEmpty()) { diff --git a/app/src/main/res/layout/fragment_comments.xml b/app/src/main/res/layout/fragment_comments.xml index 49c60277..1ece8040 100644 --- a/app/src/main/res/layout/fragment_comments.xml +++ b/app/src/main/res/layout/fragment_comments.xml @@ -27,6 +27,20 @@ android:orientation="horizontal" tools:ignore="UseCompoundDrawables"> + + + + Try Internal Cast (Experimental) Comments + %1$s Comments + No Comments found Newest Oldest Highest rated