aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorCamil Staps2015-05-25 22:33:37 +0200
committerCamil Staps2015-05-25 22:33:37 +0200
commite74c33848797eaccce3c51d33d478936ca7701f0 (patch)
treeb9d00b63d7be2ed2eedca1d90c98464b3ab3321c /app/src/main/java
parentDelete feeds (diff)
SortedArrayAdapter
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/org/rssin/android/FeedsActivity.java8
-rw-r--r--app/src/main/java/org/rssin/android/FeedsList.java6
-rwxr-xr-xapp/src/main/java/org/rssin/android/FiltersActivity.java8
-rwxr-xr-xapp/src/main/java/org/rssin/android/FiltersList.java6
-rw-r--r--app/src/main/java/org/rssin/android/SortedArrayAdapter.java45
-rw-r--r--app/src/main/java/org/rssin/rssin/Feed.java6
-rwxr-xr-xapp/src/main/java/org/rssin/rssin/Filter.java7
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;