@@ -86,6 +86,7 @@ import org.schabi.newpipe.util.ThemeHelper.resolveDrawable
8686import org.schabi.newpipe.util.ThemeHelper.shouldUseGridLayout
8787
8888class FeedFragment : BaseStateFragment <FeedState >() {
89+ private lateinit var feedLoadServiceIntent: Intent
8990 private var _feedBinding : FragmentFeedBinding ? = null
9091 private val feedBinding get() = _feedBinding !!
9192
@@ -200,6 +201,11 @@ class FeedFragment : BaseStateFragment<FeedState>() {
200201 hideNewItemsLoaded(true )
201202 feedBinding.itemsList.scrollToPosition(0 )
202203 }
204+ feedBinding.cancelFeedReloadingButton.setOnClickListener {
205+ hideNewItemsLoaded(false )
206+ hideLoading()
207+ cancelReloadingContent()
208+ }
203209 }
204210
205211 // /////////////////////////////////////////////////////////////////////////
@@ -320,6 +326,7 @@ class FeedFragment : BaseStateFragment<FeedState>() {
320326 feedBinding.itemsList.animateHideRecyclerViewAllowingScrolling()
321327 feedBinding.refreshRootView.animate(false , 0 )
322328 feedBinding.loadingProgressText.animate(true , 200 )
329+ feedBinding.cancelFeedReloadingButton.animate(true , 200 )
323330 feedBinding.swipeRefreshLayout.isRefreshing = true
324331 isRefreshing = true
325332 }
@@ -329,6 +336,7 @@ class FeedFragment : BaseStateFragment<FeedState>() {
329336 feedBinding.itemsList.animate(true , 0 )
330337 feedBinding.refreshRootView.animate(true , 200 )
331338 feedBinding.loadingProgressText.animate(false , 0 )
339+ feedBinding.cancelFeedReloadingButton.animate(false , 0 )
332340 feedBinding.swipeRefreshLayout.isRefreshing = false
333341 isRefreshing = false
334342 }
@@ -367,7 +375,7 @@ class FeedFragment : BaseStateFragment<FeedState>() {
367375 progressState.maxProgress == - 1
368376
369377 feedBinding.loadingProgressText.text = if (! isIndeterminate) {
370- " ${progressState.currentProgress} /${progressState.maxProgress} "
378+ " ${progressState.progressDescription} ( ${progressState. currentProgress} /${progressState.maxProgress} ) "
371379 } else if (progressState.progressMessage > 0 ) {
372380 getString(progressState.progressMessage)
373381 } else {
@@ -680,14 +688,18 @@ class FeedFragment : BaseStateFragment<FeedState>() {
680688 override fun reloadContent () {
681689 hideNewItemsLoaded(false )
682690
683- getActivity()?.startService(
684- Intent (requireContext(), FeedLoadService :: class .java). apply {
685- putExtra( FeedLoadService . EXTRA_GROUP_ID , groupId)
686- }
687- )
691+ feedLoadServiceIntent = Intent (requireContext(), FeedLoadService :: class .java). apply {
692+ putExtra( FeedLoadService . EXTRA_GROUP_ID , groupId)
693+ }
694+
695+ getActivity()?.startService(feedLoadServiceIntent )
688696 listState = null
689697 }
690698
699+ fun cancelReloadingContent () {
700+ getActivity()?.stopService(feedLoadServiceIntent)
701+ }
702+
691703 companion object {
692704 const val KEY_GROUP_ID = " ARG_GROUP_ID"
693705 const val KEY_GROUP_NAME = " ARG_GROUP_NAME"
0 commit comments