aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorHalzyn2015-06-02 15:46:05 +0200
committerHalzyn2015-06-02 15:46:05 +0200
commitc39d5720ef2fabfb57575a9d6c55406f1e451dab (patch)
treeb06e4dc000a5467647d99e81309292ff71a338a0 /app/src
parentOnClick implemented for feed items (diff)
parentMerge branch 'app' (diff)
merge
Diffstat (limited to 'app/src')
-rwxr-xr-xapp/src/main/java/org/rssin/android/FilterSettingsActivity.java91
-rwxr-xr-xapp/src/main/java/org/rssin/android/FiltersActivity.java6
-rwxr-xr-xapp/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java36
-rwxr-xr-xapp/src/main/java/org/rssin/rssin/Filter.java33
-rw-r--r--app/src/main/java/org/rssin/rssin/Keyword.java57
-rw-r--r--app/src/main/res/layout/item_filter.xml2
-rw-r--r--app/src/main/res/layout/item_filter_settings_keyword.xml14
-rw-r--r--app/src/main/res/values/strings.xml1
8 files changed, 7 insertions, 233 deletions
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index 11aed6d..296d2e5 100755
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -18,7 +18,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.LinearLayout;
import android.widget.ListView;
@@ -26,7 +25,6 @@ import android.widget.TextView;
import org.rssin.rssin.Feed;
import org.rssin.rssin.Filter;
-import org.rssin.rssin.Keyword;
import org.rssin.rssin.R;
import java.io.IOException;
@@ -38,7 +36,6 @@ public class FilterSettingsActivity extends ActionBarActivity {
private FiltersList filtersList;
private Filter filter;
- private KeywordAdapter keywordAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -58,27 +55,6 @@ public class FilterSettingsActivity extends ActionBarActivity {
filter = filtersList.getFilterFromHashCode(filterHashCode);
setTitle();
-
- keywordAdapter = new KeywordAdapter(this, R.layout.item_filter_settings_keyword, filter.getKeywords());
- ListView keywordsListView = (ListView) findViewById(R.id.filter_settings_feeds_list);
- keywordsListView.setAdapter(keywordAdapter);
- keywordsListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
- @Override
- public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
- Keyword keyword = keywordAdapter.getItem(position);
- try {
- filter.getKeywords().remove(keyword);
- filtersList.save();
- keywordAdapter.notifyDataSetChanged();
- return true;
- } catch (Exception e) {
- filter.getKeywords().add(keyword);
- keywordAdapter.notifyDataSetChanged();
- Frontend.error(getBaseContext(), R.string.error_save_filters, e);
- return false;
- }
- }
- });
}
@Override
@@ -184,27 +160,6 @@ public class FilterSettingsActivity extends ActionBarActivity {
}
/**
- * Add keyword
- * @param v ignored, used because this is an onClick method
- */
- public void addKeyword(View v) {
- EditText editText = (EditText) findViewById(R.id.filter_settings_add_keyword);
- String keyword = editText.getText().toString();
-
- Keyword k = new Keyword(keyword);
- filter.getKeywords().add(k);
- try {
- filter.store(DefaultStorageProvider.getInstance());
- keywordAdapter.notifyDataSetChanged();
- editText.setText("");
- } catch (Exception e) {
- filter.getKeywords().remove(k);
- keywordAdapter.notifyDataSetChanged();
- Frontend.error(this, R.string.error_save_filters, e);
- }
- }
-
- /**
* Custom Dialog to display & edit feeds
*/
public static class FeedsDialogFragment extends DialogFragment {
@@ -350,50 +305,4 @@ public class FilterSettingsActivity extends ActionBarActivity {
}
}
- /**
- * Custom ArrayAdapter to display Keywords
- */
- private static class KeywordAdapter extends ArrayAdapter<Keyword> {
- Context context;
- int layoutResourceId;
- List<Keyword> keywords;
-
- public KeywordAdapter(Context context, int resource, List<Keyword> objects) {
- super(context, resource, objects);
- this.context = context;
- layoutResourceId = resource;
- keywords = 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.filter_settings_keyword_item_title);
-
- row.setTag(holder);
- } else {
- holder = (KeywordHolder) row.getTag();
- }
-
- Keyword keyword = keywords.get(position);
- holder.title.setText(keyword.getKeyword());
-
- return row;
- }
-
- /**
- * TextViews holder
- */
- private static class KeywordHolder {
- TextView title;
- }
- }
-
}
diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java
index 6efb8a9..63887fe 100755
--- a/app/src/main/java/org/rssin/android/FiltersActivity.java
+++ b/app/src/main/java/org/rssin/android/FiltersActivity.java
@@ -202,7 +202,7 @@ public class FiltersActivity extends ActionBarActivity {
holder = new FilterHolder();
holder.title = (TextView) row.findViewById(R.id.filter_item_title);
- holder.keywords = (TextView) row.findViewById(R.id.filter_item_keywords);
+ holder.feeds = (TextView) row.findViewById(R.id.filter_item_feeds);
row.setTag(holder);
} else {
@@ -211,7 +211,7 @@ public class FiltersActivity extends ActionBarActivity {
Filter filter = items.get(position);
holder.title.setText(filter.getTitle());
- holder.keywords.setText(filter.getKeywordsAsString());
+ holder.feeds.setText(filter.getFeeds().size() + " " + context.getString(R.string.feeds));
return row;
}
@@ -221,7 +221,7 @@ public class FiltersActivity extends ActionBarActivity {
*/
private static class FilterHolder {
TextView title;
- TextView keywords;
+ TextView feeds;
}
}
diff --git a/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java b/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java
index 745e944..7ad0001 100755
--- a/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java
+++ b/app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java
@@ -39,9 +39,7 @@ public class FeedLoaderAndSorter {
@Override
public void onReceive(Object data) {
for (FeedItem item : loader.getFeed().getPosts()) {
- if(matchesKeyword(item)) {
- resultingItems.add(item);
- }
+ resultingItems.add(item);
}
sorter.sortItems(resultingItems);
@@ -81,38 +79,6 @@ public class FeedLoaderAndSorter {
}
}
- /**
- * @todo Why do we check on author?
- * @todo Should we check only on whole words / give whole word occurences higher relevance?
- * @todo At least only whole words for categories; otherwise Port connaisseurs will read only Sport news
- * @param item
- * @return
- */
- private boolean matchesKeyword(FeedItem item)
- {
- for(Keyword keyword : filter.getKeywords())
- {
- String word = keyword.getKeyword();
- if(contains(item.getTitle(), word)
- || contains(item.getAuthor(), word))
- {
- return true;
- }
-
-
-
- for(String category : item.getCategory())
- {
- if(contains(category, word))
- {
- return true;
- }
- }
- }
-
- return filter.getKeywords().size() == 0;
- }
-
private static boolean contains(String haystack, String needle) {
return haystack != null
&& needle != null
diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java
index 7b2c54e..7f1d95e 100755
--- a/app/src/main/java/org/rssin/rssin/Filter.java
+++ b/app/src/main/java/org/rssin/rssin/Filter.java
@@ -1,6 +1,5 @@
package org.rssin.rssin;
-import android.text.TextUtils;
import android.util.Log;
import org.json.JSONArray;
@@ -36,7 +35,6 @@ public class Filter implements Storable, Comparable<Filter>, Jsonable {
*/
private List<Integer> feedHashCodes;
private transient List<Feed> feeds;
- private List<Keyword> keywords;
private String title = "";
/**
@@ -58,30 +56,20 @@ public class Filter implements Storable, Comparable<Filter>, Jsonable {
public Filter() {
feedHashCodes = new ArrayList<>();
feeds = new ArrayList<>();
- keywords = new ArrayList<>();
}
public Filter(String title) {
setTitle(title);
feedHashCodes = new ArrayList<>();
feeds = new ArrayList<>();
- keywords = new ArrayList<>();
}
- public Filter(String title, List<Keyword> keywords) {
- feedHashCodes = new ArrayList<>();
- this.feeds = new ArrayList<>();
- this.keywords = keywords;
- setTitle(title);
- }
-
- public Filter(String title, List<Keyword> keywords, List<Feed> feeds) {
+ public Filter(String title, List<Feed> feeds) {
feedHashCodes = new ArrayList<>();
for (Feed feed : feeds) {
feedHashCodes.add(feed.hashCode());
}
this.feeds = feeds;
- this.keywords = keywords;
setTitle(title);
}
@@ -101,19 +89,6 @@ public class Filter implements Storable, Comparable<Filter>, Jsonable {
return feeds;
}
- public List<Keyword> getKeywords() {
- return keywords;
- }
-
- /**
- * The Keyword's toString() method, joined with ", "
- * @return
- */
- public String getKeywordsAsString() {
- Keyword[] keywords = this.keywords.toArray(new Keyword[this.keywords.size()]);
- return TextUtils.join(", ", keywords);
- }
-
public String getTitle() {
return title;
}
@@ -215,7 +190,6 @@ public class Filter implements Storable, Comparable<Filter>, Jsonable {
JSONObject json = new JSONObject();
json.put("title", title);
json.put("feedHashCodes", JsonSerializer.numbersListToJson(feedHashCodes));
- json.put("keywords", JsonSerializer.listToJson(keywords));
json.put("storageKey", storageKey.toString());
return json;
}
@@ -225,11 +199,6 @@ public class Filter implements Storable, Comparable<Filter>, Jsonable {
title = json.getString("title");
feedHashCodes = JsonSerializer.integersListFromJson(json.getJSONArray("feedHashCodes"));
JSONArray keywordsJson = json.getJSONArray("keywords");
- keywords = new ArrayList<>();
- for (int i = 0; i < keywordsJson.length(); i++) {
- keywords.add(new Keyword(""));
- }
- JsonSerializer.listFromJson(keywordsJson, keywords);
storageKey = json.getString("storageKey");
}
diff --git a/app/src/main/java/org/rssin/rssin/Keyword.java b/app/src/main/java/org/rssin/rssin/Keyword.java
deleted file mode 100644
index 532bd59..0000000
--- a/app/src/main/java/org/rssin/rssin/Keyword.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.rssin.rssin;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.rssin.serialization.Jsonable;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
-/**
- * Keyword holder
- * @author Camil Staps
- */
-public class Keyword implements Serializable, Jsonable {
-
- private static final long serialVersionUID = 1;
-
- /**
- * For now, Keywords only have a single String keyword. Later, more options may be added
- */
- private String keyword;
-
- public Keyword(String keyword) {
- this.keyword = keyword.trim();
- }
-
- private void writeObject(ObjectOutputStream stream) throws JSONException, IOException {
- stream.writeObject(toJson().toString());
- }
-
- private void readObject(ObjectInputStream stream) throws JSONException, IOException, ClassNotFoundException {
- fromJson(new JSONObject((String) stream.readObject()));
- }
-
- public String getKeyword() {
- return keyword;
- }
-
- @Override
- public String toString() {
- return keyword;
- }
-
- @Override
- public JSONObject toJson() throws JSONException {
- JSONObject json = new JSONObject();
- json.put("keyword", keyword);
- return json;
- }
-
- @Override
- public void fromJson(JSONObject json) throws JSONException {
- keyword = json.getString("keyword");
- }
-}
diff --git a/app/src/main/res/layout/item_filter.xml b/app/src/main/res/layout/item_filter.xml
index c91a1a5..085a902 100644
--- a/app/src/main/res/layout/item_filter.xml
+++ b/app/src/main/res/layout/item_filter.xml
@@ -11,7 +11,7 @@
android:layout_height="fill_parent"
android:textSize="@dimen/font_size_large"/>
- <TextView android:id="@+id/filter_item_keywords"
+ <TextView android:id="@+id/filter_item_feeds"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="@dimen/font_size_normal"/>
diff --git a/app/src/main/res/layout/item_filter_settings_keyword.xml b/app/src/main/res/layout/item_filter_settings_keyword.xml
deleted file mode 100644
index 36d8c59..0000000
--- a/app/src/main/res/layout/item_filter_settings_keyword.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <TextView android:id="@+id/filter_settings_keyword_item_title"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="10dp"
- android:textSize="@dimen/font_size_normal"/>
-
-</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4e40abf..9560d7c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -43,4 +43,5 @@
<string name="hello_world">Hello world!</string>
<string name="title_activity_article">ArticleActivity</string>
+ <string name="feeds">feeds</string>
</resources>