summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java39
1 files changed, 34 insertions, 5 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java
index f42f0870d..c4ae5e058 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java
@@ -4,6 +4,10 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;
+
+import java.util.Collections;
+import java.util.List;
+
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
import de.danoeh.antennapod.model.feed.Feed;
@@ -16,10 +20,17 @@ public class RemoveFeedDialog {
private static final String TAG = "RemoveFeedDialog";
public static void show(Context context, Feed feed, Runnable onSuccess) {
- int messageId = feed.isLocalFeed() ? R.string.feed_delete_confirmation_local_msg
- : R.string.feed_delete_confirmation_msg;
- String message = context.getString(messageId, feed.getTitle());
+ List<Feed> feeds = Collections.singletonList(feed);
+ String message = getMessageId(context, feeds);
+ showDialog(context, feeds, message, onSuccess);
+ }
+
+ public static void show(Context context, List<Feed> feeds, Runnable onSuccess) {
+ String message = getMessageId(context, feeds);
+ showDialog(context, feeds, message, onSuccess);
+ }
+ private static void showDialog(Context context, List<Feed> feeds, String message, Runnable onSuccess) {
ConfirmationDialog dialog = new ConfirmationDialog(context, R.string.remove_feed_label, message) {
@Override
public void onConfirmButtonPressed(DialogInterface clickedDialog) {
@@ -31,12 +42,17 @@ public class RemoveFeedDialog {
progressDialog.setCancelable(false);
progressDialog.show();
- Completable.fromCallable(() -> DBWriter.deleteFeed(context, feed.getId()).get())
+ Completable.fromCallable(() -> {
+ for (Feed feed : feeds) {
+ DBWriter.deleteFeed(context, feed.getId()).get();
+ }
+ return null;
+ })
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
() -> {
- Log.d(TAG, "Feed was deleted");
+ Log.d(TAG, "Feed(s) deleted");
if (onSuccess != null) {
onSuccess.run();
}
@@ -49,4 +65,17 @@ public class RemoveFeedDialog {
};
dialog.createNewDialog().show();
}
+
+ private static String getMessageId(Context context, List<Feed> feeds) {
+ if (feeds.size() == 1) {
+ if (feeds.get(0).isLocalFeed()) {
+ return context.getString(R.string.feed_delete_confirmation_local_msg);
+ } else {
+ return context.getString(R.string.feed_delete_confirmation_msg, feeds.get(0).getTitle());
+ }
+ } else {
+ return context.getString(R.string.feed_delete_confirmation_msg_batch);
+ }
+
+ }
}