Support song ordering; add/fix album year sort
This commit is contained in:
parent
3b62a4578f
commit
60cb868beb
8 changed files with 69 additions and 23 deletions
|
|
@ -198,8 +198,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
||||||
sectionName = dataSet.get(position).getArtistName();
|
sectionName = dataSet.get(position).getArtistName();
|
||||||
break;
|
break;
|
||||||
case SortOrder.AlbumSortOrder.ALBUM_YEAR:
|
case SortOrder.AlbumSortOrder.ALBUM_YEAR:
|
||||||
sectionName = Integer.toString(dataSet.get(position).getYear());
|
return Integer.toString(dataSet.get(position).getYear());
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return MusicUtil.getSectionName(sectionName);
|
return MusicUtil.getSectionName(sectionName);
|
||||||
|
|
|
||||||
|
|
@ -190,24 +190,22 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Nullable String sectionName = null;
|
@Nullable String sectionName = null;
|
||||||
// switch (PreferenceUtil.getInstance(activity).getSongSortOrder()) {
|
switch (PreferenceUtil.getInstance(activity).getSongSortOrder()) {
|
||||||
// case SortOrder.SongSortOrder.SONG_A_Z:
|
case SortOrder.SongSortOrder.SONG_A_Z:
|
||||||
// case SortOrder.SongSortOrder.SONG_Z_A:
|
case SortOrder.SongSortOrder.SONG_Z_A:
|
||||||
// sectionName = dataSet.get(position).title;
|
sectionName = dataSet.get(position).title;
|
||||||
// break;
|
break;
|
||||||
// case SortOrder.SongSortOrder.SONG_ALBUM:
|
case SortOrder.SongSortOrder.SONG_ALBUM:
|
||||||
// sectionName = dataSet.get(position).albumName;
|
sectionName = dataSet.get(position).albumName;
|
||||||
// break;
|
break;
|
||||||
// case SortOrder.SongSortOrder.SONG_ARTIST:
|
case SortOrder.SongSortOrder.SONG_ARTIST:
|
||||||
// sectionName = dataSet.get(position).artistName;
|
sectionName = dataSet.get(position).artistName;
|
||||||
// break;
|
break;
|
||||||
// case SortOrder.SongSortOrder.SONG_YEAR:
|
case SortOrder.SongSortOrder.SONG_YEAR:
|
||||||
// sectionName = Integer.toString(dataSet.get(position).year);
|
return Integer.toString(dataSet.get(position).year);
|
||||||
// break;
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
String sectionName = dataSet.get(position).title;
|
|
||||||
return MusicUtil.getSectionName(sectionName);
|
return MusicUtil.getSectionName(sectionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,8 +64,7 @@ public final class SortOrder {
|
||||||
+ ", " + MediaStore.Audio.Albums.DEFAULT_SORT_ORDER;
|
+ ", " + MediaStore.Audio.Albums.DEFAULT_SORT_ORDER;
|
||||||
|
|
||||||
/* Album sort order year */
|
/* Album sort order year */
|
||||||
String ALBUM_YEAR = MediaStore.Audio.Albums.FIRST_YEAR + " DESC";
|
String ALBUM_YEAR = MediaStore.Audio.Media.YEAR + " DESC";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.AbsLibra
|
||||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.PlaylistsFragment;
|
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.PlaylistsFragment;
|
||||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.AlbumsFragment;
|
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.AlbumsFragment;
|
||||||
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.ArtistsFragment;
|
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.ArtistsFragment;
|
||||||
|
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.SongsFragment;
|
||||||
import com.kabouzeid.gramophone.util.PhonographColorUtil;
|
import com.kabouzeid.gramophone.util.PhonographColorUtil;
|
||||||
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
||||||
import com.kabouzeid.gramophone.util.Util;
|
import com.kabouzeid.gramophone.util.Util;
|
||||||
|
|
@ -350,11 +351,24 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_Z_A));
|
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_Z_A));
|
||||||
sortOrderMenu.add(0, R.id.action_album_sort_artist, 2, R.string.sort_artist)
|
sortOrderMenu.add(0, R.id.action_album_sort_artist, 2, R.string.sort_artist)
|
||||||
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_ARTIST));
|
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_ARTIST));
|
||||||
|
sortOrderMenu.add(0, R.id.action_album_sort_year, 3, R.string.sort_year)
|
||||||
|
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_YEAR));
|
||||||
} else if (fragment instanceof ArtistsFragment) {
|
} else if (fragment instanceof ArtistsFragment) {
|
||||||
sortOrderMenu.add(0, R.id.action_artist_sort_asc, 0, R.string.sort_a_z)
|
sortOrderMenu.add(0, R.id.action_artist_sort_asc, 0, R.string.sort_a_z)
|
||||||
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_A_Z));
|
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_A_Z));
|
||||||
sortOrderMenu.add(0, R.id.action_artist_sort_desc, 1, R.string.sort_z_a)
|
sortOrderMenu.add(0, R.id.action_artist_sort_desc, 1, R.string.sort_z_a)
|
||||||
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_Z_A));
|
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_Z_A));
|
||||||
|
} else if (fragment instanceof SongsFragment) {
|
||||||
|
sortOrderMenu.add(0, R.id.action_song_sort_asc, 0, R.string.sort_a_z)
|
||||||
|
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_A_Z));
|
||||||
|
sortOrderMenu.add(0, R.id.action_song_sort_desc, 1, R.string.sort_z_a)
|
||||||
|
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_Z_A));
|
||||||
|
sortOrderMenu.add(0, R.id.action_song_sort_artist, 2, R.string.sort_artist)
|
||||||
|
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_ARTIST));
|
||||||
|
sortOrderMenu.add(0, R.id.action_song_sort_album, 3, R.string.sort_album)
|
||||||
|
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_ALBUM));
|
||||||
|
sortOrderMenu.add(0, R.id.action_song_sort_year, 4, R.string.sort_year)
|
||||||
|
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_YEAR));
|
||||||
}
|
}
|
||||||
|
|
||||||
sortOrderMenu.setGroupCheckable(0, true, true);
|
sortOrderMenu.setGroupCheckable(0, true, true);
|
||||||
|
|
@ -373,6 +387,9 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
case R.id.action_album_sort_artist:
|
case R.id.action_album_sort_artist:
|
||||||
sortOrder = SortOrder.AlbumSortOrder.ALBUM_ARTIST;
|
sortOrder = SortOrder.AlbumSortOrder.ALBUM_ARTIST;
|
||||||
break;
|
break;
|
||||||
|
case R.id.action_album_sort_year:
|
||||||
|
sortOrder = SortOrder.AlbumSortOrder.ALBUM_YEAR;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else if (fragment instanceof ArtistsFragment) {
|
} else if (fragment instanceof ArtistsFragment) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
|
|
@ -383,6 +400,24 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
sortOrder = SortOrder.ArtistSortOrder.ARTIST_Z_A;
|
sortOrder = SortOrder.ArtistSortOrder.ARTIST_Z_A;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else if (fragment instanceof SongsFragment) {
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case R.id.action_song_sort_asc:
|
||||||
|
sortOrder = SortOrder.SongSortOrder.SONG_A_Z;
|
||||||
|
break;
|
||||||
|
case R.id.action_song_sort_desc:
|
||||||
|
sortOrder = SortOrder.SongSortOrder.SONG_Z_A;
|
||||||
|
break;
|
||||||
|
case R.id.action_song_sort_artist:
|
||||||
|
sortOrder = SortOrder.SongSortOrder.SONG_ARTIST;
|
||||||
|
break;
|
||||||
|
case R.id.action_song_sort_album:
|
||||||
|
sortOrder = SortOrder.SongSortOrder.SONG_ALBUM;
|
||||||
|
break;
|
||||||
|
case R.id.action_song_sort_year:
|
||||||
|
sortOrder = SortOrder.SongSortOrder.SONG_YEAR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sortOrder != null) {
|
if (sortOrder != null) {
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,9 @@ public class SongsFragment extends AbsLibraryPagerRecyclerViewCustomGridSizeFrag
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void saveSortOrder(String sortOrder) {
|
protected void saveSortOrder(String sortOrder) {
|
||||||
//PreferenceUtil.getInstance(getActivity()).setSongSortOrder(sortOrder);
|
PreferenceUtil.getInstance(getActivity()).setSongSortOrder(sortOrder);
|
||||||
|
onMediaStoreChanged();
|
||||||
|
getAdapter().notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -254,6 +254,12 @@ public final class PreferenceUtil {
|
||||||
return mPreferences.getString(SONG_SORT_ORDER, SortOrder.SongSortOrder.SONG_A_Z);
|
return mPreferences.getString(SONG_SORT_ORDER, SortOrder.SongSortOrder.SONG_A_Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSongSortOrder(final String sortOrder) {
|
||||||
|
final SharedPreferences.Editor editor = mPreferences.edit();
|
||||||
|
editor.putString(SONG_SORT_ORDER, sortOrder);
|
||||||
|
editor.apply();
|
||||||
|
}
|
||||||
|
|
||||||
public final String getGenreSortOrder() {
|
public final String getGenreSortOrder() {
|
||||||
return mPreferences.getString(GENRE_SORT_ORDER, SortOrder.GenreSortOrder.GENRE_A_Z);
|
return mPreferences.getString(GENRE_SORT_ORDER, SortOrder.GenreSortOrder.GENRE_A_Z);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,12 @@
|
||||||
<item name="action_album_sort_asc" type="id" />
|
<item name="action_album_sort_asc" type="id" />
|
||||||
<item name="action_album_sort_desc" type="id" />
|
<item name="action_album_sort_desc" type="id" />
|
||||||
<item name="action_album_sort_artist" type="id" />
|
<item name="action_album_sort_artist" type="id" />
|
||||||
|
<item name="action_album_sort_year" type="id" />
|
||||||
<item name="action_artist_sort_asc" type="id" />
|
<item name="action_artist_sort_asc" type="id" />
|
||||||
<item name="action_artist_sort_desc" type="id" />
|
<item name="action_artist_sort_desc" type="id" />
|
||||||
|
<item name="action_song_sort_asc" type="id" />
|
||||||
|
<item name="action_song_sort_desc" type="id" />
|
||||||
|
<item name="action_song_sort_artist" type="id" />
|
||||||
|
<item name="action_song_sort_album" type="id" />
|
||||||
|
<item name="action_song_sort_year" type="id" />
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -299,4 +299,5 @@
|
||||||
<string name="sort_z_a">Descending</string>
|
<string name="sort_z_a">Descending</string>
|
||||||
<string name="sort_artist">Artist</string>
|
<string name="sort_artist">Artist</string>
|
||||||
<string name="sort_album">Album</string>
|
<string name="sort_album">Album</string>
|
||||||
|
<string name="sort_year">Year</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue