diff options
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/AndroidManifest.xml | 3 | ||||
-rw-r--r-- | app/src/main/java/org/rssin/android/FilterSettingsActivity.java | 127 | ||||
-rw-r--r-- | app/src/main/java/org/rssin/android/FiltersActivity.java | 22 | ||||
-rw-r--r-- | app/src/main/java/org/rssin/rssin/Feed.java | 4 | ||||
-rw-r--r-- | app/src/main/res/layout/activity_filter_settings.xml | 36 | ||||
-rw-r--r-- | app/src/main/res/layout/fragment_filter_settings_feeds.xml (renamed from app/src/main/res/layout/fragment_filter_settings_keywords.xml) | 0 | ||||
-rw-r--r-- | app/src/main/res/menu/menu_filter_settings.xml | 14 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 6 |
8 files changed, 120 insertions, 92 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 26e53db..6d7e57d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,9 @@ <activity android:name="org.rssin.android.FilterSettingsActivity" android:label="@string/title_activity_filter_settings" > + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value="org.rssin.android.FiltersActivity" /> </activity> </application> diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java index b2d4ed9..a3ae710 100644 --- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java +++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java @@ -7,10 +7,11 @@ 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.Menu; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; @@ -36,96 +37,106 @@ public class FilterSettingsActivity extends ActionBarActivity { 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()); + setTitle(getTitle() + ": " + filter.getTitle()); - final FeedAdapter fAdapter = new FeedAdapter(this, R.layout.item_filter_settings_feed, filter.getFeeds()); + final KeywordAdapter fAdapter = new KeywordAdapter(this, R.layout.item_filter_settings_keyword, filter.getKeywords()); ((ListView) findViewById(R.id.filter_settings_feeds_list)).setAdapter(fAdapter); } - public void openKeywordsDialog(View v) { - (new KeywordsDialogFragment()).show(getFragmentManager(), ""); + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_filter_settings, menu); + return true; } - 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 boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == R.id.action_feeds) { + openKeywordsDialog(null); } - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); + return super.onOptionsItemSelected(item); + } - 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); - } + public void openKeywordsDialog(View v) { + FeedsDialogFragment f = new FeedsDialogFragment(); + Bundle bundle = new Bundle(); + bundle.putSerializable("filter", filter); + f.setArguments(bundle); + f.show(getFragmentManager(), ""); + } + public static class FeedsDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { + View view = getActivity().getLayoutInflater().inflate(R.layout.fragment_filter_settings_feeds, null); + + Filter filter = (Filter) getArguments().getSerializable("filter"); + + final FeedAdapter kAdapter = new FeedAdapter(getActivity(), R.layout.item_filter_settings_feed, filter.getFeeds()); + ((ListView) view.findViewById(R.id.filter_settings_keywords_list)).setAdapter(kAdapter); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setMessage("Hello world") - .setPositiveButton("Yes", new DialogInterface.OnClickListener() { + builder.setMessage(R.string.filter_settings_feeds) + .setPositiveButton(R.string.filter_settings_edit_feeds_positive, 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 + .setNegativeButton(R.string.filter_settings_edit_feeds_negative, null); + builder.setView(view); + return builder.create(); } - } - private static class FeedAdapter extends ArrayAdapter<Feed> { + private static class FeedAdapter extends ArrayAdapter<Feed> { - Context context; - int layoutResourceId; - List<Feed> feeds; + 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; - } + 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; + @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); + 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); + 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(); - } + row.setTag(holder); + } else { + holder = (FeedHolder) row.getTag(); + } - Feed feed = feeds.get(position); - holder.title.setText(feed.getTitle()); - holder.url.setText(feed.getURL().toString()); + Feed feed = feeds.get(position); + holder.title.setText(feed.getTitle()); + holder.url.setText(feed.getURL().toString()); - return row; - } + return row; + } - private static class FeedHolder { - TextView title; - TextView url; + private static class FeedHolder { + TextView title; + TextView url; + } } } private static class KeywordAdapter extends ArrayAdapter<Keyword> { - Context context; int layoutResourceId; List<Keyword> keywords; diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java index 6b1a3d7..dd32fab 100644 --- a/app/src/main/java/org/rssin/android/FiltersActivity.java +++ b/app/src/main/java/org/rssin/android/FiltersActivity.java @@ -15,10 +15,13 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; +import org.rssin.rssin.Feed; import org.rssin.rssin.Filter; +import org.rssin.rssin.Keyword; import org.rssin.rssin.R; import java.io.IOException; +import java.net.MalformedURLException; import java.util.List; public class FiltersActivity extends ActionBarActivity { @@ -45,6 +48,25 @@ public class FiltersActivity extends ActionBarActivity { filters = new FiltersList(); } + filters.getFilters().clear(); + + Filter filter = new Filter("Filter test"); + filter.getKeywords().add(new Keyword("Test")); + try { + filter.getFeeds().add(new Feed("http://nu.nl/algemeen.rss", "Feed test 1")); + } catch (MalformedURLException e) { + Log.w("FA-URL", e.getMessage(), e); + } + try { + filter.getFeeds().add(new Feed("http://nu.nl/sport.rss", "Feed test 2")); + } catch (MalformedURLException e) { + Log.w("FA-URL", e.getMessage(), e); + } + filters.getFilters().add(filter); + try { + filters.save(this); + } catch (IOException e) {} + final FilterAdapter adapter = new FilterAdapter(this, R.layout.item_filter, filters.getFilters()); filtersView.setAdapter(adapter); diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java index 1dcb4d8..d2677b8 100644 --- a/app/src/main/java/org/rssin/rssin/Feed.java +++ b/app/src/main/java/org/rssin/rssin/Feed.java @@ -1,12 +1,14 @@ package org.rssin.rssin; +import java.io.Serializable; import java.net.MalformedURLException; import java.net.URL; /** * Created by camilstaps on 20-5-15. */ -public class Feed { +public class Feed implements Serializable { + private static int serialVersionUID = 0; private String title; private URL url; diff --git a/app/src/main/res/layout/activity_filter_settings.xml b/app/src/main/res/layout/activity_filter_settings.xml index 4f3b177..7c8e265 100644 --- a/app/src/main/res/layout/activity_filter_settings.xml +++ b/app/src/main/res/layout/activity_filter_settings.xml @@ -4,40 +4,12 @@ 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" + android:paddingLeft="0dp" + android:paddingRight="0dp" + android:paddingTop="0dp" + android:paddingBottom="0dp" android:orientation="vertical"> - <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" diff --git a/app/src/main/res/layout/fragment_filter_settings_keywords.xml b/app/src/main/res/layout/fragment_filter_settings_feeds.xml index 418129e..418129e 100644 --- a/app/src/main/res/layout/fragment_filter_settings_keywords.xml +++ b/app/src/main/res/layout/fragment_filter_settings_feeds.xml diff --git a/app/src/main/res/menu/menu_filter_settings.xml b/app/src/main/res/menu/menu_filter_settings.xml new file mode 100644 index 0000000..9384597 --- /dev/null +++ b/app/src/main/res/menu/menu_filter_settings.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + tools:context=".FilterSettingsActivity"> + + <item + android:id="@+id/action_feeds" + android:title="@string/action_feeds" + android:orderInCategory="100" + app:showAsAction="ifRoom" /> + +</menu> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7bd62cc..e5af898 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,7 +5,11 @@ <string name="action_filters">Filters</string> <string name="title_activity_filters">Filters</string> - <string name="title_activity_filter_settings">Filter Settings</string> + <string name="title_activity_filter_settings">Filter</string> <string name="filter_settings_edit_keywords">Edit</string> + <string name="filter_settings_feeds">Feeds</string> + <string name="filter_settings_edit_feeds_positive">Apply</string> + <string name="filter_settings_edit_feeds_negative">Cancel</string> + <string name="action_feeds">Feeds</string> </resources> |