summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2023-03-14 21:03:45 +0100
committerGitHub <noreply@github.com>2023-03-14 21:03:45 +0100
commit4f7f49e1e714ce41320fff569272a1423198b2f3 (patch)
tree0adeefb8e26863cbccc204f11437684960114d86 /app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
parent2c0b970044b3180786e165588d5d94ada0c90797 (diff)
downloadAntennaPod-4f7f49e1e714ce41320fff569272a1423198b2f3.zip
Move feed download to worker (#6375)
Feed downloads are now independent from episode downloads. This makes it easier to use WorkManager for refreshing. Also, it will make it easier to add different refresh intervals in the future.
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java20
1 files changed, 9 insertions, 11 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
index 0b264b5a3..ecc60c411 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
@@ -33,11 +33,11 @@ import de.danoeh.antennapod.core.event.DownloadEvent;
import de.danoeh.antennapod.core.event.DownloaderUpdate;
import de.danoeh.antennapod.core.feed.FeedEvent;
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
-import de.danoeh.antennapod.core.service.download.DownloadService;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.core.util.FeedItemPermutors;
import de.danoeh.antennapod.core.util.FeedItemUtil;
+import de.danoeh.antennapod.core.util.download.FeedUpdateManager;
import de.danoeh.antennapod.core.util.gui.MoreContentListFooterUtil;
import de.danoeh.antennapod.databinding.FeedItemListFragmentBinding;
import de.danoeh.antennapod.databinding.MultiSelectSpeedDialBinding;
@@ -48,6 +48,7 @@ import de.danoeh.antennapod.dialog.RenameItemDialog;
import de.danoeh.antennapod.event.FavoritesEvent;
import de.danoeh.antennapod.event.FeedItemEvent;
import de.danoeh.antennapod.event.FeedListUpdateEvent;
+import de.danoeh.antennapod.event.FeedUpdateRunningEvent;
import de.danoeh.antennapod.event.PlayerStatusEvent;
import de.danoeh.antennapod.event.QueueEvent;
import de.danoeh.antennapod.event.UnreadItemsUpdateEvent;
@@ -164,7 +165,7 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
nextPageLoader = new MoreContentListFooterUtil(viewBinding.moreContent.moreContentListFooter);
nextPageLoader.setClickListener(() -> {
if (feed != null) {
- DBTasks.loadNextPageOfFeed(getActivity(), feed, false);
+ FeedUpdateManager.runOnce(getContext(), feed, true);
}
});
viewBinding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@@ -241,8 +242,6 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
}
viewBinding.toolbar.getMenu().findItem(R.id.visit_website_item).setVisible(feed.getLink() != null);
- MenuItemUtils.updateRefreshMenuItem(viewBinding.toolbar.getMenu(), R.id.refresh_item,
- DownloadService.isRunning && DownloadService.isDownloadingFile(feed.getDownload_url()));
FeedMenuHandler.onPrepareOptionsMenu(viewBinding.toolbar.getMenu(), feed);
}
@@ -384,7 +383,6 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
private void updateUi() {
loadItems();
- updateSyncProgressBarVisibility();
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -404,12 +402,14 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
}
}
- private void updateSyncProgressBarVisibility() {
- updateToolbar();
- if (!DownloadService.isDownloadingFeeds()) {
+ @Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
+ public void onEventMainThread(FeedUpdateRunningEvent event) {
+ nextPageLoader.setLoadingState(event.isFeedUpdateRunning);
+ if (!event.isFeedUpdateRunning) {
nextPageLoader.getRoot().setVisibility(View.GONE);
}
- nextPageLoader.setLoadingState(DownloadService.isDownloadingFeeds());
+ MenuItemUtils.updateRefreshMenuItem(viewBinding.toolbar.getMenu(),
+ R.id.refresh_item, event.isFeedUpdateRunning);
}
private void refreshHeaderView() {
@@ -534,14 +534,12 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
adapter.setDummyViews(0);
adapter.updateItems(feed.getItems());
updateToolbar();
- updateSyncProgressBarVisibility();
}, error -> {
feed = null;
refreshHeaderView();
adapter.setDummyViews(0);
adapter.updateItems(Collections.emptyList());
updateToolbar();
- updateSyncProgressBarVisibility();
Log.e(TAG, Log.getStackTraceString(error));
});
}