summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitStart <1501599+gitstart@users.noreply.github.com>2023-04-07 13:21:52 +0100
committerGitHub <noreply@github.com>2023-04-07 14:21:52 +0200
commita828660b446fcc1a8a518c7a30622b905c7bf358 (patch)
treed6d82d1d3075f90c82ec75c6775f7115d22270e9 /app
parent7ed78887c4411762f1fff67d3ca2330deaec2cac (diff)
downloadAntennaPod-a828660b446fcc1a8a518c7a30622b905c7bf358.zip
Do not switch screens when clicking "Remove podcast" (#6259)
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java15
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java8
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java9
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java2
4 files changed, 25 insertions, 9 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 23c032248..363b87ca6 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/RemoveFeedDialog.java
@@ -5,6 +5,8 @@ import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;
+import androidx.annotation.Nullable;
+
import java.util.Collections;
import java.util.List;
@@ -19,21 +21,26 @@ import io.reactivex.schedulers.Schedulers;
public class RemoveFeedDialog {
private static final String TAG = "RemoveFeedDialog";
- public static void show(Context context, Feed feed) {
+ public static void show(Context context, Feed feed, @Nullable Runnable callback) {
List<Feed> feeds = Collections.singletonList(feed);
String message = getMessageId(context, feeds);
- showDialog(context, feeds, message);
+ showDialog(context, feeds, message, callback);
}
public static void show(Context context, List<Feed> feeds) {
String message = getMessageId(context, feeds);
- showDialog(context, feeds, message);
+ showDialog(context, feeds, message, null);
}
- private static void showDialog(Context context, List<Feed> feeds, String message) {
+ private static void showDialog(Context context, List<Feed> feeds, String message, @Nullable Runnable callback) {
ConfirmationDialog dialog = new ConfirmationDialog(context, R.string.remove_feed_label, message) {
@Override
public void onConfirmButtonPressed(DialogInterface clickedDialog) {
+
+ if (callback != null) {
+ callback.run();
+ }
+
clickedDialog.dismiss();
ProgressDialog progressDialog = new ProgressDialog(context);
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
index ecc60c411..61883afe7 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
@@ -61,6 +61,7 @@ import de.danoeh.antennapod.model.download.DownloadStatus;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedItemFilter;
+import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.glide.FastBlurTransformation;
import de.danoeh.antennapod.view.ToolbarIconTintManager;
import de.danoeh.antennapod.view.viewholder.EpisodeItemViewHolder;
@@ -270,8 +271,11 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
new RenameItemDialog(getActivity(), feed).show();
return true;
} else if (itemId == R.id.remove_feed) {
- ((MainActivity) getActivity()).loadFragment(AllEpisodesFragment.TAG, null);
- RemoveFeedDialog.show(getContext(), feed);
+ RemoveFeedDialog.show(getContext(), feed, () -> {
+ ((MainActivity) getActivity()).loadFragment(UserPreferences.getDefaultPage(), null);
+ // Make sure fragment is hidden before actually starting to delete
+ getActivity().getSupportFragmentManager().executePendingTransactions();
+ });
return true;
} else if (itemId == R.id.action_search) {
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(feed.getId(), feed.getTitle()));
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
index e155e467d..ecb24a1e1 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
@@ -175,8 +175,13 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
new RenameItemDialog(getActivity(), feed).show();
return true;
} else if (itemId == R.id.remove_feed) {
- ((MainActivity) getActivity()).loadFragment(AllEpisodesFragment.TAG, null);
- RemoveFeedDialog.show(getContext(), feed);
+ RemoveFeedDialog.show(getContext(), feed, () -> {
+ if (String.valueOf(feed.getId()).equals(getLastNavFragment(getContext()))) {
+ ((MainActivity) getActivity()).loadFragment(UserPreferences.getDefaultPage(), null);
+ // Make sure fragment is hidden before actually starting to delete
+ getActivity().getSupportFragmentManager().executePendingTransactions();
+ }
+ });
return true;
}
return super.onContextItemSelected(item);
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 e9b0c0b19..9b9525133 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
@@ -126,7 +126,7 @@ public class FeedMenuHandler {
} else if (menuItemId == R.id.rename_item) {
new RenameItemDialog(fragment.getActivity(), selectedFeed).show();
} else if (menuItemId == R.id.remove_feed) {
- RemoveFeedDialog.show(context, selectedFeed);
+ RemoveFeedDialog.show(context, selectedFeed, null);
} else {
return false;
}