mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 08:20:32 +05:30
Show the comment and reply count in the comments sheet
This commit is contained in:
parent
fb1ff597be
commit
119019825f
@ -6,5 +6,6 @@ import kotlinx.serialization.Serializable
|
||||
data class CommentsPage(
|
||||
var comments: List<Comment> = emptyList(),
|
||||
val disabled: Boolean = false,
|
||||
val nextpage: String? = null
|
||||
val nextpage: String? = null,
|
||||
val commentCount: Long = 0
|
||||
)
|
||||
|
@ -10,6 +10,7 @@ import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.databinding.FragmentCommentsBinding
|
||||
import com.github.libretube.extensions.formatShort
|
||||
import com.github.libretube.ui.adapters.CommentsAdapter
|
||||
import com.github.libretube.ui.models.CommentsViewModel
|
||||
import com.github.libretube.ui.sheets.CommentsSheet
|
||||
@ -57,6 +58,10 @@ class CommentsMainFragment : Fragment() {
|
||||
viewModel.fetchNextComments()
|
||||
}
|
||||
}
|
||||
(parentFragment as CommentsSheet).updateFragmentInfo(
|
||||
false,
|
||||
getString(R.string.comments)
|
||||
)
|
||||
|
||||
commentsAdapter = CommentsAdapter(
|
||||
this,
|
||||
@ -77,12 +82,16 @@ class CommentsMainFragment : Fragment() {
|
||||
|
||||
// listen for new comments to be loaded
|
||||
viewModel.commentsPage.observe(viewLifecycleOwner) {
|
||||
it ?: return@observe
|
||||
if (it == null) return@observe
|
||||
binding.progress.visibility = View.GONE
|
||||
if (it.disabled) {
|
||||
binding.errorTV.visibility = View.VISIBLE
|
||||
return@observe
|
||||
}
|
||||
(parentFragment as CommentsSheet).updateFragmentInfo(
|
||||
false,
|
||||
"${getString(R.string.comments)} (${it.commentCount.formatShort()})"
|
||||
)
|
||||
if (it.comments.isEmpty()) {
|
||||
binding.errorTV.text = getString(R.string.no_comments_available)
|
||||
binding.errorTV.visibility = View.VISIBLE
|
||||
|
@ -10,16 +10,19 @@ import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.api.RetrofitInstance
|
||||
import com.github.libretube.api.obj.Comment
|
||||
import com.github.libretube.api.obj.CommentsPage
|
||||
import com.github.libretube.constants.IntentData
|
||||
import com.github.libretube.databinding.FragmentCommentsBinding
|
||||
import com.github.libretube.extensions.TAG
|
||||
import com.github.libretube.extensions.formatShort
|
||||
import com.github.libretube.extensions.parcelable
|
||||
import com.github.libretube.ui.adapters.CommentsAdapter
|
||||
import com.github.libretube.ui.extensions.filterNonEmptyComments
|
||||
import com.github.libretube.ui.models.CommentsViewModel
|
||||
import com.github.libretube.ui.sheets.CommentsSheet
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@ -58,6 +61,10 @@ class CommentsRepliesFragment : Fragment() {
|
||||
) {
|
||||
viewModel.commentsSheetDismiss?.invoke()
|
||||
}
|
||||
(parentFragment as CommentsSheet).updateFragmentInfo(
|
||||
true,
|
||||
"${getString(R.string.replies)} (${comment.replyCount.formatShort()})"
|
||||
)
|
||||
|
||||
binding.commentsRV.updatePadding(top = 0)
|
||||
binding.commentsRV.layoutManager = LinearLayoutManager(context)
|
||||
|
@ -9,11 +9,11 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.ViewTreeObserver
|
||||
import android.view.WindowManager
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.databinding.CommentsSheetBinding
|
||||
import com.github.libretube.ui.fragments.CommentsMainFragment
|
||||
import com.github.libretube.ui.fragments.CommentsRepliesFragment
|
||||
import com.github.libretube.ui.models.CommentsViewModel
|
||||
|
||||
class CommentsSheet : ExpandedBottomSheet() {
|
||||
@ -58,11 +58,8 @@ class CommentsSheet : ExpandedBottomSheet() {
|
||||
}
|
||||
|
||||
childFragmentManager.apply {
|
||||
addOnBackStackChangedListener(this@CommentsSheet::onFragmentChanged)
|
||||
|
||||
beginTransaction()
|
||||
.replace(R.id.commentFragContainer, CommentsMainFragment())
|
||||
.runOnCommit(this@CommentsSheet::onFragmentChanged)
|
||||
.commit()
|
||||
}
|
||||
|
||||
@ -76,20 +73,9 @@ class CommentsSheet : ExpandedBottomSheet() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun onFragmentChanged() {
|
||||
childFragmentManager.findFragmentById(R.id.commentFragContainer)?.let {
|
||||
when (it) {
|
||||
is CommentsRepliesFragment -> {
|
||||
binding.btnBack.visibility = View.VISIBLE
|
||||
binding.commentsTitle.text = getString(R.string.replies)
|
||||
}
|
||||
|
||||
else -> {
|
||||
binding.btnBack.visibility = View.GONE
|
||||
binding.commentsTitle.text = getString(R.string.comments)
|
||||
}
|
||||
}
|
||||
}
|
||||
fun updateFragmentInfo(showBackButton: Boolean, title: String) {
|
||||
binding.btnBack.isVisible = showBackButton
|
||||
binding.commentsTitle.text = title
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user