summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2022-08-19 20:27:52 +0200
committerByteHamster <info@bytehamster.com>2022-08-20 12:22:36 +0200
commit61f00d7332e87fec363f391c788b09dcffb228c4 (patch)
treec9a07a0c429e6ab8660131a367db278b4cccd9b8 /app
parente96f929f0a4e1cb80f3d212e19cee28cc0b063ff (diff)
downloadAntennaPod-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.java23
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);