diff options
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.java | 39 |
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); + } + + } } |