From 2e8f102248164486359aa1735ca776b7173aa9cf Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Thu, 12 Sep 2013 13:49:50 +0200 Subject: MenuItems in ItemviewActivity were not displayed correctly. fixes #273 --- res/menu/feeditem.xml | 17 ++- .../antennapod/activity/ItemviewActivity.java | 150 +++++++++++---------- 2 files changed, 90 insertions(+), 77 deletions(-) diff --git a/res/menu/feeditem.xml b/res/menu/feeditem.xml index 505de1d4a..bba0973a6 100644 --- a/res/menu/feeditem.xml +++ b/res/menu/feeditem.xml @@ -1,22 +1,22 @@ - + - + + loadTask = new AsyncTask() { @@ -99,61 +102,66 @@ public class ItemviewActivity extends ActionBarActivity { loadTask.execute(itemId); } - private void populateUI() { - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - setContentView(R.layout.feeditemview); - TextView txtvTitle = (TextView) findViewById(R.id.txtvItemname); - TextView txtvPublished = (TextView) findViewById(R.id.txtvPublished); - setTitle(item.getFeed().getTitle()); - - txtvPublished.setText(DateUtils.formatSameDayTime(item.getPubDate() - .getTime(), System.currentTimeMillis(), DateFormat.MEDIUM, - DateFormat.SHORT)); - txtvTitle.setText(item.getTitle()); - - FragmentManager fragmentManager = getSupportFragmentManager(); - FragmentTransaction fragmentTransaction = fragmentManager - .beginTransaction(); - ItemDescriptionFragment fragment = ItemDescriptionFragment - .newInstance(item, false); - fragmentTransaction.replace(R.id.description_fragment, fragment); - fragmentTransaction.commit(); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { + private void populateUI() { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + setContentView(R.layout.feeditemview); + TextView txtvTitle = (TextView) findViewById(R.id.txtvItemname); + TextView txtvPublished = (TextView) findViewById(R.id.txtvPublished); + setTitle(item.getFeed().getTitle()); + + txtvPublished.setText(DateUtils.formatSameDayTime(item.getPubDate() + .getTime(), System.currentTimeMillis(), DateFormat.MEDIUM, + DateFormat.SHORT)); + txtvTitle.setText(item.getTitle()); + + FragmentManager fragmentManager = getSupportFragmentManager(); + FragmentTransaction fragmentTransaction = fragmentManager + .beginTransaction(); + ItemDescriptionFragment fragment = ItemDescriptionFragment + .newInstance(item, false); + fragmentTransaction.replace(R.id.description_fragment, fragment); + fragmentTransaction.commit(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { if (item != null) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.feeditem, menu); + // MenuItem visibility has to be set programmatically here; TODO remove this workaround + MenuItemCompat.setShowAsAction(menu.findItem(R.id.download_item), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); + MenuItemCompat.setShowAsAction(menu.findItem(R.id.stream_item), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); + MenuItemCompat.setShowAsAction(menu.findItem(R.id.play_item), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); + MenuItemCompat.setShowAsAction(menu.findItem(R.id.cancel_download_item), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); return true; } else { return false; } - } - - @Override - public boolean onOptionsItemSelected(MenuItem menuItem) { - try { - if (!FeedItemMenuHandler.onMenuItemClicked(this, - menuItem.getItemId(), item)) { - switch (menuItem.getItemId()) { - case android.R.id.home: - finish(); - break; - } - } - } catch (DownloadRequestException e) { - e.printStackTrace(); - DownloadRequestErrorDialogCreator.newRequestErrorDialog(this, - e.getMessage()); - } - supportInvalidateOptionsMenu(); - return true; - } - - @Override - public boolean onPrepareOptionsMenu(final Menu menu) { - return FeedItemMenuHandler.onPrepareMenu( + } + + @Override + public boolean onOptionsItemSelected(MenuItem menuItem) { + try { + if (!FeedItemMenuHandler.onMenuItemClicked(this, + menuItem.getItemId(), item)) { + switch (menuItem.getItemId()) { + case android.R.id.home: + finish(); + break; + } + } + } catch (DownloadRequestException e) { + e.printStackTrace(); + DownloadRequestErrorDialogCreator.newRequestErrorDialog(this, + e.getMessage()); + } + supportInvalidateOptionsMenu(); + return true; + } + + @Override + public boolean onPrepareOptionsMenu(final Menu menu) { + return FeedItemMenuHandler.onPrepareMenu( new FeedItemMenuHandler.MenuInterface() { @Override @@ -161,7 +169,7 @@ public class ItemviewActivity extends ActionBarActivity { menu.findItem(id).setVisible(visible); } }, item, true, QueueAccess.NotInQueueAccess()); - } + } private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() { -- cgit v1.2.3