From 8ebb9854e6b371c8b8d6a013d13cb583040ac64a Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Tue, 16 Oct 2018 14:31:49 +0200 Subject: [PATCH] Allow to select all above in batch editor --- .../dialog/EpisodesApplyActionFragment.java | 23 +++++++++++++++++++ core/src/main/res/values/arrays.xml | 5 ++++ core/src/main/res/values/strings.xml | 2 ++ 3 files changed, 30 insertions(+) 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..7f054f5dd 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; @@ -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()); diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml index c02b700e4..7e2fed054 100644 --- a/core/src/main/res/values/arrays.xml +++ b/core/src/main/res/values/arrays.xml @@ -272,4 +272,9 @@ stop continue + + + @string/select_all_above + @string/select_all_below + diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 8ae9957cb..7037020bc 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -144,6 +144,8 @@ Refresh complete podcast Hide Episodes Batch edit + Select all above + Select all below Unplayed Paused Played