Skip to content

Commit

Permalink
Merge pull request TeamNewPipe/NewPipe#5430 from Stypox/fix-feed
Browse files Browse the repository at this point in the history
Fix reload feed button does nothing
  • Loading branch information
XiangRongLin authored and tossj committed Apr 20, 2021
1 parent 9ca58b2 commit 7e9648e
Showing 1 changed file with 12 additions and 22 deletions.
Expand Up @@ -32,14 +32,11 @@ import androidx.appcompat.app.AlertDialog
import androidx.core.content.edit
import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.preference.PreferenceManager
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import icepick.State
import org.schabi.newpipelegacy.R
import org.schabi.newpipelegacy.database.feed.model.FeedGroupEntity
import org.schabi.newpipelegacy.databinding.ErrorRetryBinding
import org.schabi.newpipelegacy.databinding.FragmentFeedBinding
import org.schabi.newpipelegacy.fragments.list.BaseListFragment
import org.schabi.newpipelegacy.ktx.animate
Expand All @@ -51,12 +48,9 @@ import java.util.Calendar
class FeedFragment : BaseListFragment<FeedState, Unit>() {
private var _feedBinding: FragmentFeedBinding? = null
private val feedBinding get() = _feedBinding!!

private var _errorBinding: ErrorRetryBinding? = null
private val errorBinding get() = _errorBinding!!
private val errorBinding get() = _feedBinding!!.errorPanel

private lateinit var viewModel: FeedViewModel
private lateinit var swipeRefreshLayout: SwipeRefreshLayout
@State
@JvmField
var listState: Parcelable? = null
Expand All @@ -83,18 +77,17 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
}

override fun onViewCreated(rootView: View, savedInstanceState: Bundle?) {
super.onViewCreated(rootView, savedInstanceState)
// super.onViewCreated() calls initListeners() which require the binding to be initialized
_feedBinding = FragmentFeedBinding.bind(rootView)
_errorBinding = feedBinding.errorPanel
super.onViewCreated(rootView, savedInstanceState)

feedBinding.swiperefresh.setOnRefreshListener { reloadContent() }
viewModel = ViewModelProvider(this, FeedViewModel.Factory(requireContext(), groupId)).get(FeedViewModel::class.java)
viewModel.stateLiveData.observe(viewLifecycleOwner, Observer { it?.let(::handleResult) })
viewModel.stateLiveData.observe(viewLifecycleOwner) { it?.let(::handleResult) }
}

override fun onPause() {
super.onPause()
listState = _feedBinding?.itemsList?.layoutManager?.onSaveInstanceState()
listState = feedBinding.itemsList.layoutManager?.onSaveInstanceState()
}

override fun onResume() {
Expand All @@ -112,10 +105,8 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {

override fun initListeners() {
super.initListeners()
// Using the non-null property may result in a NullPointerException
_feedBinding?.refreshRootView?.setOnClickListener {
triggerUpdate()
}
feedBinding.refreshRootView.setOnClickListener { reloadContent() }
feedBinding.swiperefresh.setOnRefreshListener { reloadContent() }
}

// /////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -242,12 +233,12 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
val isIndeterminate = progressState.currentProgress == -1 &&
progressState.maxProgress == -1

if (!isIndeterminate) {
feedBinding.loadingProgressText.text = "${progressState.currentProgress}/${progressState.maxProgress}"
feedBinding.loadingProgressText.text = if (!isIndeterminate) {
"${progressState.currentProgress}/${progressState.maxProgress}"
} else if (progressState.progressMessage > 0) {
_feedBinding?.loadingProgressText?.setText(progressState.progressMessage)
progressState.progressMessage.toString()
} else {
_feedBinding?.loadingProgressText?.text = "∞/∞"
"∞/∞"
}

feedBinding.loadingProgressBar.isIndeterminate = isIndeterminate ||
Expand Down Expand Up @@ -317,11 +308,10 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
// /////////////////////////////////////////////////////////////////////////

override fun doInitialLoadLogic() {}
override fun reloadContent() = triggerUpdate()
override fun loadMoreItems() {}
override fun hasMoreItems() = false

private fun triggerUpdate() {
override fun reloadContent() {
getActivity()?.startService(
Intent(requireContext(), FeedLoadService::class.java).apply {
putExtra(FeedLoadService.EXTRA_GROUP_ID, groupId)
Expand Down

0 comments on commit 7e9648e

Please sign in to comment.