summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java37
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java6
4 files changed, 28 insertions, 22 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
index 84da32a40..2d6d4cac1 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
@@ -5,15 +5,17 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AlertDialog;
+import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
@@ -114,7 +116,14 @@ public class FeedMenuHandler {
final String[] values = context.getResources().getStringArray(R.array.episode_hide_values);
final boolean[] checkedItems = new boolean[items.length];
- final List<String> hidden = new ArrayList<String>(Arrays.asList(feed.getItemFilter().getValues()));
+ final Set<String> hidden = new HashSet<String>(Arrays.asList(feed.getItemFilter().getValues()));
+ Iterator<String> it = hidden.iterator();
+ while(it.hasNext()) {
+ // make sure we have no empty strings in the filter list
+ if(TextUtils.isEmpty(it.next())) {
+ it.remove();
+ }
+ }
for(int i=0; i < values.length; i++) {
String value = values[i];
if(hidden.contains(value)) {
@@ -124,22 +133,16 @@ public class FeedMenuHandler {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(R.string.hide_episodes_title);
- builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which, boolean isChecked) {
- if (isChecked) {
- hidden.add(values[which]);
- } else {
- hidden.remove(values[which]);
- }
+ builder.setMultiChoiceItems(items, checkedItems, (dialog, which, isChecked) -> {
+ if (isChecked) {
+ hidden.add(values[which]);
+ } else {
+ hidden.remove(values[which]);
}
});
- builder.setPositiveButton(R.string.confirm_label, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- feed.setHiddenItemProperties(hidden.toArray(new String[hidden.size()]));
- DBWriter.setFeedItemsFilter(feed.getId(), hidden);
- }
+ builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
+ feed.setHiddenItemProperties(hidden.toArray(new String[hidden.size()]));
+ DBWriter.setFeedItemsFilter(feed.getId(), hidden);
});
builder.setNegativeButton(R.string.cancel_label, null);
builder.create().show();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java
index d3d5dd0a1..8636ac50a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java
@@ -20,7 +20,7 @@ public class FeedItemFilter {
private boolean hideNotDownloaded = false;
public FeedItemFilter(String properties) {
- this(TextUtils.split(",", properties));
+ this(TextUtils.split(properties, ","));
}
public FeedItemFilter(String[] properties) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
index efc0c882a..24519f10d 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
@@ -19,6 +19,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -1008,8 +1009,8 @@ public class DBWriter {
* @param filterValues Values that represent properties to filter by
*/
public static Future<?> setFeedItemsFilter(final long feedId,
- final List<String> filterValues) {
- Log.d(TAG, "setFeedFilter");
+ final Set<String> filterValues) {
+ Log.d(TAG, "setFeedItemsFilter() called with: " + "feedId = [" + feedId + "], filterValues = [" + filterValues + "]");
return dbExec.submit(() -> {
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
index 97d91ccd3..18457a330 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
@@ -16,6 +16,7 @@ import android.util.Log;
import java.util.Arrays;
import java.util.List;
+import java.util.Set;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.event.ProgressEvent;
@@ -407,10 +408,11 @@ public class PodDBAdapter {
db.update(TABLE_NAME_FEEDS, values, KEY_ID + "=?", new String[]{String.valueOf(prefs.getFeedID())});
}
- public void setFeedItemFilter(long feedId, List<String> filterValues) {
+ public void setFeedItemFilter(long feedId, Set<String> filterValues) {
+ Log.d(TAG, "setFeedItemFilter() called with: " + "feedId = [" + feedId + "], " +
+ "filterValues = [" + TextUtils.join(",", filterValues) + "]");
ContentValues values = new ContentValues();
values.put(KEY_HIDE, TextUtils.join(",", filterValues));
- Log.d(TAG, TextUtils.join(",", filterValues));
db.update(TABLE_NAME_FEEDS, values, KEY_ID + "=?", new String[]{String.valueOf(feedId)});
}