diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/fox/ttrss/FeedsFragment.java | 40 | ||||
-rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 9 |
2 files changed, 45 insertions, 4 deletions
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<Feed> {
+
+ @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<Feed> {
+
+ @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<Feed> 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 |