Fixed incorrect behavior of FeedItemMenuHandler if an item had no media

This commit is contained in:
daniel oeh 2012-08-01 00:29:21 +02:00
parent 65fdae0ea7
commit db1a83061e

View File

@ -24,8 +24,8 @@ public class FeedItemMenuHandler {
public static boolean onPrepareMenu(Menu menu, FeedItem selectedItem) { public static boolean onPrepareMenu(Menu menu, FeedItem selectedItem) {
FeedManager manager = FeedManager.getInstance(); FeedManager manager = FeedManager.getInstance();
DownloadRequester requester = DownloadRequester.getInstance(); DownloadRequester requester = DownloadRequester.getInstance();
boolean hasMedia = selectedItem.getMedia() != null;
if (selectedItem.getMedia() != null) { if (hasMedia) {
if (selectedItem.getMedia().isDownloaded()) { if (selectedItem.getMedia().isDownloaded()) {
menu.findItem(R.id.play_item).setVisible(true); menu.findItem(R.id.play_item).setVisible(true);
menu.findItem(R.id.remove_item).setVisible(true); menu.findItem(R.id.remove_item).setVisible(true);
@ -33,8 +33,10 @@ public class FeedItemMenuHandler {
menu.findItem(R.id.download_item).setVisible(true); menu.findItem(R.id.download_item).setVisible(true);
menu.findItem(R.id.stream_item).setVisible(true); menu.findItem(R.id.stream_item).setVisible(true);
} }
}
boolean isDownloading = requester.isDownloadingFile(selectedItem.getMedia()); boolean isDownloading = hasMedia
&& requester.isDownloadingFile(selectedItem.getMedia());
menu.findItem(R.id.cancel_download_item).setVisible(isDownloading); menu.findItem(R.id.cancel_download_item).setVisible(isDownloading);
if (manager.isInQueue(selectedItem)) { if (manager.isInQueue(selectedItem)) {
@ -45,7 +47,6 @@ public class FeedItemMenuHandler {
menu.findItem(R.id.share_link_item).setVisible( menu.findItem(R.id.share_link_item).setVisible(
selectedItem.getLink() != null); selectedItem.getLink() != null);
}
if (selectedItem.isRead()) { if (selectedItem.isRead()) {
menu.findItem(R.id.mark_unread_item).setVisible(true); menu.findItem(R.id.mark_unread_item).setVisible(true);
@ -104,7 +105,8 @@ public class FeedItemMenuHandler {
context.startActivity(new Intent(Intent.ACTION_VIEW, uri)); context.startActivity(new Intent(Intent.ACTION_VIEW, uri));
break; break;
case R.id.support_item: case R.id.support_item:
new FlattrClickWorker(context, selectedItem.getPaymentLink()).executeAsync(); new FlattrClickWorker(context, selectedItem.getPaymentLink())
.executeAsync();
break; break;
case R.id.share_link_item: case R.id.share_link_item:
ShareUtils.shareFeedItemLink(context, selectedItem); ShareUtils.shareFeedItemLink(context, selectedItem);