diff options
author | Halzyn | 2015-06-02 15:46:05 +0200 |
---|---|---|
committer | Halzyn | 2015-06-02 15:46:05 +0200 |
commit | c39d5720ef2fabfb57575a9d6c55406f1e451dab (patch) | |
tree | b06e4dc000a5467647d99e81309292ff71a338a0 /app/src | |
parent | OnClick implemented for feed items (diff) | |
parent | Merge branch 'app' (diff) |
merge
Diffstat (limited to 'app/src')
-rwxr-xr-x | app/src/main/java/org/rssin/android/FilterSettingsActivity.java | 91 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/android/FiltersActivity.java | 6 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/rssin/FeedLoaderAndSorter.java | 36 | ||||
-rwxr-xr-x | app/src/main/java/org/rssin/rssin/Filter.java | 33 | ||||
-rw-r--r-- | app/src/main/java/org/rssin/rssin/Keyword.java | 57 | ||||
-rw-r--r-- | app/src/main/res/layout/item_filter.xml | 2 | ||||
-rw-r--r-- | app/src/main/res/layout/item_filter_settings_keyword.xml | 14 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 1 |
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> |