Merge pull request #3529 from orionlee/share_episode_url_handle_empty_link_3527
bugfix: Share Episode URL - handle empty link
This commit is contained in:
commit
b229476e35
@ -64,6 +64,7 @@ import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
@ -504,7 +505,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
|
||||
private static String getWebsiteLinkWithFallback(Playable media) {
|
||||
if (media == null) {
|
||||
return null;
|
||||
} else if (media.getWebsiteLink() != null) {
|
||||
} else if (StringUtils.isNotBlank(media.getWebsiteLink())) {
|
||||
return media.getWebsiteLink();
|
||||
} else if (media instanceof FeedMedia) {
|
||||
return FeedItemUtil.getLinkWithFallback(((FeedMedia)media).getItem());
|
||||
|
@ -2,12 +2,13 @@ package de.danoeh.antennapod.menuhandler;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
@ -42,6 +43,10 @@ public class FeedMenuHandler {
|
||||
Log.d(TAG, "Preparing options menu");
|
||||
|
||||
menu.findItem(R.id.refresh_complete_item).setVisible(selectedFeed.isPaged());
|
||||
if (StringUtils.isBlank(selectedFeed.getLink())) {
|
||||
menu.findItem(R.id.visit_website_item).setVisible(false);
|
||||
menu.findItem(R.id.share_link_item).setVisible(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package de.danoeh.antennapod.core.util;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import de.danoeh.antennapod.core.feed.FeedItem;
|
||||
@ -45,9 +47,9 @@ public class FeedItemUtil {
|
||||
public static String getLinkWithFallback(FeedItem item) {
|
||||
if (item == null) {
|
||||
return null;
|
||||
} else if (item.getLink() != null) {
|
||||
} else if (StringUtils.isNotBlank(item.getLink())) {
|
||||
return item.getLink();
|
||||
} else if (item.getFeed() != null) {
|
||||
} else if (StringUtils.isNotBlank(item.getFeed().getLink())) {
|
||||
return item.getFeed().getLink();
|
||||
}
|
||||
return null;
|
||||
|
@ -0,0 +1,73 @@
|
||||
package de.danoeh.antennapod.core.util;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
import org.junit.runners.Parameterized.Parameters;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
import de.danoeh.antennapod.core.feed.Feed;
|
||||
import de.danoeh.antennapod.core.feed.FeedItem;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class FeedItemUtilTest {
|
||||
|
||||
|
||||
@RunWith(Parameterized.class)
|
||||
public static class LinkWithFallbackTest {
|
||||
private static final String FEED_LINK = "http://example.com";
|
||||
private static final String ITEM_LINK = "http://example.com/feedItem1";
|
||||
|
||||
@Parameters
|
||||
public static Collection<Object[]> data() {
|
||||
return Arrays.asList(new Object[][] {
|
||||
{ "average",
|
||||
FEED_LINK, ITEM_LINK, ITEM_LINK },
|
||||
{ "null item link - fallback to feed",
|
||||
FEED_LINK, null, FEED_LINK},
|
||||
{ "empty item link - same as null",
|
||||
FEED_LINK, "", FEED_LINK},
|
||||
{ "blank item link - same as null",
|
||||
FEED_LINK, " ", FEED_LINK},
|
||||
{ "fallback, but feed link is null too",
|
||||
null, null, null },
|
||||
{ "fallback - but empty feed link - same as null",
|
||||
"", null, null},
|
||||
{ "fallback - but blank feed link - same as null",
|
||||
" ", null, null}
|
||||
});
|
||||
}
|
||||
|
||||
private final String msg;
|
||||
private final String feedLink;
|
||||
private final String itemLink;
|
||||
private final String expected;
|
||||
|
||||
public LinkWithFallbackTest(String msg, String feedLink, String itemLink, String expected) {
|
||||
this.msg = msg;
|
||||
this.feedLink = feedLink;
|
||||
this.itemLink = itemLink;
|
||||
this.expected = expected;
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testLinkWithFallback() {
|
||||
String actual = FeedItemUtil.getLinkWithFallback(createFeedItem(feedLink, itemLink));
|
||||
assertEquals(msg, expected, actual);
|
||||
}
|
||||
|
||||
private static FeedItem createFeedItem(String feedLink, String itemLink) {
|
||||
Feed feed = new Feed();
|
||||
feed.setLink(feedLink);
|
||||
FeedItem feedItem = new FeedItem();
|
||||
feedItem.setLink(itemLink);
|
||||
feedItem.setFeed(feed);
|
||||
feed.setItems(Arrays.asList(feedItem));
|
||||
return feedItem;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user