diff options
author | ByteHamster <info@bytehamster.com> | 2022-08-19 20:27:52 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2022-08-20 12:22:36 +0200 |
commit | 61f00d7332e87fec363f391c788b09dcffb228c4 (patch) | |
tree | c9a07a0c429e6ab8660131a367db278b4cccd9b8 /app | |
parent | e96f929f0a4e1cb80f3d212e19cee28cc0b063ff (diff) | |
download | AntennaPod-61f00d7332e87fec363f391c788b09dcffb228c4.zip |
When multiple funding tags reference the same URL, display the one with longer title
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java | 23 |
1 files changed, 17 insertions, 6 deletions
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<FeedFunding> fundingList = feed.getPaymentLinks(); + + // Filter for duplicates, but keep items in the order that they have in the feed. + Iterator<FeedFunding> 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<String> seen = new HashSet<String>(); 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); |