diff options
Diffstat (limited to 'app/src/main/java/de/danoeh')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java | 39 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java | 4 |
2 files changed, 21 insertions, 22 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 d40cee37d..25d27217b 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java @@ -8,7 +8,6 @@ import android.support.v4.app.ActivityCompat; import android.support.v4.app.Fragment; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; -import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -240,7 +239,6 @@ public class EpisodesApplyActionFragment extends Fragment { } private void sortByTitle(final boolean reverse) { - Log.d(TAG, "sortByTitle()"); Collections.sort(episodes, new Comparator<FeedItem>() { @Override public int compare(FeedItem lhs, FeedItem rhs) { @@ -293,8 +291,7 @@ public class EpisodesApplyActionFragment extends Fragment { } private void checkAll() { - for(int i=0; i < episodes.size(); i++) { - FeedItem episode = episodes.get(i); + for (FeedItem episode : episodes) { if(false == checkedIds.contains(episode.getId())) { checkedIds.add(episode.getId()); } @@ -308,8 +305,7 @@ public class EpisodesApplyActionFragment extends Fragment { } private void checkPlayed(boolean isPlayed) { - for (int i = 0; i < episodes.size(); i++) { - FeedItem episode = episodes.get(i); + for (FeedItem episode : episodes) { if(episode.isRead() == isPlayed) { if(!checkedIds.contains(episode.getId())) { checkedIds.add(episode.getId()); @@ -324,8 +320,7 @@ public class EpisodesApplyActionFragment extends Fragment { } private void checkDownloaded(boolean isDownloaded) { - for (int i = 0; i < episodes.size(); i++) { - FeedItem episode = episodes.get(i); + for (FeedItem episode : episodes) { if(episode.getMedia().isDownloaded() == isDownloaded) { if(!checkedIds.contains(episode.getId())) { checkedIds.add(episode.getId()); @@ -357,32 +352,36 @@ public class EpisodesApplyActionFragment extends Fragment { } private void queueChecked() { - DBWriter.addQueueItem(getActivity(), false, checkedIds.toArray()); + LongList orderedIds = new LongList(); + for(FeedItem episode : episodes) { + if(checkedIds.contains(episode.getId())) { + orderedIds.add((episode.getId())); + } + } + DBWriter.addQueueItem(getActivity(), false, orderedIds.toArray()); close(); } private void markedCheckedPlayed() { - for(long id : checkedIds.toArray()) { - DBWriter.markItemRead(getActivity(), id, true); - } + DBWriter.markItemRead(getActivity(), true, checkedIds.toArray()); close(); } private void markedCheckedUnplayed() { - for(long id : checkedIds.toArray()) { - DBWriter.markItemRead(getActivity(), id, false); - } + DBWriter.markItemRead(getActivity(), false, checkedIds.toArray()); close(); } private void downloadChecked() { - FeedItem[] items = new FeedItem[checkedIds.size()]; - for(int i=0; i < checkedIds.size(); i++) { - long id = checkedIds.get(i); - items[i] = findById(id); + // download the check episodes in the same order as they are currently displayed + List<FeedItem> toDownload = new ArrayList<FeedItem>(checkedIds.size()); + for(FeedItem episode : episodes) { + if(checkedIds.contains(episode.getId())) { + toDownload.add(episode); + } } try { - DBTasks.downloadFeedItems(getActivity(), items); + DBTasks.downloadFeedItems(getActivity(), toDownload.toArray(new FeedItem[0])); } catch (DownloadRequestException e) { e.printStackTrace(); DownloadRequestErrorDialogCreator.newRequestErrorDialog(getActivity(), e.getMessage()); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java index 4bce3c7ba..cbf3ffdd7 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java @@ -72,7 +72,7 @@ public class NewEpisodesFragment extends AllEpisodesFragment { Log.d(TAG, "remove(" + which + ")"); stopItemLoader(); FeedItem item = (FeedItem) listView.getAdapter().getItem(which); - DBWriter.markItemRead(getActivity(), item.getId(), true); + DBWriter.markItemRead(getActivity(), true, item.getId()); undoBarController.showUndoBar(false, getString(R.string.marked_as_read_label), new FeedItemUndoToken(item, which) @@ -88,7 +88,7 @@ public class NewEpisodesFragment extends AllEpisodesFragment { public void onUndo(FeedItemUndoToken token) { if (token != null) { long itemId = token.getFeedItemId(); - DBWriter.markItemRead(context, itemId, false); + DBWriter.markItemRead(context, false, itemId); } } @Override |