From 7936be0270312c1dcb649aa5845bf5cdb188eb87 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sat, 14 Nov 2020 17:46:32 +0100 Subject: Fixed toolbar sometimes not refreshing correctly --- .../menuhandler/FeedItemMenuHandler.java | 64 +++++++--------------- 1 file changed, 21 insertions(+), 43 deletions(-) (limited to 'app/src/main/java/de/danoeh') diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java index 3d8f3fe09..1eecccb4c 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java @@ -48,65 +48,43 @@ public class FeedItemMenuHandler { if (menu == null || selectedItem == null) { return false; } - boolean hasMedia = selectedItem.getMedia() != null; - boolean isPlaying = hasMedia && selectedItem.getState() == FeedItem.State.PLAYING; - - if (!isPlaying) { - setItemVisibility(menu, R.id.skip_episode_item, false); - } - boolean isInQueue = selectedItem.isTagged(FeedItem.TAG_QUEUE); - if (!isInQueue) { - setItemVisibility(menu, R.id.remove_from_queue_item, false); - } - if (!(!isInQueue && selectedItem.getMedia() != null)) { - setItemVisibility(menu, R.id.add_to_queue_item, false); - } - if (!ShareUtils.hasLinkToShare(selectedItem)) { - setItemVisibility(menu, R.id.visit_website_item, false); - } - - boolean fileDownloaded = hasMedia && selectedItem.getMedia().fileExists(); + final boolean hasMedia = selectedItem.getMedia() != null; + final boolean isPlaying = hasMedia && selectedItem.getState() == FeedItem.State.PLAYING; + final boolean isInQueue = selectedItem.isTagged(FeedItem.TAG_QUEUE); + final boolean fileDownloaded = hasMedia && selectedItem.getMedia().fileExists(); + final boolean isFavorite = selectedItem.isTagged(FeedItem.TAG_FAVORITE); + setItemVisibility(menu, R.id.skip_episode_item, isPlaying); + setItemVisibility(menu, R.id.remove_from_queue_item, isInQueue); + setItemVisibility(menu, R.id.add_to_queue_item, !isInQueue && selectedItem.getMedia() != null); + setItemVisibility(menu, R.id.visit_website_item, !selectedItem.getFeed().isLocalFeed() + && ShareUtils.hasLinkToShare(selectedItem)); + setItemVisibility(menu, R.id.share_item, !selectedItem.getFeed().isLocalFeed()); setItemVisibility(menu, R.id.remove_new_flag_item, selectedItem.isNew()); - if (selectedItem.isPlayed()) { - setItemVisibility(menu, R.id.mark_read_item, false); - } else { - setItemVisibility(menu, R.id.mark_unread_item, false); - } - - if (selectedItem.getMedia() == null || selectedItem.getMedia().getPosition() == 0) { - setItemVisibility(menu, R.id.reset_position, false); - } + setItemVisibility(menu, R.id.mark_read_item, !selectedItem.isPlayed()); + setItemVisibility(menu, R.id.mark_unread_item, selectedItem.isPlayed()); + setItemVisibility(menu, R.id.reset_position, hasMedia && selectedItem.getMedia().getPosition() != 0); if (!UserPreferences.isEnableAutodownload() || fileDownloaded || selectedItem.getFeed().isLocalFeed()) { setItemVisibility(menu, R.id.activate_auto_download, false); setItemVisibility(menu, R.id.deactivate_auto_download, false); - } else if (selectedItem.getAutoDownload()) { - setItemVisibility(menu, R.id.activate_auto_download, false); } else { - setItemVisibility(menu, R.id.deactivate_auto_download, false); + setItemVisibility(menu, R.id.activate_auto_download, !selectedItem.getAutoDownload()); + setItemVisibility(menu, R.id.deactivate_auto_download, selectedItem.getAutoDownload()); } // Display proper strings when item has no media - if (!hasMedia && !selectedItem.isPlayed()) { + if (hasMedia) { + setItemTitle(menu, R.id.mark_read_item, R.string.mark_read_label); + setItemTitle(menu, R.id.mark_unread_item, R.string.mark_unread_label); + } else { setItemTitle(menu, R.id.mark_read_item, R.string.mark_read_no_media_label); - } - - if (!hasMedia && selectedItem.isPlayed()) { setItemTitle(menu, R.id.mark_unread_item, R.string.mark_unread_label_no_media); } - boolean isFavorite = selectedItem.isTagged(FeedItem.TAG_FAVORITE); setItemVisibility(menu, R.id.add_to_favorites_item, !isFavorite); setItemVisibility(menu, R.id.remove_from_favorites_item, isFavorite); - setItemVisibility(menu, R.id.remove_item, fileDownloaded); - - if (selectedItem.getFeed().isLocalFeed()) { - setItemVisibility(menu, R.id.visit_website_item, false); - setItemVisibility(menu, R.id.share_item, false); - } - return true; } @@ -134,7 +112,7 @@ public class FeedItemMenuHandler { * @param id The id of the string that is going to be replaced. * @param noMedia The id of the new String that is going to be used. * */ - public static void setItemTitle(Menu menu, int id, int noMedia){ + public static void setItemTitle(Menu menu, int id, int noMedia) { MenuItem item = menu.findItem(id); if (item != null) { item.setTitle(noMedia); -- cgit v1.2.3