diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-16 09:16:26 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-16 09:17:08 +0300 |
| commit | c86d0399ec9b9f51d99f15470a268442a2ac7405 (patch) | |
| tree | fc7cc14277f26281bad87f643ad232b34e068cf3 /org.fox.ttrss | |
| parent | 1be5611e66d8d4a152f1d431d7a7d76b2888e3f3 (diff) | |
rework getPositionOf to use intstream
Diffstat (limited to 'org.fox.ttrss')
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java | 22 |
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); } } |