mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2026-02-04 12:55:59 +00:00
Add share to feed multi-select menu (#8187)
This commit is contained in:
committed by
GitHub
parent
b7cbd0012b
commit
d42f3725de
@ -36,25 +36,21 @@ public abstract class FeedMenuHandler {
|
||||
if (menu == null || selectedItems == null || selectedItems.isEmpty() || selectedItems.get(0) == null) {
|
||||
return false;
|
||||
}
|
||||
boolean allNotSubscribed = true;
|
||||
boolean allSubscribed = true;
|
||||
boolean allArchived = true;
|
||||
for (Feed feed : selectedItems) {
|
||||
if (feed.getState() != Feed.STATE_NOT_SUBSCRIBED) {
|
||||
allNotSubscribed = false;
|
||||
if (feed.getState() != Feed.STATE_SUBSCRIBED) {
|
||||
allSubscribed = false;
|
||||
}
|
||||
if (feed.getState() != Feed.STATE_ARCHIVED) {
|
||||
allArchived = false;
|
||||
}
|
||||
}
|
||||
if (allNotSubscribed) {
|
||||
setItemVisibility(menu, R.id.remove_archive_feed, false);
|
||||
setItemVisibility(menu, R.id.remove_all_inbox_item, false);
|
||||
}
|
||||
setItemVisibility(menu, R.id.remove_archive_feed, !allArchived);
|
||||
setItemVisibility(menu, R.id.remove_all_inbox_item, allSubscribed);
|
||||
setItemVisibility(menu, R.id.remove_archive_feed, !allArchived && allSubscribed);
|
||||
setItemVisibility(menu, R.id.remove_restore_feed, allArchived);
|
||||
if (selectedItems.size() != 1 || selectedItems.get(0).isLocalFeed()) {
|
||||
setItemVisibility(menu, R.id.share_feed, false);
|
||||
}
|
||||
boolean singleNonLocalFeedSelected = selectedItems.size() == 1 && !selectedItems.get(0).isLocalFeed();
|
||||
setItemVisibility(menu, R.id.share_feed, singleNonLocalFeedSelected);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -23,6 +23,8 @@ import de.danoeh.antennapod.ui.screen.preferences.PreferenceListDialog;
|
||||
import de.danoeh.antennapod.ui.screen.preferences.PreferenceSwitchDialog;
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import de.danoeh.antennapod.ui.share.ShareUtils;
|
||||
|
||||
public class FeedMultiSelectActionHandler {
|
||||
private static final String TAG = "FeedSelectHandler";
|
||||
private final FragmentActivity activity;
|
||||
@ -34,6 +36,9 @@ public class FeedMultiSelectActionHandler {
|
||||
}
|
||||
|
||||
public void handleAction(int id) {
|
||||
if (selectedItems.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if (id == R.id.remove_archive_feed || id == R.id.remove_restore_feed) {
|
||||
new RemoveFeedDialog(selectedItems).show(activity.getSupportFragmentManager(), null);
|
||||
} else if (id == R.id.notify_new_episodes) {
|
||||
@ -48,6 +53,10 @@ public class FeedMultiSelectActionHandler {
|
||||
playbackSpeedPrefHandler();
|
||||
} else if (id == R.id.edit_tags) {
|
||||
editFeedPrefTags();
|
||||
} else if (id == R.id.share_feed) {
|
||||
if (!selectedItems.get(0).isLocalFeed()) {
|
||||
ShareUtils.shareFeedLink(activity, selectedItems.get(0));
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "Unrecognized speed dial action item. Do nothing. id=" + id);
|
||||
}
|
||||
|
||||
@ -5,6 +5,13 @@
|
||||
android:menuCategory="container"
|
||||
android:title="@string/edit_tags"
|
||||
android:icon="@drawable/ic_tag"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/share_feed"
|
||||
android:menuCategory="container"
|
||||
android:title="@string/share_label"
|
||||
android:icon="@drawable/ic_share"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/remove_archive_feed"
|
||||
android:menuCategory="container"
|
||||
|
||||
Reference in New Issue
Block a user