diff options
author | Camil Staps | 2015-05-25 22:33:37 +0200 |
---|---|---|
committer | Camil Staps | 2015-05-25 22:33:37 +0200 |
commit | e74c33848797eaccce3c51d33d478936ca7701f0 (patch) | |
tree | b9d00b63d7be2ed2eedca1d90c98464b3ab3321c /app/src/main/java | |
parent | Delete feeds (diff) |
SortedArrayAdapter
Diffstat (limited to 'app/src/main/java')
7 files changed, 74 insertions, 12 deletions
diff --git a/app/src/main/java/org/rssin/android/FeedsActivity.java b/app/src/main/java/org/rssin/android/FeedsActivity.java index 76dafee..d4b6b6e 100644 --- a/app/src/main/java/org/rssin/android/FeedsActivity.java +++ b/app/src/main/java/org/rssin/android/FeedsActivity.java @@ -15,7 +15,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.AdapterView; -import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; @@ -142,17 +141,16 @@ public class FeedsActivity extends ActionBarActivity { /** * Custom ArrayAdapter to display feeds with our own menu item */ - private static class FeedAdapter extends ArrayAdapter<Feed> { + private static class FeedAdapter extends SortedArrayAdapter<Feed> { Context context; int layoutResourceId; - List<Feed> feeds; public FeedAdapter(Context context, int resource, List<Feed> objects) { super(context, resource, objects); this.context = context; layoutResourceId = resource; - feeds = objects; + items = objects; } @Override @@ -173,7 +171,7 @@ public class FeedsActivity extends ActionBarActivity { holder = (FeedHolder) row.getTag(); } - Feed feed = feeds.get(position); + Feed feed = items.get(position); holder.title.setText(feed.getTitle()); holder.url.setText(feed.getURL().toString()); diff --git a/app/src/main/java/org/rssin/android/FeedsList.java b/app/src/main/java/org/rssin/android/FeedsList.java index e96342a..6a0b7fc 100644 --- a/app/src/main/java/org/rssin/android/FeedsList.java +++ b/app/src/main/java/org/rssin/android/FeedsList.java @@ -6,6 +6,7 @@ import android.util.Log; import org.rssin.rssin.Feed; import java.io.IOException; +import java.util.Collections; import java.util.List; /** @@ -27,6 +28,7 @@ class FeedsList { protected FeedsList(Context context) throws IOException { storageProvider = DefaultStorageProvider.getInstance(context); feeds = storageProvider.allFeeds(); + sort(); } public static FeedsList getInstance(Context context) throws IOException { @@ -43,6 +45,10 @@ class FeedsList { return feeds; } + public void sort() { + Collections.sort(feeds); + } + /** * Save all filters * @throws Exception if serializing or saving failed diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java index ca9337b..f199f1d 100755 --- a/app/src/main/java/org/rssin/android/FiltersActivity.java +++ b/app/src/main/java/org/rssin/android/FiltersActivity.java @@ -15,7 +15,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.AdapterView; -import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; @@ -170,17 +169,16 @@ public class FiltersActivity extends ActionBarActivity { /** * Custom ArrayAdapter to display filters with our own menu item */ - private static class FilterAdapter extends ArrayAdapter<Filter> { + private static class FilterAdapter extends SortedArrayAdapter<Filter> { Context context; int layoutResourceId; - List<Filter> filters; public FilterAdapter(Context context, int resource, List<Filter> objects) { super(context, resource, objects); this.context = context; layoutResourceId = resource; - filters = objects; + items = objects; } @Override @@ -201,7 +199,7 @@ public class FiltersActivity extends ActionBarActivity { holder = (FilterHolder) row.getTag(); } - Filter filter = filters.get(position); + Filter filter = items.get(position); holder.title.setText(filter.getTitle()); holder.keywords.setText(filter.getKeywordsAsString()); diff --git a/app/src/main/java/org/rssin/android/FiltersList.java b/app/src/main/java/org/rssin/android/FiltersList.java index aa2a92b..6c1b8c9 100755 --- a/app/src/main/java/org/rssin/android/FiltersList.java +++ b/app/src/main/java/org/rssin/android/FiltersList.java @@ -5,6 +5,7 @@ import android.content.Context; import org.rssin.rssin.Filter; import java.io.IOException; +import java.util.Collections; import java.util.List; /** @@ -26,6 +27,7 @@ class FiltersList { protected FiltersList(Context context) throws IOException { storageProvider = DefaultStorageProvider.getInstance(context); filters = storageProvider.allFilters(); + sort(); } public static FiltersList getInstance(Context context) throws IOException { @@ -42,6 +44,10 @@ class FiltersList { return filters; } + public void sort() { + Collections.sort(filters); + } + /** * Save all filters * @throws Exception if serializing or saving failed diff --git a/app/src/main/java/org/rssin/android/SortedArrayAdapter.java b/app/src/main/java/org/rssin/android/SortedArrayAdapter.java new file mode 100644 index 0000000..d4161ba --- /dev/null +++ b/app/src/main/java/org/rssin/android/SortedArrayAdapter.java @@ -0,0 +1,45 @@ +package org.rssin.android; + +import android.content.Context; +import android.widget.ArrayAdapter; + +import java.util.Collections; +import java.util.List; + +/** + * Created by camilstaps on 25-5-15. + */ +abstract class SortedArrayAdapter<T extends Comparable<T>> extends ArrayAdapter<T> { + + protected List<T> items; + + public SortedArrayAdapter(Context context, int resource) { + super(context, resource); + } + + public SortedArrayAdapter(Context context, int resource, List<T> objects) { + super(context, resource, objects); + } + + public SortedArrayAdapter(Context context, int resource, T[] objects) { + super(context, resource, objects); + } + + public SortedArrayAdapter(Context context, int resource, int textViewResourceId) { + super(context, resource, textViewResourceId); + } + + public SortedArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects) { + super(context, resource, textViewResourceId, objects); + } + + public SortedArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) { + super(context, resource, textViewResourceId, objects); + } + + @Override + public void notifyDataSetChanged() { + Collections.sort(items); + super.notifyDataSetChanged(); + } +} diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java index 500feb6..4690d37 100644 --- a/app/src/main/java/org/rssin/rssin/Feed.java +++ b/app/src/main/java/org/rssin/rssin/Feed.java @@ -12,7 +12,7 @@ import java.net.URL; * Feed holder * @author Camil Staps */ -public class Feed implements Storable { +public class Feed implements Storable, Comparable<Feed> { private static int serialVersionUID = 0; /** @@ -100,4 +100,8 @@ public class Feed implements Storable { storageProvider.store(storageKey, this); } + @Override + public int compareTo(Feed another) { + return title.compareTo(another.title); + } } diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java index 85a296c..b623b20 100755 --- a/app/src/main/java/org/rssin/rssin/Filter.java +++ b/app/src/main/java/org/rssin/rssin/Filter.java @@ -14,7 +14,7 @@ import java.util.List; * Filter holder * @author Camil Staps */ -public class Filter implements Storable { +public class Filter implements Storable, Comparable<Filter> { private static final long serialVersionUID = 0; @@ -142,6 +142,11 @@ public class Filter implements Storable { thread.start(); } + @Override + public int compareTo(Filter another) { + return title.compareTo(another.title); + } + private class FeedSorterStorer implements Runnable { private final Object storageKey; private final StorageProvider storageProvider; |