From 062aef8ed97baf9c5e1d3d2662eb3d102a4d1746 Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Thu, 21 May 2015 13:56:34 +0200
Subject: Nicer text sizes; dimensions in dimens.xml
---
app/src/main/res/layout/item_filter.xml | 8 ++++----
app/src/main/res/layout/item_filter_settings_feed.xml | 3 ++-
app/src/main/res/layout/item_filter_settings_keyword.xml | 3 ++-
app/src/main/res/values/dimens.xml | 7 +++++++
4 files changed, 15 insertions(+), 6 deletions(-)
(limited to 'app')
diff --git a/app/src/main/res/layout/item_filter.xml b/app/src/main/res/layout/item_filter.xml
index 99fbb19..c91a1a5 100644
--- a/app/src/main/res/layout/item_filter.xml
+++ b/app/src/main/res/layout/item_filter.xml
@@ -3,17 +3,17 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
- android:layout_height="fill_parent">
+ android:layout_height="fill_parent"
+ android:padding="10dp">
+ android:textSize="@dimen/font_size_large"/>
+ android:textSize="@dimen/font_size_normal"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_filter_settings_feed.xml b/app/src/main/res/layout/item_filter_settings_feed.xml
index 7512330..65047bf 100644
--- a/app/src/main/res/layout/item_filter_settings_feed.xml
+++ b/app/src/main/res/layout/item_filter_settings_feed.xml
@@ -8,12 +8,13 @@
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_filter_settings_keyword.xml b/app/src/main/res/layout/item_filter_settings_keyword.xml
index ad9a231..36d8c59 100644
--- a/app/src/main/res/layout/item_filter_settings_keyword.xml
+++ b/app/src/main/res/layout/item_filter_settings_keyword.xml
@@ -8,6 +8,7 @@
+ android:padding="10dp"
+ android:textSize="@dimen/font_size_normal"/>
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 47c8224..0121f92 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -2,4 +2,11 @@
16dp
16dp
+
+ 16dp
+
+ 24sp
+ 20sp
+ 16sp
+ 14sp
--
cgit v1.2.3
From 80b9f701b3540e1069ce1c55ef3b056f95844292 Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Thu, 21 May 2015 15:04:06 +0200
Subject: Edit filter title; add keywords
---
.../org/rssin/android/FilterSettingsActivity.java | 98 ++++++++++++++++++++--
.../java/org/rssin/android/FiltersActivity.java | 11 +--
.../main/java/org/rssin/android/FiltersList.java | 22 ++---
app/src/main/java/org/rssin/rssin/Feed.java | 5 ++
app/src/main/java/org/rssin/rssin/Filter.java | 11 +++
.../main/res/layout/activity_filter_settings.xml | 19 +++++
app/src/main/res/menu/menu_filter_settings.xml | 10 ++-
app/src/main/res/values/strings.xml | 11 ++-
8 files changed, 160 insertions(+), 27 deletions(-)
(limited to 'app')
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index ae31943..3034ea3 100644
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -9,38 +9,58 @@ import android.content.DialogInterface;
import android.content.Intent;
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.ArrayAdapter;
+import android.widget.EditText;
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.util.List;
public class FilterSettingsActivity extends ActionBarActivity {
+ private FiltersList filtersList;
private Filter filter;
+ private KeywordAdapter keywordAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter_settings);
+ try {
+ filtersList = FiltersList.getInstance(this);
+ } catch (IOException e) {
+ Toast.makeText(this, "Something went wrong...", Toast.LENGTH_SHORT).show();
+ }
+
Intent intent = getIntent();
- filter = (Filter) intent.getSerializableExtra("filter");
+ int filterHashCode = intent.getIntExtra("filter", -1);
+
+ // @todo Check on -1? Shouldn't happen anyway.
+ for (Filter f : filtersList.getFilters()) {
+ if (f.hashCode() == filterHashCode) {
+ filter = f;
+ break;
+ }
+ }
- setTitle(getTitle() + ": " + filter.getTitle());
+ setTitle();
- final KeywordAdapter fAdapter = new KeywordAdapter(this, R.layout.item_filter_settings_keyword, filter.getKeywords());
- ((ListView) findViewById(R.id.filter_settings_feeds_list)).setAdapter(fAdapter);
+ keywordAdapter = new KeywordAdapter(this, R.layout.item_filter_settings_keyword, filter.getKeywords());
+ ((ListView) findViewById(R.id.filter_settings_feeds_list)).setAdapter(keywordAdapter);
}
@Override
@@ -53,14 +73,26 @@ public class FilterSettingsActivity extends ActionBarActivity {
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
- if (id == R.id.action_feeds) {
+ if (id == R.id.filter_settings_action_feeds) {
openFeedsDialog();
return true;
+ } else if (id == R.id.filter_settings_action_title) {
+ openTitleDialog();
+ return true;
}
return super.onOptionsItemSelected(item);
}
+ /**
+ * Set the title according to the filter
+ */
+ public void setTitle() {
+ if (filter != null) {
+ setTitle(getResources().getString(R.string.title_activity_filter_settings) + ": " + filter.getTitle());
+ }
+ }
+
/**
* Open dialog to edit feeds
*/
@@ -72,6 +104,58 @@ public class FilterSettingsActivity extends ActionBarActivity {
f.show(getFragmentManager(), "");
}
+ /**
+ * Open dialog to edit title
+ */
+ public void openTitleDialog() {
+ AlertDialog.Builder alert = new AlertDialog.Builder(this);
+
+ alert.setTitle("Title");
+ alert.setMessage("New title:");
+
+ final EditText input = new EditText(this);
+ input.setText(filter.getTitle());
+
+ alert
+ .setView(input)
+ .setPositiveButton(getResources().getString(R.string.button_apply), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ String value = input.getText().toString();
+ try {
+ filtersList.save();
+ filter.setTitle(value);
+ setTitle();
+ } catch (IOException e) {
+ Toast.makeText(getBaseContext(), getResources().getString(R.string.error_save_filter), Toast.LENGTH_SHORT).show();
+ }
+ }
+ })
+ .setNegativeButton(getResources().getString(R.string.button_cancel), null)
+ .show();
+ }
+
+ /**
+ * Add keyword
+ * @param v ignored, used because this is an onClick method
+ */
+ public void addKeyword(View v) {
+ EditText editText = (EditText) findViewById(R.id.filter_settings_add_keyword);
+ String keyword = editText.getText().toString();
+ editText.setText("");
+
+ Keyword k = new Keyword(keyword);
+ filter.getKeywords().add(k);
+ try {
+ filtersList.save();
+ keywordAdapter.notifyDataSetChanged();
+ Log.d("FSA", "New keyword saved");
+ } catch (IOException e) {
+ Log.e("FSA", "Couldn't save new keyword", e);
+ filter.getKeywords().remove(k);
+ keywordAdapter.notifyDataSetChanged();
+ }
+ }
+
/**
* Custom Dialog to display & edit feeds
*/
@@ -87,12 +171,12 @@ public class FilterSettingsActivity extends ActionBarActivity {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.filter_settings_feeds)
- .setPositiveButton(R.string.filter_settings_edit_feeds_positive, new DialogInterface.OnClickListener() {
+ .setPositiveButton(R.string.button_apply, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// FIRE ZE MISSILES!
}
})
- .setNegativeButton(R.string.filter_settings_edit_feeds_negative, null);
+ .setNegativeButton(R.string.button_cancel, null);
builder.setView(view);
return builder.create();
diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java
index 07f20c2..74490c8 100644
--- a/app/src/main/java/org/rssin/android/FiltersActivity.java
+++ b/app/src/main/java/org/rssin/android/FiltersActivity.java
@@ -11,6 +11,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
@@ -48,20 +49,20 @@ public class FiltersActivity extends ActionBarActivity {
filtersView = (ListView) findViewById(R.id.filters_list);
try {
- filters = new FiltersList(this);
+ filters = FiltersList.getInstance(this);
} catch (IOException ex) {
Toast.makeText(this, "Couldn't load filters.", Toast.LENGTH_SHORT).show();
Log.e("FILTER", "IOException", ex);
- filters = new FiltersList();
+ finish();
}
- putDummyFilter();
+ //putDummyFilter();
final FilterAdapter adapter = new FilterAdapter(this, R.layout.item_filter, filters.getFilters());
filtersView.setAdapter(adapter);
try {
- filters.save(this);
+ filters.save();
} catch (IOException ex) {
Toast.makeText(this, "Couldn't save filters.", Toast.LENGTH_SHORT).show();
Log.e("FILTER", "IOException", ex);
@@ -86,7 +87,7 @@ public class FiltersActivity extends ActionBarActivity {
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);
+ intent.putExtra("filter", item.hashCode());
startActivity(intent);
return true;
}
diff --git a/app/src/main/java/org/rssin/android/FiltersList.java b/app/src/main/java/org/rssin/android/FiltersList.java
index cf85b47..3a88f0c 100644
--- a/app/src/main/java/org/rssin/android/FiltersList.java
+++ b/app/src/main/java/org/rssin/android/FiltersList.java
@@ -3,6 +3,7 @@ package org.rssin.android;
import android.content.Context;
import android.preference.PreferenceManager;
import android.util.Base64;
+import android.widget.Toast;
import org.rssin.rssin.Filter;
@@ -21,14 +22,18 @@ import java.util.List;
public class FiltersList {
private static final String PREF_KEY = "filters_list";
+
+ private static FiltersList instance;
+
private final List filters;
+ private final Context context;
/**
* Fetch from sharedPreferences
* @param context
* @throws IOException if data is corrupted, and deserializing fails
*/
- public FiltersList(Context context) throws IOException {
+ protected FiltersList(Context context) throws IOException {
String filters = PreferenceManager.getDefaultSharedPreferences(context).getString(PREF_KEY, null);
if (filters == null) {
this.filters = new ArrayList<>();
@@ -42,14 +47,13 @@ public class FiltersList {
}
this.filters = filters_list;
}
+ this.context = context;
}
- public FiltersList(List filters) {
- this.filters = filters;
- }
-
- public FiltersList() {
- this.filters = new ArrayList<>();
+ public static FiltersList getInstance(Context context) throws IOException {
+ if (instance == null)
+ instance = new FiltersList(context);
+ return instance;
}
public List getFilters() {
@@ -58,16 +62,14 @@ public class FiltersList {
/**
* Save in sharedPreferences
- * @param context
* @throws IOException if serializing failed
*/
- public void save(Context context) throws IOException {
+ public synchronized void save() throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(filters);
oos.close();
String string = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);
- PreferenceManager.getDefaultSharedPreferences(context).edit().putString(PREF_KEY, string).apply();
}
}
diff --git a/app/src/main/java/org/rssin/rssin/Feed.java b/app/src/main/java/org/rssin/rssin/Feed.java
index 0abbd67..a2009ca 100644
--- a/app/src/main/java/org/rssin/rssin/Feed.java
+++ b/app/src/main/java/org/rssin/rssin/Feed.java
@@ -58,4 +58,9 @@ public class Feed implements Serializable {
this.url = new URL(url);
}
+ @Override
+ public String toString() {
+ return title + ": " + url.toString();
+ }
+
}
diff --git a/app/src/main/java/org/rssin/rssin/Filter.java b/app/src/main/java/org/rssin/rssin/Filter.java
index f411ca3..c7915aa 100755
--- a/app/src/main/java/org/rssin/rssin/Filter.java
+++ b/app/src/main/java/org/rssin/rssin/Filter.java
@@ -79,4 +79,15 @@ public class Filter implements Serializable {
public FeedSorter getSorter() {
return sorter;
}
+
+ @Override
+ public int hashCode() {
+ StringBuilder sb = new StringBuilder(title);
+ for (Feed f : feeds)
+ sb.append(f.toString());
+ for (Keyword k : keywords)
+ sb.append(k.toString());
+
+ return sb.toString().hashCode();
+ }
}
diff --git a/app/src/main/res/layout/activity_filter_settings.xml b/app/src/main/res/layout/activity_filter_settings.xml
index 7c8e265..897b02a 100644
--- a/app/src/main/res/layout/activity_filter_settings.xml
+++ b/app/src/main/res/layout/activity_filter_settings.xml
@@ -10,6 +10,25 @@
android:paddingBottom="0dp"
android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e5af898..4e9be11 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -4,12 +4,17 @@
Settings
Filters
+ Apply
+ Cancel
+
Filters
Filter
Edit
Feeds
- Apply
- Cancel
- Feeds
+ Add
+ Feeds
+ Title
+
+ Couldn\'t save filter
--
cgit v1.2.3
From b50404efd61b4384630fffa61ec03bdd5f8b55d1 Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Thu, 21 May 2015 15:08:10 +0200
Subject: Remove keywords by long click
---
.../java/org/rssin/android/FilterSettingsActivity.java | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
(limited to 'app')
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index 3034ea3..12231e0 100644
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -15,6 +15,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.EditText;
import android.widget.ListView;
@@ -60,7 +61,22 @@ public class FilterSettingsActivity extends ActionBarActivity {
setTitle();
keywordAdapter = new KeywordAdapter(this, R.layout.item_filter_settings_keyword, filter.getKeywords());
- ((ListView) findViewById(R.id.filter_settings_feeds_list)).setAdapter(keywordAdapter);
+ ListView keywordsListView = (ListView) findViewById(R.id.filter_settings_feeds_list);
+ keywordsListView.setAdapter(keywordAdapter);
+ keywordsListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
+ @Override
+ public boolean onItemLongClick(AdapterView> parent, View view, int position, long id) {
+ filter.getKeywords().remove(keywordAdapter.getItem(position));
+ try {
+ filtersList.save();
+ keywordAdapter.notifyDataSetChanged();
+ return true;
+ } catch (IOException e) {
+ Toast.makeText(getBaseContext(), getResources().getString(R.string.error_save_filter), Toast.LENGTH_SHORT).show();
+ return false;
+ }
+ }
+ });
}
@Override
--
cgit v1.2.3
From c7612b11ac164974ac54e8fd0b76c1d507e15e96 Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Thu, 21 May 2015 15:18:43 +0200
Subject: Fix saving filters; remove keywords
---
.../java/org/rssin/android/FilterSettingsActivity.java | 17 +++++++++--------
.../main/java/org/rssin/android/FiltersActivity.java | 16 +++++++---------
app/src/main/java/org/rssin/android/FiltersList.java | 2 +-
app/src/main/res/values/strings.xml | 3 ++-
4 files changed, 19 insertions(+), 19 deletions(-)
(limited to 'app')
diff --git a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
index 12231e0..f498e8e 100644
--- a/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterSettingsActivity.java
@@ -44,7 +44,7 @@ public class FilterSettingsActivity extends ActionBarActivity {
try {
filtersList = FiltersList.getInstance(this);
} catch (IOException e) {
- Toast.makeText(this, "Something went wrong...", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, getResources().getString(R.string.error_load_filters), Toast.LENGTH_SHORT).show();
}
Intent intent = getIntent();
@@ -66,13 +66,16 @@ public class FilterSettingsActivity extends ActionBarActivity {
keywordsListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView> parent, View view, int position, long id) {
- filter.getKeywords().remove(keywordAdapter.getItem(position));
+ Keyword keyword = keywordAdapter.getItem(position);
try {
+ filter.getKeywords().remove(keyword);
filtersList.save();
keywordAdapter.notifyDataSetChanged();
return true;
} catch (IOException e) {
- Toast.makeText(getBaseContext(), getResources().getString(R.string.error_save_filter), Toast.LENGTH_SHORT).show();
+ filter.getKeywords().add(keyword);
+ keywordAdapter.notifyDataSetChanged();
+ Toast.makeText(getBaseContext(), getResources().getString(R.string.error_save_filters), Toast.LENGTH_SHORT).show();
return false;
}
}
@@ -138,11 +141,11 @@ public class FilterSettingsActivity extends ActionBarActivity {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
try {
- filtersList.save();
filter.setTitle(value);
+ filtersList.save();
setTitle();
} catch (IOException e) {
- Toast.makeText(getBaseContext(), getResources().getString(R.string.error_save_filter), Toast.LENGTH_SHORT).show();
+ Toast.makeText(getBaseContext(), getResources().getString(R.string.error_save_filters), Toast.LENGTH_SHORT).show();
}
}
})
@@ -164,9 +167,7 @@ public class FilterSettingsActivity extends ActionBarActivity {
try {
filtersList.save();
keywordAdapter.notifyDataSetChanged();
- Log.d("FSA", "New keyword saved");
} catch (IOException e) {
- Log.e("FSA", "Couldn't save new keyword", e);
filter.getKeywords().remove(k);
keywordAdapter.notifyDataSetChanged();
}
@@ -189,7 +190,7 @@ public class FilterSettingsActivity extends ActionBarActivity {
builder.setMessage(R.string.filter_settings_feeds)
.setPositiveButton(R.string.button_apply, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- // FIRE ZE MISSILES!
+ // @todo FIRE ZE MISSILES!
}
})
.setNegativeButton(R.string.button_cancel, null);
diff --git a/app/src/main/java/org/rssin/android/FiltersActivity.java b/app/src/main/java/org/rssin/android/FiltersActivity.java
index 74490c8..fd569be 100644
--- a/app/src/main/java/org/rssin/android/FiltersActivity.java
+++ b/app/src/main/java/org/rssin/android/FiltersActivity.java
@@ -11,7 +11,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
-import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
@@ -35,7 +34,7 @@ import java.util.List;
*/
public class FiltersActivity extends ActionBarActivity {
- private FiltersList filters;
+ private FiltersList filtersList;
private ListView filtersView;
private AdapterView.OnItemClickListener onFilterClickListener;
@@ -49,7 +48,7 @@ public class FiltersActivity extends ActionBarActivity {
filtersView = (ListView) findViewById(R.id.filters_list);
try {
- filters = FiltersList.getInstance(this);
+ filtersList = FiltersList.getInstance(this);
} catch (IOException ex) {
Toast.makeText(this, "Couldn't load filters.", Toast.LENGTH_SHORT).show();
Log.e("FILTER", "IOException", ex);
@@ -58,14 +57,13 @@ public class FiltersActivity extends ActionBarActivity {
//putDummyFilter();
- final FilterAdapter adapter = new FilterAdapter(this, R.layout.item_filter, filters.getFilters());
+ final FilterAdapter adapter = new FilterAdapter(this, R.layout.item_filter, filtersList.getFilters());
filtersView.setAdapter(adapter);
try {
- filters.save();
+ filtersList.save();
} catch (IOException ex) {
- Toast.makeText(this, "Couldn't save filters.", Toast.LENGTH_SHORT).show();
- Log.e("FILTER", "IOException", ex);
+ Toast.makeText(this, getResources().getString(R.string.error_save_filters), Toast.LENGTH_SHORT).show();
}
setupListeners();
@@ -151,7 +149,7 @@ public class FiltersActivity extends ActionBarActivity {
* Dummy filter for testing
*/
private void putDummyFilter() {
- filters.getFilters().clear();
+ filtersList.getFilters().clear();
Filter filter = new Filter("Filter test");
filter.getKeywords().add(new Keyword("Test"));
@@ -161,7 +159,7 @@ public class FiltersActivity extends ActionBarActivity {
try {
filter.getFeeds().add(new Feed("http://nu.nl/sport.rss", "Feed test 2"));
} catch (MalformedURLException e) {}
- filters.getFilters().add(filter);
+ filtersList.getFilters().add(filter);
}
}
diff --git a/app/src/main/java/org/rssin/android/FiltersList.java b/app/src/main/java/org/rssin/android/FiltersList.java
index 3a88f0c..bae8dc6 100644
--- a/app/src/main/java/org/rssin/android/FiltersList.java
+++ b/app/src/main/java/org/rssin/android/FiltersList.java
@@ -3,7 +3,6 @@ package org.rssin.android;
import android.content.Context;
import android.preference.PreferenceManager;
import android.util.Base64;
-import android.widget.Toast;
import org.rssin.rssin.Filter;
@@ -70,6 +69,7 @@ public class FiltersList {
oos.writeObject(filters);
oos.close();
String string = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);
+ PreferenceManager.getDefaultSharedPreferences(context).edit().putString(PREF_KEY, string).commit();
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4e9be11..3481bbc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -16,5 +16,6 @@
Feeds
Title
- Couldn\'t save filter
+ Couldn\'t save filter
+ Couldn\'t load filters
--
cgit v1.2.3