From 825ccd28c1572c2f49b1bd2c83c78cd76d0e6629 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Mon, 21 Jan 2013 22:47:19 +0100 Subject: Improved performance of FeedItemMenuHandler's prepare method --- res/menu/feeditem.xml | 30 ++++-------- .../util/menuhandler/FeedItemMenuHandler.java | 56 +++++++++++++--------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/res/menu/feeditem.xml b/res/menu/feeditem.xml index 1944dceb9..a76f2c658 100644 --- a/res/menu/feeditem.xml +++ b/res/menu/feeditem.xml @@ -5,29 +5,25 @@ android:id="@+id/download_item" android:icon="?attr/av_download" android:showAsAction="ifRoom" - android:title="@string/download_label" - android:visible="false"> + android:title="@string/download_label"> + android:title="@string/stream_label"> + android:title="@string/play_label"> + android:title="@string/remove_label"> + android:title="@string/mark_read_label"> + android:title="@string/mark_unread_label"> + android:title="@string/add_to_queue_label"> + android:title="@string/remove_from_queue_label"> + android:title="@string/visit_website_label"> + android:title="@string/support_label"> \ No newline at end of file diff --git a/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java b/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java index a1145f372..c3d3af495 100644 --- a/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java +++ b/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java @@ -3,6 +3,7 @@ package de.danoeh.antennapod.util.menuhandler; import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.os.Debug; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -47,36 +48,45 @@ public class FeedItemMenuHandler { && (!downloading); FeedItem.State state = selectedItem.getState(); - mi.setItemVisibility(R.id.play_item, downloaded); - mi.setItemVisibility(R.id.remove_item, downloaded); - mi.setItemVisibility(R.id.download_item, notLoadedAndNotLoading); - mi.setItemVisibility(R.id.stream_item, notLoadedAndNotLoading - | downloading); - mi.setItemVisibility(R.id.cancel_download_item, downloading); + if (!downloaded) { + mi.setItemVisibility(R.id.play_item, false); + mi.setItemVisibility(R.id.remove_item, false); + } + if (!notLoadedAndNotLoading) { + mi.setItemVisibility(R.id.download_item, false); + } + if (!(notLoadedAndNotLoading | downloading)) { + mi.setItemVisibility(R.id.stream_item, false); + } + if (!downloading) { + mi.setItemVisibility(R.id.cancel_download_item, false); + } boolean isInQueue = manager.isInQueue(selectedItem); + if (!isInQueue) { + mi.setItemVisibility(R.id.remove_from_queue_item, false); + } + if (!(!isInQueue && selectedItem.getMedia() != null)) { + mi.setItemVisibility(R.id.add_to_queue_item, false); + } + if (selectedItem.getLink() == null) { + mi.setItemVisibility(R.id.share_link_item, false); + } - mi.setItemVisibility(R.id.remove_from_queue_item, isInQueue); - mi.setItemVisibility(R.id.add_to_queue_item, - !isInQueue && selectedItem.getMedia() != null); - - mi.setItemVisibility(R.id.share_link_item, - selectedItem.getLink() != null); - - mi.setItemVisibility(R.id.mark_unread_item, - state == FeedItem.State.IN_PROGRESS - || state == FeedItem.State.READ); - mi.setItemVisibility(R.id.mark_read_item, state == FeedItem.State.NEW - || state == FeedItem.State.IN_PROGRESS); - - if (selectedItem.getLink() != null) { - mi.setItemVisibility(R.id.visit_website_item, true); + if (!(state == FeedItem.State.IN_PROGRESS || state == FeedItem.State.READ)) { + mi.setItemVisibility(R.id.mark_unread_item, false); + } + if (!(state == FeedItem.State.NEW || state == FeedItem.State.IN_PROGRESS)) { + mi.setItemVisibility(R.id.mark_read_item, false); } - if (selectedItem.getPaymentLink() != null) { - mi.setItemVisibility(R.id.support_item, true); + if (selectedItem.getLink() == null) { + mi.setItemVisibility(R.id.visit_website_item, false); } + if (selectedItem.getPaymentLink() == null) { + mi.setItemVisibility(R.id.support_item, false); + } return true; } -- cgit v1.2.3