diff options
author | asdoi <36813904+asdoi@users.noreply.github.com> | 2020-09-10 12:47:24 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-10 12:47:24 +0000 |
commit | 0adee1ef585159631a04deee9ed43486bae67b24 (patch) | |
tree | 90e7661610dea870465ba3dbdbed73bbc9d2113a /app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java | |
parent | 22e9a9af7e0931fd558066c6ea1bab6aa8237013 (diff) | |
parent | b80978c40ac22bdaaea528c3908c5cf347088562 (diff) | |
download | AntennaPod-0adee1ef585159631a04deee9ed43486bae67b24.zip |
Merge branch 'develop' into dialog_keyboard
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java index 13941dd2c..55a5d744e 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -17,16 +17,21 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.EpisodeItemListAdapter; import de.danoeh.antennapod.adapter.actionbutton.DeleteActionButton; +import de.danoeh.antennapod.core.event.DownloadEvent; import de.danoeh.antennapod.core.event.DownloadLogEvent; import de.danoeh.antennapod.core.event.FeedItemEvent; import de.danoeh.antennapod.core.event.PlaybackPositionEvent; import de.danoeh.antennapod.core.event.PlayerStatusEvent; import de.danoeh.antennapod.core.event.UnreadItemsUpdateEvent; import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.service.download.DownloadService; import de.danoeh.antennapod.core.storage.DBReader; +import de.danoeh.antennapod.core.storage.DownloadRequester; import de.danoeh.antennapod.core.util.FeedItemUtil; +import de.danoeh.antennapod.core.util.download.AutoUpdateManager; import de.danoeh.antennapod.dialog.EpisodesApplyActionFragment; import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler; +import de.danoeh.antennapod.menuhandler.MenuItemUtils; import de.danoeh.antennapod.view.EmptyViewHandler; import de.danoeh.antennapod.view.EpisodeItemListRecyclerView; import de.danoeh.antennapod.view.viewholder.EpisodeItemViewHolder; @@ -58,6 +63,8 @@ public class CompletedDownloadsFragment extends Fragment { private Disposable disposable; private EmptyViewHandler emptyView; + private boolean isUpdatingFeeds = false; + @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -104,10 +111,11 @@ public class CompletedDownloadsFragment extends Fragment { } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.downloads_completed, menu); menu.findItem(R.id.episode_actions).setVisible(items.size() > 0); + isUpdatingFeeds = MenuItemUtils.updateRefreshMenuItem(menu, R.id.refresh_item, updateRefreshMenuItemChecker); } @Override @@ -116,10 +124,24 @@ public class CompletedDownloadsFragment extends Fragment { ((MainActivity) requireActivity()) .loadChildFragment(EpisodesApplyActionFragment.newInstance(items, ACTION_DELETE | ACTION_ADD_TO_QUEUE)); return true; + } else if (item.getItemId() == R.id.refresh_item) { + AutoUpdateManager.runImmediate(requireContext()); + return true; } return false; } + @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) + public void onEventMainThread(DownloadEvent event) { + Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); + if (event.hasChangedFeedUpdateStatus(isUpdatingFeeds)) { + getActivity().invalidateOptionsMenu(); + } + } + + private final MenuItemUtils.UpdateRefreshMenuItemChecker updateRefreshMenuItemChecker = + () -> DownloadService.isRunning && DownloadRequester.getInstance().isDownloadingFeeds(); + @Override public boolean onContextItemSelected(@NonNull MenuItem item) { FeedItem selectedItem = adapter.getSelectedItem(); |