aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorCamil Staps2015-05-20 11:30:49 +0200
committerCamil Staps2015-05-20 11:30:49 +0200
commit07305a6ed2b066f1ba5cae82ac8af352d4ebf2a7 (patch)
tree012a99d0dec3608cafe9e5e95c5af5d74727fafd /app/src
parentmerge fix (diff)
FilterSettingsActivity
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/org/rssin/android/FilterSettingsActivity.java152
-rw-r--r--app/src/main/java/org/rssin/android/FiltersActivity.java10
-rw-r--r--app/src/main/java/org/rssin/rssin/Feed.java54
-rw-r--r--app/src/main/java/org/rssin/rssin/Filter.java2
-rw-r--r--app/src/main/res/layout/activity_filter_settings.xml47
-rw-r--r--app/src/main/res/layout/activity_filters.xml15
-rw-r--r--app/src/main/res/layout/fragment_filter_settings_keywords.xml13
-rw-r--r--app/src/main/res/layout/item_filter.xml (renamed from app/src/main/res/layout/activity_filters_item.xml)0
-rw-r--r--app/src/main/res/layout/item_filter_settings_feed.xml19
-rw-r--r--app/src/main/res/layout/item_filter_settings_keyword.xml13
-rw-r--r--app/src/main/res/values/strings.xml3
11 files changed, 306 insertions, 22 deletions
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index 3b06ff9..b2d4ed9 100644
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -1,16 +1,168 @@
package org.rssin.android;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.support.annotation.Nullable;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+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.util.List;
+
public class FilterSettingsActivity extends ActionBarActivity {
+ private Filter filter;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter_settings);
+
+ Intent intent = getIntent();
+ filter = (Filter) intent.getSerializableExtra("filter");
+
+ ((TextView) findViewById(R.id.filter_settings_title)).setText(filter.getTitle());
+ ((TextView) findViewById(R.id.filter_settings_keywords)).setText(filter.getKeywordsAsString());
+
+ final FeedAdapter fAdapter = new FeedAdapter(this, R.layout.item_filter_settings_feed, filter.getFeeds());
+ ((ListView) findViewById(R.id.filter_settings_feeds_list)).setAdapter(fAdapter);
+ }
+
+ public void openKeywordsDialog(View v) {
+ (new KeywordsDialogFragment()).show(getFragmentManager(), "");
+ }
+
+ public class KeywordsDialogFragment extends DialogFragment {
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_filter_settings_keywords, container);
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ final KeywordAdapter kAdapter = new KeywordAdapter(getActivity(), R.layout.item_filter_settings_keyword, filter.getKeywords());
+ ((ListView) getActivity().findViewById(R.id.filter_settings_feeds_list)).setAdapter(kAdapter);
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder.setMessage("Hello world")
+ .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ // FIRE ZE MISSILES!
+ }
+ })
+ .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ // User cancelled the dialog
+ }
+ });
+ // Create the AlertDialog object and return it
+ return builder.create();
+ }
+ }
+
+ private static class FeedAdapter extends ArrayAdapter<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;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ View row = convertView;
+ FeedHolder holder = null;
+
+ if (row == null) {
+ LayoutInflater inflater = ((Activity) context).getLayoutInflater();
+ row = inflater.inflate(layoutResourceId, parent, false);
+
+ holder = new FeedHolder();
+ holder.title = (TextView) row.findViewById(R.id.filter_settings_feed_item_title);
+ holder.url = (TextView) row.findViewById(R.id.filter_settings_feed_item_url);
+
+ row.setTag(holder);
+ } else {
+ holder = (FeedHolder) row.getTag();
+ }
+
+ Feed feed = feeds.get(position);
+ holder.title.setText(feed.getTitle());
+ holder.url.setText(feed.getURL().toString());
+
+ return row;
+ }
+
+ private static class FeedHolder {
+ TextView title;
+ TextView url;
+ }
+ }
+
+ 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;
+ }
+
+ 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 54a380f..6b1a3d7 100644
--- a/app/src/main/java/org/rssin/android/FiltersActivity.java
+++ b/app/src/main/java/org/rssin/android/FiltersActivity.java
@@ -7,8 +7,6 @@ import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
@@ -18,7 +16,6 @@ import android.widget.TextView;
import android.widget.Toast;
import org.rssin.rssin.Filter;
-import org.rssin.rssin.Keyword;
import org.rssin.rssin.R;
import java.io.IOException;
@@ -48,12 +45,7 @@ public class FiltersActivity extends ActionBarActivity {
filters = new FiltersList();
}
- Filter filter = new Filter("Hello world");
- filter.getKeywords().add(new Keyword("Keyword test"));
- filter.getKeywords().add(new Keyword("Keyword test 2"));
- filters.getFilters().add(filter);
-
- final FilterAdapter adapter = new FilterAdapter(this, R.layout.activity_filters_item, filters.getFilters());
+ final FilterAdapter adapter = new FilterAdapter(this, R.layout.item_filter, filters.getFilters());
filtersView.setAdapter(adapter);
try {
diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java
new file mode 100644
index 0000000..1dcb4d8
--- /dev/null
+++ b/app/src/main/java/org/rssin/rssin/Feed.java
@@ -0,0 +1,54 @@
+package org.rssin.rssin;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * Created by camilstaps on 20-5-15.
+ */
+public class Feed {
+
+ private String title;
+ private URL url;
+
+ public Feed(URL url) {
+ this.url = url;
+ this.title = url.toString();
+ }
+
+ public Feed(String url) throws MalformedURLException {
+ this.url = new URL(url);
+ this.title = url;
+ }
+
+ public Feed(URL url, String title) {
+ this.url = url;
+ this.title = title;
+ }
+
+ public Feed(String url, String title) throws MalformedURLException {
+ this.url = new URL(url);
+ this.title = title;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public URL getURL() {
+ return url;
+ }
+
+ public void setURL(URL url) {
+ this.url = url;
+ }
+
+ public void setURL(String url) throws MalformedURLException {
+ this.url = new URL(url);
+ }
+
+}
diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java
index 1cffe1a..a5a4cd9 100644
--- a/app/src/main/java/org/rssin/rssin/Filter.java
+++ b/app/src/main/java/org/rssin/rssin/Filter.java
@@ -2,8 +2,6 @@ package org.rssin.rssin;
import android.text.TextUtils;
-import org.rssin.rss.Feed;
-
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/res/layout/activity_filter_settings.xml b/app/src/main/res/layout/activity_filter_settings.xml
index 6fb9932..4f3b177 100644
--- a/app/src/main/res/layout/activity_filter_settings.xml
+++ b/app/src/main/res/layout/activity_filter_settings.xml
@@ -1,9 +1,46 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
- android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:context="org.rssin.android.FilterSettingsActivity"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
- tools:context="org.rssin.android.FilterSettingsActivity">
+ android:orientation="vertical">
-</RelativeLayout>
+ <TextView
+ android:id="@+id/filter_settings_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textSize="22sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="6dp"
+ android:paddingBottom="6dp"
+ android:orientation="horizontal">
+
+ <Button
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/filter_settings_edit_keywords"
+ android:onClick="openKeywordsDialog"/>
+
+ <TextView
+ android:id="@+id/filter_settings_keywords"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:scrollbars="horizontal"
+ android:maxLines="1"/>
+
+ </LinearLayout>
+
+ <ListView
+ android:id="@+id/filter_settings_feeds_list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"></ListView>
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/activity_filters.xml b/app/src/main/res/layout/activity_filters.xml
index 521a319..700e939 100644
--- a/app/src/main/res/layout/activity_filters.xml
+++ b/app/src/main/res/layout/activity_filters.xml
@@ -1,9 +1,12 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
- android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- android:paddingBottom="@dimen/activity_vertical_margin"
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="0dp"
+ android:paddingRight="0dp"
+ android:paddingTop="0dp"
+ android:paddingBottom="0dp"
tools:context="org.rssin.android.FiltersActivity">
<ListView
diff --git a/app/src/main/res/layout/fragment_filter_settings_keywords.xml b/app/src/main/res/layout/fragment_filter_settings_keywords.xml
new file mode 100644
index 0000000..418129e
--- /dev/null
+++ b/app/src/main/res/layout/fragment_filter_settings_keywords.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <ListView
+ android:id="@+id/filter_settings_keywords_list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"></ListView>
+
+</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_filters_item.xml b/app/src/main/res/layout/item_filter.xml
index 99fbb19..99fbb19 100644
--- a/app/src/main/res/layout/activity_filters_item.xml
+++ b/app/src/main/res/layout/item_filter.xml
diff --git a/app/src/main/res/layout/item_filter_settings_feed.xml b/app/src/main/res/layout/item_filter_settings_feed.xml
new file mode 100644
index 0000000..7512330
--- /dev/null
+++ b/app/src/main/res/layout/item_filter_settings_feed.xml
@@ -0,0 +1,19 @@
+<?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_feed_item_title"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:textSize="22sp"
+ android:padding="10dp"/>
+
+ <TextView android:id="@+id/filter_settings_feed_item_url"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:padding="10dp"/>
+
+</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/item_filter_settings_keyword.xml b/app/src/main/res/layout/item_filter_settings_keyword.xml
new file mode 100644
index 0000000..ad9a231
--- /dev/null
+++ b/app/src/main/res/layout/item_filter_settings_keyword.xml
@@ -0,0 +1,13 @@
+<?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"/>
+
+</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 73c7f17..7bd62cc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,6 +3,9 @@
<string name="action_settings">Settings</string>
<string name="action_filters">Filters</string>
+
<string name="title_activity_filters">Filters</string>
<string name="title_activity_filter_settings">Filter Settings</string>
+
+ <string name="filter_settings_edit_keywords">Edit</string>
</resources>