diff options
author | Camil Staps | 2015-05-20 12:51:45 +0200 |
---|---|---|
committer | Camil Staps | 2015-05-20 12:51:45 +0200 |
commit | 329c9d6b6dc52889b55d05083c6b7f7bb8916813 (patch) | |
tree | 703090ab2b00f793a32ef69f0b2bfdb44fcd0995 /app/src/main/java/org | |
parent | FilterSettingsActivity (diff) |
FilterSettingsActivity example
Diffstat (limited to 'app/src/main/java/org')
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; |