Skip to content

Commit be0416f

Browse files
symonbaikovparoj
authored andcommitted
Add reverse sort option for podcast episode lists
1 parent 5669235 commit be0416f

5 files changed

Lines changed: 38 additions & 2 deletions

File tree

app/src/main/java/github/paroj/dsub2000/fragments/SelectDirectoryFragment.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171

7272
import java.util.ArrayList;
7373
import java.util.Arrays;
74+
import java.util.Collections;
7475
import java.util.HashSet;
7576
import java.util.Set;
7677

@@ -278,6 +279,12 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
278279
menu.removeItem(R.id.menu_download_all);
279280
}
280281
}
282+
283+
MenuItem reverseItem = menu.findItem(R.id.menu_reverse_sort);
284+
if(reverseItem != null) {
285+
reverseItem.setChecked(Util.getPreferences(context)
286+
.getBoolean(Constants.PREFERENCES_KEY_REVERSE_PODCAST_SORT, false));
287+
}
281288
}
282289
}
283290

@@ -307,6 +314,16 @@ public boolean onOptionsItemSelected(MenuItem item) {
307314
case R.id.menu_radio:
308315
startArtistRadio(id);
309316
return true;
317+
case R.id.menu_reverse_sort:
318+
SharedPreferences prefs = Util.getPreferences(context);
319+
boolean newValue = !prefs.getBoolean(Constants.PREFERENCES_KEY_REVERSE_PODCAST_SORT, false);
320+
prefs.edit().putBoolean(Constants.PREFERENCES_KEY_REVERSE_PODCAST_SORT, newValue).apply();
321+
item.setChecked(newValue);
322+
Collections.reverse(entries);
323+
if(entryGridAdapter != null) {
324+
entryGridAdapter.notifyDataSetChanged();
325+
}
326+
return true;
310327
}
311328

312329
return super.onOptionsItemSelected(item);
@@ -708,6 +725,11 @@ private void finishLoading() {
708725
recyclerView.setVisibility(View.VISIBLE);
709726
}
710727

728+
if(podcastId != null && !entries.isEmpty()
729+
&& Util.getPreferences(context).getBoolean(Constants.PREFERENCES_KEY_REVERSE_PODCAST_SORT, false)) {
730+
Collections.reverse(entries);
731+
}
732+
711733
if(albumListType == null || albumListType.startsWith("starred")) {
712734
entryGridAdapter = new EntryGridAdapter(context, entries, getImageLoader(), largeAlbums);
713735
entryGridAdapter.setRemoveFromPlaylist(playlistId != null);

app/src/main/java/github/paroj/dsub2000/util/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ public final class Constants {
147147
public static final String PREFERENCES_KEY_BOOKMARKS_ENABLED = "bookmarksEnabled";
148148
public static final String PREFERENCES_KEY_INTERNET_RADIO_ENABLED = "internetRadioEnabled";
149149
public static final String PREFERENCES_KEY_CUSTOM_SORT_ENABLED = "customSortEnabled";
150+
public static final String PREFERENCES_KEY_REVERSE_PODCAST_SORT = "reversePodcastSort";
150151
public static final String PREFERENCES_KEY_MENU_PLAY_NOW = "showPlayNow";
151152
public static final String PREFERENCES_KEY_MENU_PLAY_SHUFFLED = "showPlayShuffled";
152153
public static final String PREFERENCES_KEY_MENU_PLAY_NEXT = "showPlayNext";

app/src/main/res/menu/select_podcast_episode.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414
android:id="@+id/menu_download_all"
1515
android:title="@string/select_podcasts.server_download"/>
1616

17-
<item
17+
<item
1818
android:id="@+id/menu_delete"
1919
android:title="@string/menu.delete_cache"/>
20+
21+
<item
22+
android:id="@+id/menu_reverse_sort"
23+
android:title="@string/menu.reverse_sort"
24+
android:checkable="true"
25+
compat:showAsAction="never"/>
2026
</menu>
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<menu xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:compat="http://schemas.android.com/apk/res-auto">
4-
<item
4+
<item
55
android:id="@+id/menu_delete"
66
android:title="@string/menu.delete_cache"/>
7+
8+
<item
9+
android:id="@+id/menu_reverse_sort"
10+
android:title="@string/menu.reverse_sort"
11+
android:checkable="true"
12+
compat:showAsAction="never"/>
713
</menu>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
<string name="menu.search">Search</string>
9191
<string name="menu.shuffle">Shuffle</string>
9292
<string name="menu.refresh">Refresh</string>
93+
<string name="menu.reverse_sort">Newest first</string>
9394
<string name="menu.play">Play</string>
9495
<string name="menu.play_last">Play Last</string>
9596
<string name="menu.exit">Exit</string>

0 commit comments

Comments
 (0)