aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org
diff options
context:
space:
mode:
authorCamil Staps2015-05-20 12:51:45 +0200
committerCamil Staps2015-05-20 12:51:45 +0200
commit329c9d6b6dc52889b55d05083c6b7f7bb8916813 (patch)
tree703090ab2b00f793a32ef69f0b2bfdb44fcd0995 /app/src/main/java/org
parentFilterSettingsActivity (diff)
FilterSettingsActivity example
Diffstat (limited to 'app/src/main/java/org')
-rw-r--r--app/src/main/java/org/rssin/android/FilterSettingsActivity.java127
-rw-r--r--app/src/main/java/org/rssin/android/FiltersActivity.java22
-rw-r--r--app/src/main/java/org/rssin/rssin/Feed.java4
3 files changed, 94 insertions, 59 deletions
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;