summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java34
1 files changed, 33 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
index b39b41897..6d91765da 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
@@ -4,6 +4,8 @@ import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@@ -33,6 +35,8 @@ import de.danoeh.antennapod.fragment.swipeactions.SwipeActions;
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedItemFilter;
+import de.danoeh.antennapod.model.feed.SortOrder;
+import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.view.EmptyViewHandler;
import de.danoeh.antennapod.view.EpisodeItemListRecyclerView;
import de.danoeh.antennapod.view.LiftOnScrollListener;
@@ -77,6 +81,8 @@ public class CompletedDownloadsFragment extends Fragment
MaterialToolbar toolbar = root.findViewById(R.id.toolbar);
toolbar.setTitle(R.string.downloads_label);
toolbar.inflateMenu(R.menu.downloads_completed);
+ inflateSortMenu(toolbar);
+
toolbar.setOnMenuItemClickListener(this);
toolbar.setOnLongClickListener(v -> {
recyclerView.scrollToPosition(5);
@@ -139,6 +145,19 @@ public class CompletedDownloadsFragment extends Fragment
return root;
}
+ private void inflateSortMenu(MaterialToolbar toolbar) {
+ Menu menu = toolbar.getMenu();
+ MenuItem downloadsItem = menu.findItem(R.id.downloads_sort);
+ MenuInflater menuInflater = getActivity().getMenuInflater();
+ menuInflater.inflate(R.menu.sort_menu, downloadsItem.getSubMenu());
+
+ // Remove the sorting options that are not needed in this fragment
+ menu.findItem(R.id.sort_feed_title).setVisible(false);
+ menu.findItem(R.id.sort_random).setVisible(false);
+ menu.findItem(R.id.sort_smart_shuffle).setVisible(false);
+ menu.findItem(R.id.keep_sorted).setVisible(false);
+ }
+
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
outState.putBoolean(KEY_UP_ARROW, displayUpArrow);
@@ -177,10 +196,21 @@ public class CompletedDownloadsFragment extends Fragment
} else if (item.getItemId() == R.id.action_search) {
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance());
return true;
+ } else {
+ SortOrder sortOrder = MenuItemToSortOrderConverter.convert(item);
+ if (sortOrder != null) {
+ setSortOrder(sortOrder);
+ return true;
+ }
}
return false;
}
+ private void setSortOrder(SortOrder sortOrder) {
+ UserPreferences.setDownloadsSortedOrder(sortOrder);
+ loadItems();
+ }
+
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onEventMainThread(DownloadEvent event) {
Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]");
@@ -279,7 +309,9 @@ public class CompletedDownloadsFragment extends Fragment
}
emptyView.hide();
disposable = Observable.fromCallable(() -> {
- List<FeedItem> downloadedItems = DBReader.getDownloadedItems();
+ SortOrder sortOrder = UserPreferences.getDownloadsSortedOrder();
+ List<FeedItem> downloadedItems = DBReader.getDownloadedItems(sortOrder);
+
List<Long> mediaIds = new ArrayList<>();
if (runningDownloads == null) {
return downloadedItems;