diff options
-rw-r--r-- | res/menu/feeditem.xml | 3 | ||||
-rw-r--r-- | res/menu/feedlist.xml | 2 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/de/podfetcher/util/FeedItemMenuHandler.java | 5 | ||||
-rw-r--r-- | src/de/podfetcher/util/FeedMenuHandler.java | 9 | ||||
-rw-r--r-- | src/de/podfetcher/util/ShareUtils.java | 34 |
6 files changed, 54 insertions, 1 deletions
diff --git a/res/menu/feeditem.xml b/res/menu/feeditem.xml index 20509ac39..9b80593a5 100644 --- a/res/menu/feeditem.xml +++ b/res/menu/feeditem.xml @@ -9,7 +9,8 @@ <item android:id="@+id/add_to_queue_item" android:title="@string/add_to_queue_label" android:visible="false" android:showAsAction="collapseActionView"></item> <item android:id="@+id/remove_from_queue_item" android:title="@string/remove_from_queue_label" android:visible="false" android:showAsAction="collapseActionView"></item> <item android:id="@+id/stream_item" android:title="@string/stream_label" android:visible="false" android:showAsAction="always" android:icon="@drawable/action_stream"></item> - <item android:id="@+id/visit_website_item" android:icon="@drawable/location_web_site" android:title="@string/visit_website_label" android:showAsAction="ifRoom|collapseActionView" android:visible="false"></item> + <item android:id="@+id/share_link_item" android:title="@string/share_link_label" android:showAsAction="collapseActionView"></item><item android:id="@+id/visit_website_item" android:icon="@drawable/location_web_site" android:title="@string/visit_website_label" android:showAsAction="ifRoom|collapseActionView" android:visible="false"></item> <item android:id="@+id/support_item" android:title="@string/support_label" android:showAsAction="collapseActionView" android:visible="false"></item> + </menu>
\ No newline at end of file diff --git a/res/menu/feedlist.xml b/res/menu/feedlist.xml index 16a7f9dd1..8e9a84011 100644 --- a/res/menu/feedlist.xml +++ b/res/menu/feedlist.xml @@ -3,6 +3,8 @@ <item android:id="@+id/refresh_item" android:title="@string/refresh_label" android:showAsAction="collapseActionView"></item><item android:id="@+id/mark_all_read_item" android:title="@string/mark_all_read_label" android:showAsAction="ifRoom|withText"></item><item android:id="@+id/show_info_item" android:icon="@drawable/action_about" android:title="@string/show_info_label" android:showAsAction="always"></item><item android:id="@+id/remove_item" android:title="@string/remove_feed_label" android:icon="@drawable/content_discard" android:visible="true" android:showAsAction="collapseActionView"></item> <item android:id="@+id/visit_website_item" android:showAsAction="ifRoom|collapseActionView" android:icon="@drawable/location_web_site" android:title="@string/visit_website_label" android:visible="true"></item> <item android:id="@+id/support_item" android:title="@string/support_label" android:showAsAction="collapseActionView" android:visible="false"></item> + <item android:id="@+id/share_link_item" android:title="@string/share_link_label" android:showAsAction="collapseActionView"></item> + <item android:id="@+id/share_source_item" android:title="@string/share_source_label" android:showAsAction="collapseActionView"></item> diff --git a/res/values/strings.xml b/res/values/strings.xml index fa33ea012..60d066aff 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -94,5 +94,7 @@ <string name="download_report_title">All downloads completed</string> <string name="refresh_label">Refresh</string> <string name="external_storage_error_msg">No external storage is available. Please make sure that external storage is mounted so that the app can work properly.</string> + <string name="share_link_label">Share link...</string> + <string name="share_source_label">Share source link...</string> </resources>
\ No newline at end of file diff --git a/src/de/podfetcher/util/FeedItemMenuHandler.java b/src/de/podfetcher/util/FeedItemMenuHandler.java index 59d46de0f..83c2fcb3e 100644 --- a/src/de/podfetcher/util/FeedItemMenuHandler.java +++ b/src/de/podfetcher/util/FeedItemMenuHandler.java @@ -38,6 +38,8 @@ public class FeedItemMenuHandler { } else { menu.findItem(R.id.add_to_queue_item).setVisible(true); } + + menu.findItem(R.id.share_link_item).setVisible(selectedItem.getLink() != null); } if (selectedItem.isRead()) { @@ -100,6 +102,9 @@ public class FeedItemMenuHandler { Uri supportUri = Uri.parse(selectedItem.getPaymentLink()); context.startActivity(new Intent(Intent.ACTION_VIEW, supportUri)); break; + case R.id.share_link_item: + ShareUtils.shareFeedItemLink(context, selectedItem); + break; default: return false; } diff --git a/src/de/podfetcher/util/FeedMenuHandler.java b/src/de/podfetcher/util/FeedMenuHandler.java index 10fdcb2ab..1f0667be5 100644 --- a/src/de/podfetcher/util/FeedMenuHandler.java +++ b/src/de/podfetcher/util/FeedMenuHandler.java @@ -40,6 +40,9 @@ public class FeedMenuHandler { } else { refresh.setVisible(true); } + + menu.findItem(R.id.share_link_item).setVisible(selectedFeed.getLink() != null); + return true; } @@ -68,6 +71,12 @@ public class FeedMenuHandler { Uri supportUri = Uri.parse(selectedFeed.getPaymentLink()); context.startActivity(new Intent(Intent.ACTION_VIEW, supportUri)); break; + case R.id.share_link_item: + ShareUtils.shareFeedlink(context, selectedFeed); + break; + case R.id.share_source_item: + ShareUtils.shareFeedDownloadLink(context, selectedFeed); + break; default: return false; } diff --git a/src/de/podfetcher/util/ShareUtils.java b/src/de/podfetcher/util/ShareUtils.java new file mode 100644 index 000000000..f9230b311 --- /dev/null +++ b/src/de/podfetcher/util/ShareUtils.java @@ -0,0 +1,34 @@ +package de.podfetcher.util; + +import de.podfetcher.feed.Feed; +import de.podfetcher.feed.FeedItem; +import android.content.Context; +import android.content.Intent; + +/** Utility methods for sharing data */ +public class ShareUtils { + private static final String TAG = "ShareUtils"; + + private ShareUtils() {} + + private static void shareLink(Context context, String link) { + Intent i = new Intent(Intent.ACTION_SEND); + i.setType("text/plain"); + i.putExtra(Intent.EXTRA_SUBJECT, "Sharing URL"); + i.putExtra(Intent.EXTRA_TEXT, link); + context.startActivity(Intent.createChooser(i, "Share URL")); + } + + public static void shareFeedItemLink(Context context, FeedItem item) { + shareLink(context, item.getLink()); + } + + public static void shareFeedDownloadLink(Context context, Feed feed) { + shareLink(context, feed.getDownload_url()); + } + + public static void shareFeedlink(Context context, Feed feed) { + shareLink(context, feed.getLink()); + } + +} |