From 61f00d7332e87fec363f391c788b09dcffb228c4 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 19 Aug 2022 20:27:52 +0200 Subject: When multiple funding tags reference the same URL, display the one with longer title --- .../antennapod/fragment/FeedInfoFragment.java | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'app') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java index bca0f8640..909d082af 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java @@ -57,7 +57,7 @@ import io.reactivex.schedulers.Schedulers; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; -import java.util.HashSet; +import java.util.Iterator; /** * Displays information about a feed. @@ -236,13 +236,24 @@ public class FeedInfoFragment extends Fragment implements Toolbar.OnMenuItemClic } else { lblSupport.setVisibility(View.VISIBLE); ArrayList fundingList = feed.getPaymentLinks(); + + // Filter for duplicates, but keep items in the order that they have in the feed. + Iterator i = fundingList.iterator(); + while (i.hasNext()) { + FeedFunding funding = i.next(); + for (FeedFunding other : fundingList) { + if (TextUtils.equals(other.url, funding.url)) { + if (other.content != null && funding.content != null + && other.content.length() > funding.content.length()) { + i.remove(); + break; + } + } + } + } + StringBuilder str = new StringBuilder(); - HashSet seen = new HashSet(); for (FeedFunding funding : fundingList) { - if (seen.contains(funding.url)) { - continue; - } - seen.add(funding.url); str.append(funding.content.isEmpty() ? getContext().getResources().getString(R.string.support_podcast) : funding.content).append(" ").append(funding.url); -- cgit v1.2.3