summaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java13
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java7
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java3
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java10
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java26
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java7
-rw-r--r--app/src/main/res/menu/allepisodes_context.xml27
-rw-r--r--app/src/main/res/menu/feedinfo.xml2
-rw-r--r--app/src/main/res/menu/feeditem_options.xml29
-rw-r--r--app/src/main/res/menu/feeditemlist_context.xml28
-rw-r--r--app/src/main/res/menu/feedlist.xml23
-rw-r--r--app/src/main/res/menu/mediaplayer.xml35
-rw-r--r--app/src/main/res/menu/queue_context.xml29
14 files changed, 204 insertions, 40 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
index 0cd388b9d..a5ec02cf2 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -278,6 +278,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity
startActivity(intent);
return true;
} else if (media != null) {
+ FeedItem feedItem = ((FeedMedia) media).getItem();
switch (item.getItemId()) {
case R.id.disable_sleeptimer_item:
if (controller.serviceAvailable()) {
@@ -333,12 +334,20 @@ public abstract class MediaplayerActivity extends ActionBarActivity
break;
case R.id.support_item:
if (media instanceof FeedMedia) {
- FeedItem feedItem = ((FeedMedia) media).getItem();
DBTasks.flattrItemIfLoggedIn(this, feedItem);
}
break;
case R.id.share_link_item:
- ShareUtils.shareLink(this, media.getWebsiteLink());
+ ShareUtils.shareFeedItemLink(this, feedItem);
+ break;
+ case R.id.share_download_url_item:
+ ShareUtils.shareFeedItemDownloadLink(this, feedItem);
+ break;
+ case R.id.share_link_with_position_item:
+ ShareUtils.shareFeedItemLink(this, feedItem, true);
+ break;
+ case R.id.share_download_url_with_position_item:
+ ShareUtils.shareFeedItemDownloadLink(this, feedItem, true);
break;
case R.id.skip_episode_item:
sendBroadcast(new Intent(
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
index b2482ae32..f40bcf999 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
@@ -30,8 +30,8 @@ import java.util.concurrent.atomic.AtomicReference;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
-import de.danoeh.antennapod.adapter.DefaultActionButtonCallback;
import de.danoeh.antennapod.adapter.AllEpisodesListAdapter;
+import de.danoeh.antennapod.adapter.DefaultActionButtonCallback;
import de.danoeh.antennapod.core.asynctask.DownloadObserver;
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
import de.danoeh.antennapod.core.feed.EventDistributor;
@@ -72,6 +72,7 @@ public class AllEpisodesFragment extends Fragment {
private TextView txtvEmpty;
private ProgressBar progLoading;
private ContextMenu contextMenu;
+ private AdapterView.AdapterContextMenuInfo lastMenuInfo = null;
private List<FeedItem> episodes;
private LongList queuedItemsIds;
@@ -341,12 +342,16 @@ public class AllEpisodesFragment extends Fragment {
}
contextMenu = menu;
+ lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
FeedItemMenuHandler.onPrepareMenu(getActivity(), contextMenuInterface, item, true, queuedItemsIds);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+ if(menuInfo == null) {
+ menuInfo = lastMenuInfo;
+ }
FeedItem selectedItem = itemAccess.getItem(menuInfo.position);
if (selectedItem == null) {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
index 9693e6886..ac7899305 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
@@ -277,7 +277,8 @@ public class ItemDescriptionFragment extends Fragment {
}
break;
case R.id.share_url_item:
- ShareUtils.shareLink(getActivity(), selectedURL);
+ String subject = getString(R.string.share_url_label);
+ ShareUtils.shareLink(getActivity(), subject, selectedURL);
break;
case R.id.copy_url_item:
if (android.os.Build.VERSION.SDK_INT >= 11) {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
index 67e65a6ce..5a788b10c 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
@@ -83,6 +83,7 @@ public class ItemlistFragment extends ListFragment {
protected FeedItemlistAdapter adapter;
private ContextMenu contextMenu;
+ private AdapterView.AdapterContextMenuInfo lastMenuInfo = null;
private long feedID;
private Feed feed;
@@ -217,6 +218,11 @@ public class ItemlistFragment extends ListFragment {
return false;
}
});
+ if(feed == null || feed.getLink() == null) {
+ menu.findItem(R.id.share_link_item).setVisible(false);
+ menu.findItem(R.id.visit_website_item).setVisible(false);
+ }
+
isUpdatingFeed = MenuItemUtils.updateRefreshMenuItem(menu, R.id.refresh_item, updateRefreshMenuItemChecker);
}
}
@@ -302,12 +308,16 @@ public class ItemlistFragment extends ListFragment {
}
contextMenu = menu;
+ lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
FeedItemMenuHandler.onPrepareMenu(getActivity(), contextMenuInterface, item, true, queuedItemsIds);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+ if(menuInfo == null) {
+ menuInfo = lastMenuInfo;
+ }
// because of addHeaderView(), positions are increased by 1!
FeedItem selectedItem = itemAccess.getItem(menuInfo.position-1);
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index 0a825c51a..77b2d590f 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -72,6 +72,7 @@ public class QueueFragment extends Fragment {
private ProgressBar progLoading;
private ContextMenu contextMenu;
+ private AdapterView.AdapterContextMenuInfo lastMenuInfo = null;
private UndoBarController<FeedItemUndoToken> undoBarController;
@@ -325,6 +326,7 @@ public class QueueFragment extends Fragment {
}
contextMenu = menu;
+ lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
LongList queueIds = new LongList(queue.size());
for(FeedItem queueItem : queue) {
queueIds.add(queueItem.getId());
@@ -335,6 +337,9 @@ public class QueueFragment extends Fragment {
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+ if(menuInfo == null) {
+ menuInfo = lastMenuInfo;
+ }
FeedItem selectedItem = itemAccess.getItem(menuInfo.position);
if (selectedItem == null) {
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 64ba3dca3..c33ab93b4 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
@@ -85,8 +85,19 @@ public class FeedItemMenuHandler {
if (!(!isInQueue && selectedItem.getMedia() != null)) {
mi.setItemVisibility(R.id.add_to_queue_item, false);
}
+
if (!showExtendedMenu || selectedItem.getLink() == null) {
+ mi.setItemVisibility(R.id.visit_website_item, false);
mi.setItemVisibility(R.id.share_link_item, false);
+ mi.setItemVisibility(R.id.share_link_with_position_item, false);
+ }
+ if (!showExtendedMenu || !hasMedia || selectedItem.getMedia().getDownload_url() == null) {
+ mi.setItemVisibility(R.id.share_download_url_item, false);
+ mi.setItemVisibility(R.id.share_download_url_with_position_item, false);
+ }
+ if(false == hasMedia || selectedItem.getMedia().getPosition() <= 0) {
+ mi.setItemVisibility(R.id.share_link_with_position_item, false);
+ mi.setItemVisibility(R.id.share_download_url_with_position_item, false);
}
if (!(state == FeedItem.State.UNREAD || state == FeedItem.State.IN_PROGRESS)) {
@@ -109,12 +120,6 @@ public class FeedItemMenuHandler {
mi.setItemVisibility(R.id.deactivate_auto_download, false);
}
- if (!showExtendedMenu || selectedItem.getLink() == null ||
- false == IntentUtils.isCallable(context, new Intent(Intent.ACTION_VIEW, Uri.parse(selectedItem.getLink()))))
- {
- mi.setItemVisibility(R.id.visit_website_item, false);
- }
-
if (selectedItem.getPaymentLink() == null || !selectedItem.getFlattrStatus().flattrable()) {
mi.setItemVisibility(R.id.support_item, false);
}
@@ -213,6 +218,15 @@ public class FeedItemMenuHandler {
case R.id.share_link_item:
ShareUtils.shareFeedItemLink(context, selectedItem);
break;
+ case R.id.share_download_url_item:
+ ShareUtils.shareFeedItemDownloadLink(context, selectedItem);
+ break;
+ case R.id.share_link_with_position_item:
+ ShareUtils.shareFeedItemLink(context, selectedItem, true);
+ break;
+ case R.id.share_download_url_with_position_item:
+ ShareUtils.shareFeedItemDownloadLink(context, selectedItem, true);
+ break;
default:
Log.d(TAG, "Unknown menuItemId: " + menuItemId);
return false;
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
index 85394d01e..30cc2c640 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
@@ -42,10 +42,11 @@ public class FeedMenuHandler {
Log.d(TAG, "Preparing options menu");
menu.findItem(R.id.mark_all_read_item).setVisible(selectedFeed.hasNewItems());
- if (selectedFeed.getPaymentLink() != null && selectedFeed.getFlattrStatus().flattrable())
+ if (selectedFeed.getPaymentLink() != null && selectedFeed.getFlattrStatus().flattrable()) {
menu.findItem(R.id.support_item).setVisible(true);
- else
+ } else {
menu.findItem(R.id.support_item).setVisible(false);
+ }
menu.findItem(R.id.refresh_complete_item).setVisible(selectedFeed.isPaged());
@@ -99,7 +100,7 @@ public class FeedMenuHandler {
case R.id.share_link_item:
ShareUtils.shareFeedlink(context, selectedFeed);
break;
- case R.id.share_source_item:
+ case R.id.share_download_url_item:
ShareUtils.shareFeedDownloadLink(context, selectedFeed);
break;
default:
diff --git a/app/src/main/res/menu/allepisodes_context.xml b/app/src/main/res/menu/allepisodes_context.xml
index f89ad5065..171e509a8 100644
--- a/app/src/main/res/menu/allepisodes_context.xml
+++ b/app/src/main/res/menu/allepisodes_context.xml
@@ -40,13 +40,32 @@
android:title="@string/deactivate_auto_download" />
<item
- android:id="@+id/share_link_item"
- android:menuCategory="container"
- android:title="@string/share_link_label" />
- <item
android:id="@+id/visit_website_item"
android:menuCategory="container"
android:title="@string/visit_website_label" />
+ <item
+ android:id="@+id/share_item"
+ android:menuCategory="container"
+ android:title="@string/share_label">
+ <menu>
+ <item
+ android:id="@+id/share_link_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_label" />
+ <item
+ android:id="@+id/share_link_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_with_position_label" />
+ <item
+ android:id="@+id/share_download_url_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_label" />
+ <item
+ android:id="@+id/share_download_url_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_with_position_label" />
+ </menu>
+ </item>
<item
android:id="@+id/support_item"
diff --git a/app/src/main/res/menu/feedinfo.xml b/app/src/main/res/menu/feedinfo.xml
index be50cb87d..94f34db93 100644
--- a/app/src/main/res/menu/feedinfo.xml
+++ b/app/src/main/res/menu/feedinfo.xml
@@ -20,7 +20,7 @@
android:title="@string/share_link_label">
</item>
<item
- android:id="@+id/share_source_item"
+ android:id="@+id/share_download_url_item"
custom:showAsAction="collapseActionView"
android:title="@string/share_source_label">
</item>
diff --git a/app/src/main/res/menu/feeditem_options.xml b/app/src/main/res/menu/feeditem_options.xml
index f8e9b9c75..650912ea2 100644
--- a/app/src/main/res/menu/feeditem_options.xml
+++ b/app/src/main/res/menu/feeditem_options.xml
@@ -48,17 +48,36 @@
</item>
<item
- android:id="@+id/share_link_item"
- custom:showAsAction="collapseActionView"
- android:title="@string/share_link_label">
- </item>
- <item
android:id="@+id/visit_website_item"
android:icon="?attr/location_web_site"
custom:showAsAction="ifRoom|collapseActionView"
android:title="@string/visit_website_label">
</item>
<item
+ android:id="@+id/share_item"
+ android:menuCategory="container"
+ android:title="@string/share_label">
+ <menu>
+ <item
+ android:id="@+id/share_link_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_label" />
+ <item
+ android:id="@+id/share_link_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_with_position_label" />
+ <item
+ android:id="@+id/share_download_url_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_label" />
+ <item
+ android:id="@+id/share_download_url_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_with_position_label" />
+ </menu>
+ </item>
+
+ <item
android:id="@+id/support_item"
custom:showAsAction="collapseActionView"
android:title="@string/support_label">
diff --git a/app/src/main/res/menu/feeditemlist_context.xml b/app/src/main/res/menu/feeditemlist_context.xml
index f89ad5065..7b10e5cce 100644
--- a/app/src/main/res/menu/feeditemlist_context.xml
+++ b/app/src/main/res/menu/feeditemlist_context.xml
@@ -40,13 +40,33 @@
android:title="@string/deactivate_auto_download" />
<item
- android:id="@+id/share_link_item"
- android:menuCategory="container"
- android:title="@string/share_link_label" />
- <item
android:id="@+id/visit_website_item"
android:menuCategory="container"
android:title="@string/visit_website_label" />
+ <item
+ android:id="@+id/share_item"
+ android:menuCategory="container"
+ android:title="@string/share_label">
+ <menu>
+ <item
+ android:id="@+id/share_link_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_label" />
+ <item
+ android:id="@+id/share_link_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_with_position_label" />
+ <item
+ android:id="@+id/share_download_url_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_label" />
+ <item
+ android:id="@+id/share_download_url_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_with_position_label" />
+ </menu>
+ </item>
+
<item
android:id="@+id/support_item"
diff --git a/app/src/main/res/menu/feedlist.xml b/app/src/main/res/menu/feedlist.xml
index e0da72667..e6e85093b 100644
--- a/app/src/main/res/menu/feedlist.xml
+++ b/app/src/main/res/menu/feedlist.xml
@@ -36,6 +36,7 @@
android:title="@string/mark_all_read_label"
custom:showAsAction="collapseActionView">
</item>
+
<item
android:id="@+id/support_item"
android:menuCategory="container"
@@ -43,6 +44,28 @@
android:visible="false"
custom:showAsAction="collapseActionView">
</item>
+
+ <item
+ android:id="@+id/visit_website_item"
+ android:icon="?attr/location_web_site"
+ android:menuCategory="container"
+ custom:showAsAction="collapseActionView"
+ android:title="@string/visit_website_label"
+ android:visible="true">
+ </item>
+ <item
+ android:id="@+id/share_link_item"
+ android:menuCategory="container"
+ custom:showAsAction="collapseActionView"
+ android:title="@string/share_link_label">
+ </item>
+ <item
+ android:id="@+id/share_download_url_item"
+ android:menuCategory="container"
+ custom:showAsAction="collapseActionView"
+ android:title="@string/share_feed_url_label">
+ </item>
+
<item
android:id="@+id/remove_item"
android:icon="?attr/content_discard"
diff --git a/app/src/main/res/menu/mediaplayer.xml b/app/src/main/res/menu/mediaplayer.xml
index 288e44401..053e68552 100644
--- a/app/src/main/res/menu/mediaplayer.xml
+++ b/app/src/main/res/menu/mediaplayer.xml
@@ -13,11 +13,14 @@
custom:showAsAction="collapseActionView"
android:title="@string/set_sleeptimer_label">
</item>
+
<item
- android:id="@+id/share_link_item"
+ android:id="@+id/skip_episode_item"
custom:showAsAction="collapseActionView"
- android:title="@string/share_link_label">
+ android:title="@string/skip_episode_label"
+ android:visible="true">
</item>
+
<item
android:id="@+id/visit_website_item"
android:icon="?attr/location_web_site"
@@ -26,15 +29,33 @@
android:visible="false">
</item>
<item
+ android:id="@+id/share_item"
+ android:menuCategory="container"
+ android:title="@string/share_label">
+ <menu>
+ <item
+ android:id="@+id/share_link_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_label" />
+ <item
+ android:id="@+id/share_link_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_with_position_label" />
+ <item
+ android:id="@+id/share_download_url_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_label" />
+ <item
+ android:id="@+id/share_download_url_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_with_position_label" />
+ </menu>
+ </item>
+ <item
android:id="@+id/support_item"
custom:showAsAction="collapseActionView"
android:title="@string/support_label"
android:visible="false">
</item>
- <item
- android:id="@id/skip_episode_item"
- custom:showAsAction="collapseActionView"
- android:title="@string/skip_episode_label"
- android:visible="true"/>
</menu> \ No newline at end of file
diff --git a/app/src/main/res/menu/queue_context.xml b/app/src/main/res/menu/queue_context.xml
index 6ab2daabf..d09f3c84c 100644
--- a/app/src/main/res/menu/queue_context.xml
+++ b/app/src/main/res/menu/queue_context.xml
@@ -36,21 +36,38 @@
android:id="@+id/activate_auto_download"
android:menuCategory="container"
android:title="@string/activate_auto_download" />
-
<item
android:id="@+id/deactivate_auto_download"
android:menuCategory="container"
android:title="@string/deactivate_auto_download" />
<item
- android:id="@+id/share_link_item"
- android:menuCategory="container"
- android:title="@string/share_link_label" />
- <item
android:id="@+id/visit_website_item"
android:menuCategory="container"
android:title="@string/visit_website_label" />
-
+ <item
+ android:id="@+id/share_item"
+ android:menuCategory="container"
+ android:title="@string/share_label">
+ <menu>
+ <item
+ android:id="@+id/share_link_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_label" />
+ <item
+ android:id="@+id/share_link_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_link_with_position_label" />
+ <item
+ android:id="@+id/share_download_url_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_label" />
+ <item
+ android:id="@+id/share_download_url_with_position_item"
+ android:menuCategory="container"
+ android:title="@string/share_item_url_with_position_label" />
+ </menu>
+ </item>
<item
android:id="@+id/support_item"
android:menuCategory="container"