From 31ff0490790e37aa6d1bf796abc5b542628703f3 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 19 May 2015 16:11:31 +0200 Subject: Added filters in option menu; removed option menu from filteractivity --- .../java/org/rssin/android/FiltersActivity.java | 23 ---------------------- .../org/rssin/android/UnifiedInboxActivity.java | 9 +++++---- app/src/main/res/menu/menu_filters.xml | 7 ------- app/src/main/res/menu/menu_unified_inbox.xml | 3 +++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 9 insertions(+), 34 deletions(-) delete mode 100644 app/src/main/res/menu/menu_filters.xml (limited to 'app/src') diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java index 254020f..2932c68 100644 --- a/app/src/main/java/org/rssin/android/FiltersActivity.java +++ b/app/src/main/java/org/rssin/android/FiltersActivity.java @@ -56,29 +56,6 @@ public class FiltersActivity extends ActionBarActivity { } } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_filters, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); - - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } - - return super.onOptionsItemSelected(item); - } - private static class FilterAdapter extends ArrayAdapter { Context context; diff --git a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java index dbe1c89..952228f 100644 --- a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java +++ b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java @@ -15,9 +15,6 @@ public class UnifiedInboxActivity extends ActionBarActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_unified_inbox); - - Intent intent = new Intent(this, FiltersActivity.class); - startActivity(intent); } @@ -37,7 +34,11 @@ public class UnifiedInboxActivity extends ActionBarActivity { //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { - return true; + Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + } else if (id == R.id.action_filters) { + Intent intent = new Intent(this, FiltersActivity.class); + startActivity(intent); } return super.onOptionsItemSelected(item); diff --git a/app/src/main/res/menu/menu_filters.xml b/app/src/main/res/menu/menu_filters.xml deleted file mode 100644 index 0f6a87f..0000000 --- a/app/src/main/res/menu/menu_filters.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/app/src/main/res/menu/menu_unified_inbox.xml b/app/src/main/res/menu/menu_unified_inbox.xml index 2c72c6d..2800171 100644 --- a/app/src/main/res/menu/menu_unified_inbox.xml +++ b/app/src/main/res/menu/menu_unified_inbox.xml @@ -1,6 +1,9 @@ + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e3e9d33..db20033 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,5 +3,6 @@ Hello world! Settings + Filters Filters -- cgit v1.2.3 From 85a69f1dffe50e7ac1e2357b74cdf822a3e98c72 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 19 May 2015 16:41:00 +0200 Subject: FilterSettingsActivity --- app/src/main/AndroidManifest.xml | 4 +++ .../org/rssin/android/FilterSettingsActivity.java | 16 +++++++++++ .../java/org/rssin/android/FiltersActivity.java | 33 ++++++++++++++++++++-- .../org/rssin/android/UnifiedInboxActivity.java | 1 - .../main/res/layout/activity_filter_settings.xml | 9 ++++++ app/src/main/res/layout/activity_unified_inbox.xml | 3 -- app/src/main/res/values/strings.xml | 2 +- docs/classes.txt | 1 + 8 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/org/rssin/android/FilterSettingsActivity.java create mode 100644 app/src/main/res/layout/activity_filter_settings.xml (limited to 'app/src') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 912bd7b..26e53db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,6 +28,10 @@ android:name="android.support.PARENT_ACTIVITY" android:value="org.rssin.android.UnifiedInboxActivity" /> + + diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java new file mode 100644 index 0000000..3b06ff9 --- /dev/null +++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java @@ -0,0 +1,16 @@ +package org.rssin.android; + +import android.support.v7.app.ActionBarActivity; +import android.os.Bundle; + +import org.rssin.rssin.R; + +public class FilterSettingsActivity extends ActionBarActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_filter_settings); + } + +} diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java index 2932c68..54a380f 100644 --- a/app/src/main/java/org/rssin/android/FiltersActivity.java +++ b/app/src/main/java/org/rssin/android/FiltersActivity.java @@ -2,6 +2,7 @@ package org.rssin.android; import android.app.Activity; import android.content.Context; +import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; @@ -10,6 +11,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; @@ -25,12 +27,18 @@ import java.util.List; public class FiltersActivity extends ActionBarActivity { private FiltersList filters; + private ListView filtersView; + + private AdapterView.OnItemClickListener onFilterClickListener; + private AdapterView.OnItemLongClickListener onFilterLongClickListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_filters); + filtersView = (ListView) findViewById(R.id.filters_list); + try { filters = new FiltersList(this); } catch (IOException ex) { @@ -45,8 +53,8 @@ public class FiltersActivity extends ActionBarActivity { filter.getKeywords().add(new Keyword("Keyword test 2")); filters.getFilters().add(filter); - FilterAdapter adapter = new FilterAdapter(this, R.layout.activity_filters_item, filters.getFilters()); - ((ListView) findViewById(R.id.filters_list)).setAdapter(adapter); + final FilterAdapter adapter = new FilterAdapter(this, R.layout.activity_filters_item, filters.getFilters()); + filtersView.setAdapter(adapter); try { filters.save(this); @@ -54,6 +62,27 @@ public class FiltersActivity extends ActionBarActivity { Toast.makeText(this, "Couldn't save filters.", Toast.LENGTH_SHORT).show(); Log.e("FILTER", "IOException", ex); } + + onFilterClickListener = new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Filter item = (Filter) parent.getItemAtPosition(position); + // @Todo open filter + } + }; + onFilterLongClickListener = new AdapterView.OnItemLongClickListener() { + @Override + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + Filter item = (Filter) parent.getItemAtPosition(position); + Intent intent = new Intent(getApplicationContext(), FilterSettingsActivity.class); + intent.putExtra("filter", item); + startActivity(intent); + return true; + } + }; + + filtersView.setOnItemClickListener(onFilterClickListener); + filtersView.setOnItemLongClickListener(onFilterLongClickListener); } private static class FilterAdapter extends ArrayAdapter { diff --git a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java index 952228f..6335406 100644 --- a/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java +++ b/app/src/main/java/org/rssin/android/UnifiedInboxActivity.java @@ -17,7 +17,6 @@ public class UnifiedInboxActivity extends ActionBarActivity { setContentView(R.layout.activity_unified_inbox); } - @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. diff --git a/app/src/main/res/layout/activity_filter_settings.xml b/app/src/main/res/layout/activity_filter_settings.xml new file mode 100644 index 0000000..6fb9932 --- /dev/null +++ b/app/src/main/res/layout/activity_filter_settings.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_unified_inbox.xml b/app/src/main/res/layout/activity_unified_inbox.xml index 1f25ce7..5c56465 100644 --- a/app/src/main/res/layout/activity_unified_inbox.xml +++ b/app/src/main/res/layout/activity_unified_inbox.xml @@ -5,7 +5,4 @@ android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".UnifiedInboxActivity"> - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index db20033..73c7f17 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,8 +1,8 @@ RSSin - Hello world! Settings Filters Filters + Filter Settings diff --git a/docs/classes.txt b/docs/classes.txt index 5f86254..8b33548 100644 --- a/docs/classes.txt +++ b/docs/classes.txt @@ -1,6 +1,7 @@ org.rssin.android.FeedActivity org.rssin.android.FilterActivity org.rssin.android.FiltersActivity +org.rssin.android.FilterSettingsActivity org.rssin.android.FiltersList org.rssin.android.InboxActivity org.rssin.android.SettingsActivity -- cgit v1.2.3 From 30da5953597d43dfb9a5fce56615ce3682a522ef Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 20 May 2015 10:52:08 +0200 Subject: merge fix --- app/src/main/java/org/rssin/neurons/NeuralNetwork.java | 4 ---- 1 file changed, 4 deletions(-) (limited to 'app/src') diff --git a/app/src/main/java/org/rssin/neurons/NeuralNetwork.java b/app/src/main/java/org/rssin/neurons/NeuralNetwork.java index f5ee569..7c2e447 100755 --- a/app/src/main/java/org/rssin/neurons/NeuralNetwork.java +++ b/app/src/main/java/org/rssin/neurons/NeuralNetwork.java @@ -25,11 +25,7 @@ class NeuralNetwork { public int addInput() { int result = 0; for (int i = 0; i < hiddenNodes.length; i++) { -<<<<<<< HEAD result = hiddenNodes[i].addWeight(); -======= - //result = hiddenNodes[i].AddWeight(); ->>>>>>> 7336ef600f6bd472b9aa1d59ad6418ff5c543044 } return result; -- cgit v1.2.3 From 07305a6ed2b066f1ba5cae82ac8af352d4ebf2a7 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 20 May 2015 11:30:49 +0200 Subject: FilterSettingsActivity --- .../org/rssin/android/FilterSettingsActivity.java | 152 +++++++++++++++++++++ .../java/org/rssin/android/FiltersActivity.java | 10 +- app/src/main/java/org/rssin/rssin/Feed.java | 54 ++++++++ app/src/main/java/org/rssin/rssin/Filter.java | 2 - .../main/res/layout/activity_filter_settings.xml | 47 ++++++- app/src/main/res/layout/activity_filters.xml | 15 +- app/src/main/res/layout/activity_filters_item.xml | 19 --- .../layout/fragment_filter_settings_keywords.xml | 13 ++ app/src/main/res/layout/item_filter.xml | 19 +++ .../main/res/layout/item_filter_settings_feed.xml | 19 +++ .../res/layout/item_filter_settings_keyword.xml | 13 ++ app/src/main/res/values/strings.xml | 3 + 12 files changed, 325 insertions(+), 41 deletions(-) create mode 100644 app/src/main/java/org/rssin/rssin/Feed.java delete mode 100644 app/src/main/res/layout/activity_filters_item.xml create mode 100644 app/src/main/res/layout/fragment_filter_settings_keywords.xml create mode 100644 app/src/main/res/layout/item_filter.xml create mode 100644 app/src/main/res/layout/item_filter_settings_feed.xml create mode 100644 app/src/main/res/layout/item_filter_settings_keyword.xml (limited to 'app/src') 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 { + + Context context; + int layoutResourceId; + List feeds; + + public FeedAdapter(Context context, int resource, List 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 { + + Context context; + int layoutResourceId; + List keywords; + + public KeywordAdapter(Context context, int resource, List 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 @@ - + android:orientation="vertical"> - + + + + +