aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/org/rssin/android/FilterSettingsActivity.java36
-rw-r--r--app/src/main/res/layout/activity_filter_settings.xml3
-rw-r--r--app/src/main/res/layout/fragment_filter_settings_feeds.xml25
-rw-r--r--app/src/main/res/values/strings.xml3
4 files changed, 56 insertions, 11 deletions
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index bfe9261..bb7456e 100644
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -10,7 +10,6 @@ import android.content.Intent;
import android.content.pm.ActivityInfo;
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;
@@ -19,6 +18,7 @@ import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
@@ -30,6 +30,8 @@ import org.rssin.rssin.Keyword;
import org.rssin.rssin.R;
import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.List;
public class FilterSettingsActivity extends ActionBarActivity {
@@ -212,12 +214,30 @@ public class FilterSettingsActivity extends ActionBarActivity {
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);
+ final View view = getActivity().getLayoutInflater().inflate(R.layout.fragment_filter_settings_feeds, null);
+
+ final Filter filter = (Filter) getArguments().getSerializable("filter");
+
+ final FeedAdapter feedAdapter = new FeedAdapter(getActivity(), R.layout.item_filter_settings_feed, filter.getFeeds());
+ ((ListView) view.findViewById(R.id.filter_settings_feeds_list)).setAdapter(feedAdapter);
+
+ view.findViewById(R.id.filter_settings_add_feed_button).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ EditText editText = (EditText) view.findViewById(R.id.filter_settings_add_feed);
+ String feed = editText.getText().toString();
+ try {
+ URL url = new URL(feed);
+ filter.getFeeds().add(new Feed(
+ url,
+ url.getHost() + " " + feed.substring(feed.lastIndexOf('/') + 1, feed.lastIndexOf('.'))));
+ feedAdapter.notifyDataSetChanged();
+ editText.setText("");
+ } catch (MalformedURLException e) {
+ Toast.makeText(getActivity(), getResources().getString(R.string.error_invalid_url), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.filter_settings_feeds)
@@ -251,7 +271,7 @@ public class FilterSettingsActivity extends ActionBarActivity {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
- FeedHolder holder = null;
+ FeedHolder holder;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
diff --git a/app/src/main/res/layout/activity_filter_settings.xml b/app/src/main/res/layout/activity_filter_settings.xml
index 897b02a..6ee5331 100644
--- a/app/src/main/res/layout/activity_filter_settings.xml
+++ b/app/src/main/res/layout/activity_filter_settings.xml
@@ -19,7 +19,8 @@
android:id="@+id/filter_settings_add_keyword"
android:layout_width="0dip"
android:layout_weight="1"
- android:layout_height="wrap_content"/>
+ android:layout_height="wrap_content"
+ android:maxLines="1"/>
<Button
android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/fragment_filter_settings_feeds.xml b/app/src/main/res/layout/fragment_filter_settings_feeds.xml
index 418129e..9c1e1f4 100644
--- a/app/src/main/res/layout/fragment_filter_settings_feeds.xml
+++ b/app/src/main/res/layout/fragment_filter_settings_feeds.xml
@@ -5,9 +5,30 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <EditText
+ android:id="@+id/filter_settings_add_feed"
+ android:layout_width="0dip"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:maxLines="1"
+ android:inputType="textUri"/>
+
+ <Button
+ android:id="@+id/filter_settings_add_feed_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/filter_settings_add_feed"/>
+
+ </LinearLayout>
+
<ListView
- android:id="@+id/filter_settings_keywords_list"
+ android:id="@+id/filter_settings_feeds_list"
android:layout_width="match_parent"
- android:layout_height="match_parent"></ListView>
+ android:layout_height="match_parent"/>
</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 e545ac2..7b3dfd7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -15,6 +15,7 @@
<string name="filter_settings_edit_keywords">Edit</string>
<string name="filter_settings_feeds">Feeds</string>
<string name="filter_settings_add_keyword">Add</string>
+ <string name="filter_settings_add_feed">Add</string>
<string name="filter_settings_action_feeds">Feeds</string>
<string name="filter_settings_action_title">Title</string>
<string name="filter_settings_action_delete">Delete</string>
@@ -22,4 +23,6 @@
<string name="error_save_filters">Couldn\'t save filter</string>
<string name="error_load_filters">Couldn\'t load filters</string>
<string name="error_delete_filter">Couldn\'t delete filter</string>
+
+ <string name="error_invalid_url">Invalid URL</string>
</resources>