summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-05-16 09:16:26 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-05-16 09:17:08 +0300
commitc86d0399ec9b9f51d99f15470a268442a2ac7405 (patch)
treefc7cc14277f26281bad87f643ad232b34e068cf3
parent1be5611e66d8d4a152f1d431d7a7d76b2888e3f3 (diff)
rework getPositionOf to use intstream
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java22
1 files changed, 11 insertions, 11 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
index 65581da6..680a62a4 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
@@ -49,6 +49,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
+import java.util.stream.IntStream;
public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeListener,
LoaderManager.LoaderCallbacks<JsonElement> {
@@ -234,7 +235,7 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL
if (itemId == R.id.browse_headlines) {
Feed tmpFeed = new Feed(feed);
- if (neverOpenHeadlines(feed))
+ if (neverOpenHeadlines(feed) && !tmpFeed.always_open_headlines)
tmpFeed.always_open_headlines = true;
m_activity.onFeedSelected(tmpFeed);
@@ -517,7 +518,7 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL
} else {
Feed tmpFeed = new Feed(feed);
- if (neverOpenHeadlines(feed))
+ if (neverOpenHeadlines(feed) && !tmpFeed.always_open_headlines)
tmpFeed.always_open_headlines = m_prefs.getBoolean("browse_cats_like_feeds", false);
m_activity.onFeedSelected(tmpFeed);
@@ -542,19 +543,18 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL
}
}
- /** TODO there has to be a better way -- Feed.equals()? */
public int getPositionOf(Feed feed) {
List<Feed> feeds = getCurrentList();
- Optional<Feed> maybeFeed = feeds.stream().filter(a -> a.id == feed.id && a.is_cat == feed.is_cat).findFirst();
+ return IntStream.range(0, feeds.size())
+ .sequential()
+ .filter(i -> {
+ Feed f = feeds.get(i);
- if (maybeFeed.isPresent()) {
- Feed foundFeed = maybeFeed.get();
-
- return feeds.indexOf(foundFeed);
- }
-
- return -1;
+ return f.id == feed.id && f.is_cat == feed.is_cat;
+ })
+ .findFirst()
+ .orElse(-1);
}
}