From 10672b110fb20c40ec867f4ded87be8b6b826b17 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 26 Nov 2011 09:31:14 +0300 Subject: add preference to sort feeds by unread --- src/org/fox/ttrss/FeedsFragment.java | 40 +++++++++++++++++++++++++++++++++--- src/org/fox/ttrss/MainActivity.java | 9 +++++++- 2 files changed, 45 insertions(+), 4 deletions(-) (limited to 'src/org/fox') diff --git a/src/org/fox/ttrss/FeedsFragment.java b/src/org/fox/ttrss/FeedsFragment.java index 9777f9b2..d4480dba 100644 --- a/src/org/fox/ttrss/FeedsFragment.java +++ b/src/org/fox/ttrss/FeedsFragment.java @@ -3,6 +3,7 @@ package org.fox.ttrss; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -39,6 +40,28 @@ public class FeedsFragment extends Fragment implements OnItemClickListener { public void onFeedSelected(Feed feed); } + class FeedUnreadComparator implements Comparator { + + @Override + public int compare(Feed a, Feed b) { + if (a.unread != b.unread) + return b.unread - a.unread; + else + return a.title.compareTo(b.title); + } + + } + + + class FeedTitleComparator implements Comparator { + + @Override + public int compare(Feed a, Feed b) { + return a.title.compareTo(b.title); + } + + } + public void showLoading(boolean show) { View v = getView(); @@ -170,9 +193,7 @@ public class FeedsFragment extends Fragment implements OnItemClickListener { for (Feed f : feeds) m_feeds.add(f); - Collections.sort(m_feeds); - - m_adapter.notifyDataSetInvalidated(); + sortFeeds(); showLoading(false); } @@ -260,4 +281,17 @@ public class FeedsFragment extends Fragment implements OnItemClickListener { return v; } } + + public void sortFeeds() { + Comparator cmp; + + if (m_prefs.getBoolean("sort_feeds_by_unread", false)) { + cmp = new FeedUnreadComparator(); + } else { + cmp = new FeedTitleComparator(); + } + + Collections.sort(m_feeds, cmp); + m_adapter.notifyDataSetInvalidated(); + } } diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index f815d974..1c7207bf 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -145,7 +145,14 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe Intent refresh = new Intent(this, MainActivity.class); startActivity(refresh); finish(); - } + } else { + FeedsFragment frag = (FeedsFragment)getSupportFragmentManager().findFragmentById(R.id.feeds_fragment); + + if (frag != null) { + frag.sortFeeds(); + } + } + } @Override -- cgit v1.2.3-54-g00ecf