From 16caf87e2b01a288420d655e2cd151f7cf576749 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sat, 5 Jul 2014 21:12:50 +0200 Subject: Reduced number of lint warnings --- src/de/danoeh/antennapod/dialog/FeedItemDialog.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/de/danoeh/antennapod/dialog/FeedItemDialog.java') diff --git a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java index 4a130af6e..9d94f14e1 100644 --- a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java +++ b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java @@ -1,5 +1,6 @@ package de.danoeh.antennapod.dialog; +import android.annotation.TargetApi; import android.app.Dialog; import android.content.ActivityNotFoundException; import android.content.Context; @@ -95,6 +96,7 @@ public class FeedItemDialog extends Dialog { && UserPreferences.getTheme() != R.style.Theme_AntennaPod_Dark; } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -- cgit v1.2.3 From fb1fcb06005e925f6c1ebabeb1f31007bc86a48c Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sun, 6 Jul 2014 13:48:38 +0200 Subject: Increased use of library methods --- src/de/danoeh/antennapod/dialog/FeedItemDialog.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/de/danoeh/antennapod/dialog/FeedItemDialog.java') diff --git a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java index 9d94f14e1..0fcda676d 100644 --- a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java +++ b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java @@ -36,6 +36,7 @@ import de.danoeh.antennapod.util.QueueAccess; import de.danoeh.antennapod.util.ShownotesProvider; import de.danoeh.antennapod.util.menuhandler.FeedItemMenuHandler; import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.Validate; import java.util.Collection; import java.util.List; @@ -59,7 +60,7 @@ public class FeedItemDialog extends Dialog { private PopupMenu popupMenu; public static FeedItemDialog newInstance(Context context, FeedItemDialogSavedInstance savedInstance) { - if (savedInstance == null) throw new IllegalArgumentException("savedInstance = null"); + Validate.notNull(savedInstance); FeedItemDialog dialog = newInstance(context, savedInstance.item, savedInstance.queueAccess); if (savedInstance.isShowing) { dialog.show(); @@ -77,8 +78,8 @@ public class FeedItemDialog extends Dialog { public FeedItemDialog(Context context, int theme, FeedItem item, QueueAccess queue) { super(context, theme); - if (item == null) throw new IllegalArgumentException("item = null"); - if (queue == null) throw new IllegalArgumentException("queue = null"); + Validate.notNull(item); + Validate.notNull(queue); this.item = item; this.queue = queue; } @@ -350,7 +351,7 @@ public class FeedItemDialog extends Dialog { public void setItem(FeedItem item) { - if (item == null) throw new IllegalArgumentException("item = null"); + Validate.notNull(item); this.item = item; } @@ -371,7 +372,7 @@ public class FeedItemDialog extends Dialog { } public void setQueue(QueueAccess queue) { - if (queue == null) throw new IllegalArgumentException("queue = null"); + Validate.notNull(queue); this.queue = queue; } -- cgit v1.2.3 From b87db6841955995d7963ae4899e7d404ab06da2e Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sun, 13 Jul 2014 10:31:13 +0200 Subject: Added buttons to FeedItemDialog and the episode lists for items without an episode. fixes #470, fixes #464 --- .../danoeh/antennapod/dialog/FeedItemDialog.java | 73 ++++++++++++++-------- 1 file changed, 48 insertions(+), 25 deletions(-) (limited to 'src/de/danoeh/antennapod/dialog/FeedItemDialog.java') diff --git a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java index 0fcda676d..7384463de 100644 --- a/src/de/danoeh/antennapod/dialog/FeedItemDialog.java +++ b/src/de/danoeh/antennapod/dialog/FeedItemDialog.java @@ -22,6 +22,14 @@ import android.webkit.WebViewClient; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; + +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.Validate; + +import java.util.Collection; +import java.util.List; +import java.util.concurrent.Callable; + import de.danoeh.antennapod.BuildConfig; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.DefaultActionButtonCallback; @@ -35,12 +43,6 @@ import de.danoeh.antennapod.storage.DownloadRequester; import de.danoeh.antennapod.util.QueueAccess; import de.danoeh.antennapod.util.ShownotesProvider; import de.danoeh.antennapod.util.menuhandler.FeedItemMenuHandler; -import org.apache.commons.lang3.StringEscapeUtils; -import org.apache.commons.lang3.Validate; - -import java.util.Collection; -import java.util.List; -import java.util.concurrent.Callable; /** * Shows information about a specific FeedItem and provides actions like playing, downloading, etc. @@ -150,12 +152,9 @@ public class FeedItemDialog extends Dialog { @Override public void onClick(View v) { - FeedMedia media = item.getMedia(); - if (media == null) { - return; - } actionButtonCallback.onActionButtonPressed(item); - if (media.isDownloaded()) { + FeedMedia media = item.getMedia(); + if (media != null && media.isDownloaded()) { // playback was started, dialog should close itself dismiss(); } @@ -169,16 +168,17 @@ public class FeedItemDialog extends Dialog { { @Override public void onClick(View v) { - FeedMedia media = item.getMedia(); - if (media == null) { - return; - } - - if (!media.isDownloaded()) { - DBTasks.playMedia(getContext(), media, true, true, true); - dismiss(); - } else { - DBWriter.deleteFeedMediaOfItem(getContext(), media.getId()); + if (item.hasMedia()) { + FeedMedia media = item.getMedia(); + if (!media.isDownloaded()) { + DBTasks.playMedia(getContext(), media, true, true, true); + dismiss(); + } else { + DBWriter.deleteFeedMediaOfItem(getContext(), media.getId()); + } + } else if (item.getLink() != null) { + Uri uri = Uri.parse(item.getLink()); + getContext().startActivity(new Intent(Intent.ACTION_VIEW, uri)); } } } @@ -189,7 +189,13 @@ public class FeedItemDialog extends Dialog { public void onClick(View v) { popupMenu.getMenu().clear(); popupMenu.inflate(R.menu.feeditem_dialog); - FeedItemMenuHandler.onPrepareMenu(popupMenuInterface, item, true, queue); + if (item.hasMedia()) { + FeedItemMenuHandler.onPrepareMenu(popupMenuInterface, item, true, queue); + } else { + // these are already available via button1 and button2 + FeedItemMenuHandler.onPrepareMenu(popupMenuInterface, item, true, queue, + R.id.mark_read_item, R.id.visit_website_item); + } popupMenu.show(); } } @@ -231,9 +237,26 @@ public class FeedItemDialog extends Dialog { } FeedMedia media = item.getMedia(); if (media == null) { - header.setVisibility(View.GONE); + TypedArray drawables = getContext().obtainStyledAttributes(new int[]{R.attr.navigation_accept, + R.attr.location_web_site}); + + if (!item.isRead()) { + butAction1.setImageDrawable(drawables.getDrawable(0)); + butAction1.setContentDescription(getContext().getString(R.string.mark_read_label)); + butAction1.setVisibility(View.VISIBLE); + } else { + butAction1.setVisibility(View.INVISIBLE); + } + + if (item.getLink() != null) { + butAction2.setImageDrawable(drawables.getDrawable(1)); + butAction2.setContentDescription(getContext().getString(R.string.visit_website_label)); + } else { + butAction2.setEnabled(false); + } + + drawables.recycle(); } else { - header.setVisibility(View.VISIBLE); boolean isDownloading = DownloadRequester.getInstance().isDownloadingFile(media); TypedArray drawables = getContext().obtainStyledAttributes(new int[]{R.attr.av_play, R.attr.av_download, R.attr.action_stream, R.attr.content_discard, R.attr.navigation_cancel}); @@ -390,7 +413,7 @@ public class FeedItemDialog extends Dialog { /** * Used to save the FeedItemDialog's state across configuration changes - * */ + */ public static class FeedItemDialogSavedInstance { final FeedItem item; final QueueAccess queueAccess; -- cgit v1.2.3