aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java')
-rwxr-xr-xapp/src/main/java/org/rssin/android/FeedItemAdapter.java59
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/android/FilterActivity.java87
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/android/FilterSettingsActivity.java1
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/android/UnifiedInboxActivity.java52
-rwxr-xr-x[-rw-r--r--]app/src/main/java/org/rssin/rssin/Feed.java1
-rwxr-xr-xapp/src/main/java/org/rssin/rssin/Filter.java6
6 files changed, 116 insertions, 90 deletions
diff --git a/app/src/main/java/org/rssin/android/FeedItemAdapter.java b/app/src/main/java/org/rssin/android/FeedItemAdapter.java
new file mode 100755
index 0000000..5ecb820
--- /dev/null
+++ b/app/src/main/java/org/rssin/android/FeedItemAdapter.java
@@ -0,0 +1,59 @@
+package org.rssin.android;
+
+/**
+ * @author Jos.
+ */
+
+import android.support.v7.widget.RecyclerView;
+import android.text.Html;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import org.rssin.rss.FeedItem;
+import org.rssin.rssin.R;
+
+import java.util.List;
+
+public class FeedItemAdapter extends RecyclerView.Adapter<FeedItemAdapter.FeedItemHolder> {
+ List<FeedItem> feedItems;
+
+ public FeedItemAdapter(List<FeedItem> objects) {
+ feedItems = objects;
+ }
+
+ @Override
+ public FeedItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.
+ from(parent.getContext()).
+ inflate(R.layout.item_feeditem, parent, false);
+ return new FeedItemHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(FeedItemHolder holder, int position) {
+ FeedItem item = feedItems.get(position);
+ holder.title.setText(item.getTitle());
+ holder.summary.setText(Html.fromHtml(item.getDescription()));
+ }
+
+ @Override
+ public int getItemCount() {
+ return feedItems.size();
+ }
+
+ /**
+ * TextViews holder
+ */
+ static class FeedItemHolder extends RecyclerView.ViewHolder {
+ TextView title;
+ TextView summary;
+
+ public FeedItemHolder(View itemView) {
+ super(itemView);
+ title = (TextView) itemView.findViewById(R.id.feeditem_title);
+ summary = (TextView) itemView.findViewById(R.id.feeditem_summary);
+ }
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/org/rssin/android/FilterActivity.java b/app/src/main/java/org/rssin/android/FilterActivity.java
index 6c827d1..252101a 100644..100755
--- a/app/src/main/java/org/rssin/android/FilterActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterActivity.java
@@ -1,21 +1,13 @@
package org.rssin.android;
import android.app.Activity;
-import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
-import android.text.Html;
-import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.TextView;
import com.android.volley.VolleyError;
@@ -34,15 +26,13 @@ public class FilterActivity extends ActionBarActivity {
private Filter filter;
private RecyclerView mRecyclerView;
- private RecyclerView.Adapter mAdapter;
- private RecyclerView.LayoutManager mLayoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter);
- mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
- mLayoutManager = new LinearLayoutManager(this);
+ mRecyclerView = (RecyclerView) findViewById(R.id.filter_feeditems);
+ RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
try {
@@ -60,7 +50,6 @@ public class FilterActivity extends ActionBarActivity {
setTitle(filter.getTitle());
- final Activity activity = this;
FeedLoaderAndSorter loaderAndSorter = new FeedLoaderAndSorter(filter);
loaderAndSorter.getFilteredFeedItems(new VolleyFetcher(this), new FallibleListener<List<FeedItem>, VolleyError>() {
@Override
@@ -107,76 +96,4 @@ public class FilterActivity extends ActionBarActivity {
Frontend.warning(this, R.string.error_save_feedsorter, e);
}
}
-
- /**
- * Custom ArrayAdapter to display Keywords
- */
- private static class FeedItemAdapter extends RecyclerView.Adapter<FeedItemAdapter.KeywordHolder> {
- List<FeedItem> feedItems;
-
- public FeedItemAdapter(List<FeedItem> objects) {
- feedItems = objects;
- }
-
-// @Override
-// public View getView(int position, View convertView, ViewGroup parent) {
-// View row = convertView;
-// KeywordHolder holder = null;
-//
-// if (row == null) {
-// LayoutInflater inflater = ((Activity) context).getLayoutInflater();
-// row = inflater.inflate(layoutResourceId, parent, false);
-//
-// holder = new KeywordHolder();
-// holder.title = (TextView) row.findViewById(R.id.feeditem_title);
-// holder.summary = (TextView) row.findViewById(R.id.feeditem_summary);
-//
-// row.setTag(holder);
-// } else {
-// holder = (KeywordHolder) row.getTag();
-// }
-//
-// FeedItem feedItem = feedItems.get(position);
-// holder.title.setText(feedItem.getTitle());
-// holder.summary.setText(Html.fromHtml(feedItem.getDescription()));
-//
-// return row;
-// }
-
- @Override
- public KeywordHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- View itemView = LayoutInflater.
- from(parent.getContext()).
- inflate(R.layout.item_feeditem, parent, false);
- return new KeywordHolder(itemView);
- }
-
- @Override
- public void onBindViewHolder(KeywordHolder holder, int position) {
- FeedItem item = feedItems.get(position);
- holder.title.setText(item.getTitle());
- holder.summary.setText(item.getDescription());
- }
-
- @Override
- public int getItemCount() {
- return feedItems.size();
- }
-
- /**
- * TextViews holder
- */
- static class KeywordHolder extends RecyclerView.ViewHolder {
- TextView title;
- TextView summary;
-
- public KeywordHolder(View itemView) {
- super(itemView);
- title = (TextView) itemView.findViewById(R.id.feeditem_title);
- summary = (TextView) itemView.findViewById(R.id.feeditem_summary);
- }
- }
-
-
- }
}
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index b896689..ac5538f 100644..100755
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -258,6 +258,7 @@ public class FilterSettingsActivity extends ActionBarActivity {
try {
filter.store(DefaultStorageProvider.getInstance());
+ feed.store(DefaultStorageProvider.getInstance());
feedAdapter.notifyDataSetChanged();
editText.setText("");
} catch (Exception e) {
diff --git a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java
index d99a1e0..54dab68 100644..100755
--- a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java
+++ b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java
@@ -3,10 +3,22 @@ package org.rssin.android;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
+import com.android.volley.VolleyError;
+
+import org.rssin.listener.FallibleListener;
+import org.rssin.rss.FeedItem;
+import org.rssin.rssin.FeedLoaderAndSorter;
+import org.rssin.rssin.Filter;
import org.rssin.rssin.R;
+import org.rssin.rssin.UnifiedFilterLoader;
+
+import java.io.IOException;
+import java.util.List;
/**
* Unified view of all filters
@@ -14,10 +26,50 @@ import org.rssin.rssin.R;
*/
public class UnifiedInboxActivity extends ActionBarActivity {
+ private FiltersList filtersList;
+ private RecyclerView mRecyclerView;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_unified_inbox);
+
+ mRecyclerView = (RecyclerView) findViewById(R.id.unified_inbox_feeditems);
+ RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this);
+ mRecyclerView.setLayoutManager(mLayoutManager);
+
+ try {
+ filtersList = FiltersList.getInstance(this);
+ } catch (IOException e) {
+ Frontend.error(this, R.string.error_load_filters, e);
+ }
+
+ Intent intent = getIntent();
+ int filterHashCode = intent.getIntExtra("filter", -1);
+
+ // @todo Check on -1? Shouldn't happen anyway.
+ for(Filter filter : filtersList.getFilters()) {
+ filter.ensureFeedSorter(DefaultStorageProvider.getInstance(this));
+ filter.ensureFeeds(DefaultStorageProvider.getInstance(this));
+ }
+
+ setTitle("Inbox");
+
+ UnifiedFilterLoader loaderAndSorter = new UnifiedFilterLoader(filtersList.getFilters());
+ loaderAndSorter.getFilteredFeedItems(new VolleyFetcher(this), new FallibleListener<List<FeedItem>, VolleyError>() {
+ @Override
+ public void onReceive(List<FeedItem> data) {
+
+ FeedItemAdapter feedItemAdapter = new FeedItemAdapter(data);
+ mRecyclerView.setAdapter(feedItemAdapter);
+ mRecyclerView.setHasFixedSize(true);
+ }
+
+ @Override
+ public void onError(VolleyError error) {
+ Frontend.error(getBaseContext(), R.string.error_net_load);
+ }
+ });
}
@Override
diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java
index b5c4e2e..ea7e310 100644..100755
--- a/app/src/main/java/org/rssin/rssin/Feed.java
+++ b/app/src/main/java/org/rssin/rssin/Feed.java
@@ -98,6 +98,7 @@ public class Feed implements Storable, Comparable<Feed> {
if (storageKey == null) {
storageKey = storageProvider.uniqueKey();
}
+
storageProvider.store(storageKey, this);
}
diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java
index 8fd9c7b..6d2c11f 100755
--- a/app/src/main/java/org/rssin/rssin/Filter.java
+++ b/app/src/main/java/org/rssin/rssin/Filter.java
@@ -91,11 +91,7 @@ public class Filter implements Storable, Comparable<Filter> {
* @return
*/
public String getKeywordsAsString() {
- Keyword[] keywords = new Keyword[this.keywords.size()];
- int i = 0;
- for (Keyword keyword : this.keywords) {
- keywords[i++] = keyword;
- }
+ Keyword[] keywords = this.keywords.toArray(new Keyword[this.keywords.size()]);
return TextUtils.join(", ", keywords);
}