summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java35
1 files changed, 29 insertions, 6 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
index d1ee926ac..07a64cde8 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
@@ -1,5 +1,6 @@
package de.danoeh.antennapod.dialog;
+import android.app.AlertDialog;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -84,7 +85,7 @@ public class EpisodesApplyActionFragment extends Fragment {
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.episodes_apply_action_fragment, container, false);
- mListView = (ListView) view.findViewById(android.R.id.list);
+ mListView = view.findViewById(android.R.id.list);
mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
mListView.setOnItemClickListener((ListView, view1, position, rowId) -> {
long id = episodes.get(position).getId();
@@ -95,6 +96,28 @@ public class EpisodesApplyActionFragment extends Fragment {
}
refreshCheckboxes();
});
+ mListView.setOnItemLongClickListener((adapterView, view12, position, id) -> {
+ new AlertDialog.Builder(getActivity())
+ .setItems(R.array.batch_long_press_options, (dialogInterface, item) -> {
+ int direction;
+ if (item == 0) {
+ direction = -1;
+ } else {
+ direction = 1;
+ }
+
+ int currentPosition = position + direction;
+ while (currentPosition >= 0 && currentPosition < episodes.size()) {
+ long id1 = episodes.get(currentPosition).getId();
+ if (!checkedIds.contains(id1)) {
+ checkedIds.add(id1);
+ }
+ currentPosition += direction;
+ }
+ refreshCheckboxes();
+ }).show();
+ return true;
+ });
for(FeedItem episode : episodes) {
titles.add(episode.getTitle());
@@ -106,7 +129,7 @@ public class EpisodesApplyActionFragment extends Fragment {
checkAll();
int lastVisibleDiv = 0;
- btnAddToQueue = (Button) view.findViewById(R.id.btnAddToQueue);
+ btnAddToQueue = view.findViewById(R.id.btnAddToQueue);
if((actions & ACTION_QUEUE) != 0) {
btnAddToQueue.setOnClickListener(v -> queueChecked());
lastVisibleDiv = R.id.divider1;
@@ -114,7 +137,7 @@ public class EpisodesApplyActionFragment extends Fragment {
btnAddToQueue.setVisibility(View.GONE);
view.findViewById(R.id.divider1).setVisibility(View.GONE);
}
- btnMarkAsPlayed = (Button) view.findViewById(R.id.btnMarkAsPlayed);
+ btnMarkAsPlayed = view.findViewById(R.id.btnMarkAsPlayed);
if((actions & ACTION_MARK_PLAYED) != 0) {
btnMarkAsPlayed.setOnClickListener(v -> markedCheckedPlayed());
lastVisibleDiv = R.id.divider2;
@@ -122,7 +145,7 @@ public class EpisodesApplyActionFragment extends Fragment {
btnMarkAsPlayed.setVisibility(View.GONE);
view.findViewById(R.id.divider2).setVisibility(View.GONE);
}
- btnMarkAsUnplayed = (Button) view.findViewById(R.id.btnMarkAsUnplayed);
+ btnMarkAsUnplayed = view.findViewById(R.id.btnMarkAsUnplayed);
if((actions & ACTION_MARK_UNPLAYED) != 0) {
btnMarkAsUnplayed.setOnClickListener(v -> markedCheckedUnplayed());
lastVisibleDiv = R.id.divider3;
@@ -130,7 +153,7 @@ public class EpisodesApplyActionFragment extends Fragment {
btnMarkAsUnplayed.setVisibility(View.GONE);
view.findViewById(R.id.divider3).setVisibility(View.GONE);
}
- btnDownload = (Button) view.findViewById(R.id.btnDownload);
+ btnDownload = view.findViewById(R.id.btnDownload);
if((actions & ACTION_DOWNLOAD) != 0) {
btnDownload.setOnClickListener(v -> downloadChecked());
lastVisibleDiv = R.id.divider4;
@@ -138,7 +161,7 @@ public class EpisodesApplyActionFragment extends Fragment {
btnDownload.setVisibility(View.GONE);
view.findViewById(R.id.divider4).setVisibility(View.GONE);
}
- btnDelete = (Button) view.findViewById(R.id.btnDelete);
+ btnDelete = view.findViewById(R.id.btnDelete);
if((actions & ACTION_REMOVE) != 0) {
btnDelete.setOnClickListener(v -> deleteChecked());
} else {