Do not switch screens when clicking "Remove podcast" (#6259)
This commit is contained in:
parent
7ed78887c4
commit
a828660b44
|
@ -5,6 +5,8 @@ import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -19,21 +21,26 @@ import io.reactivex.schedulers.Schedulers;
|
||||||
public class RemoveFeedDialog {
|
public class RemoveFeedDialog {
|
||||||
private static final String TAG = "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);
|
List<Feed> feeds = Collections.singletonList(feed);
|
||||||
String message = getMessageId(context, feeds);
|
String message = getMessageId(context, feeds);
|
||||||
showDialog(context, feeds, message);
|
showDialog(context, feeds, message, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void show(Context context, List<Feed> feeds) {
|
public static void show(Context context, List<Feed> feeds) {
|
||||||
String message = getMessageId(context, 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) {
|
ConfirmationDialog dialog = new ConfirmationDialog(context, R.string.remove_feed_label, message) {
|
||||||
@Override
|
@Override
|
||||||
public void onConfirmButtonPressed(DialogInterface clickedDialog) {
|
public void onConfirmButtonPressed(DialogInterface clickedDialog) {
|
||||||
|
|
||||||
|
if (callback != null) {
|
||||||
|
callback.run();
|
||||||
|
}
|
||||||
|
|
||||||
clickedDialog.dismiss();
|
clickedDialog.dismiss();
|
||||||
|
|
||||||
ProgressDialog progressDialog = new ProgressDialog(context);
|
ProgressDialog progressDialog = new ProgressDialog(context);
|
||||||
|
|
|
@ -61,6 +61,7 @@ import de.danoeh.antennapod.model.download.DownloadStatus;
|
||||||
import de.danoeh.antennapod.model.feed.Feed;
|
import de.danoeh.antennapod.model.feed.Feed;
|
||||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
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.ui.glide.FastBlurTransformation;
|
||||||
import de.danoeh.antennapod.view.ToolbarIconTintManager;
|
import de.danoeh.antennapod.view.ToolbarIconTintManager;
|
||||||
import de.danoeh.antennapod.view.viewholder.EpisodeItemViewHolder;
|
import de.danoeh.antennapod.view.viewholder.EpisodeItemViewHolder;
|
||||||
|
@ -270,8 +271,11 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||||
new RenameItemDialog(getActivity(), feed).show();
|
new RenameItemDialog(getActivity(), feed).show();
|
||||||
return true;
|
return true;
|
||||||
} else if (itemId == R.id.remove_feed) {
|
} 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;
|
return true;
|
||||||
} else if (itemId == R.id.action_search) {
|
} else if (itemId == R.id.action_search) {
|
||||||
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(feed.getId(), feed.getTitle()));
|
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(feed.getId(), feed.getTitle()));
|
||||||
|
|
|
@ -175,8 +175,13 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
|
||||||
new RenameItemDialog(getActivity(), feed).show();
|
new RenameItemDialog(getActivity(), feed).show();
|
||||||
return true;
|
return true;
|
||||||
} else if (itemId == R.id.remove_feed) {
|
} 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 true;
|
||||||
}
|
}
|
||||||
return super.onContextItemSelected(item);
|
return super.onContextItemSelected(item);
|
||||||
|
|
|
@ -126,7 +126,7 @@ public class FeedMenuHandler {
|
||||||
} else if (menuItemId == R.id.rename_item) {
|
} else if (menuItemId == R.id.rename_item) {
|
||||||
new RenameItemDialog(fragment.getActivity(), selectedFeed).show();
|
new RenameItemDialog(fragment.getActivity(), selectedFeed).show();
|
||||||
} else if (menuItemId == R.id.remove_feed) {
|
} else if (menuItemId == R.id.remove_feed) {
|
||||||
RemoveFeedDialog.show(context, selectedFeed);
|
RemoveFeedDialog.show(context, selectedFeed, null);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue