summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java47
1 files changed, 47 insertions, 0 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 de6056063..7aee499da 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
@@ -14,6 +14,19 @@ import de.danoeh.antennapod.dialog.IntraFeedSortDialog;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.SortOrder;
import org.apache.commons.lang3.StringUtils;
+import android.content.DialogInterface;
+import android.annotation.SuppressLint;
+import androidx.fragment.app.Fragment;
+import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
+import de.danoeh.antennapod.dialog.RemoveFeedDialog;
+import de.danoeh.antennapod.dialog.RenameItemDialog;
+import de.danoeh.antennapod.dialog.TagSettingsDialog;
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
+import java.util.Collections;
+import java.util.concurrent.Callable;
+import java.util.concurrent.Future;
/**
* Handles interactions with the FeedItemMenu.
@@ -75,4 +88,38 @@ public class FeedMenuHandler {
sortDialog.openDialog();
}
+ public static boolean onMenuItemClicked(@NonNull Fragment fragment, int menuItemId,
+ @NonNull Feed selectedFeed, Runnable callback) {
+ @NonNull Context context = fragment.requireContext();
+ if (menuItemId == R.id.rename_folder_item) {
+ new RenameItemDialog(fragment.getActivity(), selectedFeed).show();
+ } else if (menuItemId == R.id.remove_all_inbox_item) {
+ ConfirmationDialog dialog = new ConfirmationDialog(fragment.getActivity(),
+ R.string.remove_all_inbox_label, R.string.remove_all_inbox_confirmation_msg) {
+ @Override
+ @SuppressLint("CheckResult")
+ public void onConfirmButtonPressed(DialogInterface clickedDialog) {
+ clickedDialog.dismiss();
+ Observable.fromCallable((Callable<Future>) () -> DBWriter.removeFeedNewFlag(selectedFeed.getId()))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(result -> callback.run(),
+ error -> Log.e(TAG, Log.getStackTraceString(error)));
+ }
+ };
+ dialog.createNewDialog().show();
+
+ } else if (menuItemId == R.id.edit_tags) {
+ TagSettingsDialog.newInstance(Collections.singletonList(selectedFeed.getPreferences()))
+ .show(fragment.getChildFragmentManager(), TagSettingsDialog.TAG);
+ } else if (menuItemId == R.id.rename_item) {
+ new RenameItemDialog(fragment.getActivity(), selectedFeed).show();
+ } else if (menuItemId == R.id.remove_feed) {
+ RemoveFeedDialog.show(context, selectedFeed);
+ } else {
+ return false;
+ }
+ return true;
+ }
+
}