Merge pull request #117 from luuknieuwdorp/dev/favorites
Add a favorites tab
This commit is contained in:
commit
b7ccf15b91
6 changed files with 39 additions and 3 deletions
|
|
@ -10,6 +10,7 @@ import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentPagerAdapter;
|
import androidx.fragment.app.FragmentPagerAdapter;
|
||||||
|
|
||||||
|
import com.dkanada.gramophone.fragments.mainactivity.library.pager.FavoritesFragment;
|
||||||
import com.dkanada.gramophone.model.CategoryInfo;
|
import com.dkanada.gramophone.model.CategoryInfo;
|
||||||
import com.dkanada.gramophone.fragments.mainactivity.library.pager.AlbumsFragment;
|
import com.dkanada.gramophone.fragments.mainactivity.library.pager.AlbumsFragment;
|
||||||
import com.dkanada.gramophone.fragments.mainactivity.library.pager.ArtistsFragment;
|
import com.dkanada.gramophone.fragments.mainactivity.library.pager.ArtistsFragment;
|
||||||
|
|
@ -154,7 +155,8 @@ public class MusicLibraryPagerAdapter extends FragmentPagerAdapter {
|
||||||
ALBUMS(AlbumsFragment.class),
|
ALBUMS(AlbumsFragment.class),
|
||||||
ARTISTS(ArtistsFragment.class),
|
ARTISTS(ArtistsFragment.class),
|
||||||
GENRES(GenresFragment.class),
|
GENRES(GenresFragment.class),
|
||||||
PLAYLISTS(PlaylistsFragment.class);
|
PLAYLISTS(PlaylistsFragment.class),
|
||||||
|
FAVORITES(FavoritesFragment.class);
|
||||||
|
|
||||||
private final Class<? extends Fragment> mFragmentClass;
|
private final Class<? extends Fragment> mFragmentClass;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.dkanada.gramophone.databinding.FragmentLibraryBinding;
|
import com.dkanada.gramophone.databinding.FragmentLibraryBinding;
|
||||||
|
import com.dkanada.gramophone.fragments.mainactivity.library.pager.FavoritesFragment;
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
import com.afollestad.materialcab.MaterialCab;
|
import com.afollestad.materialcab.MaterialCab;
|
||||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||||
|
|
@ -354,7 +355,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
.setChecked(currentSortMethod.equals(SortMethod.ADDED));
|
.setChecked(currentSortMethod.equals(SortMethod.ADDED));
|
||||||
sortMethodMenu.add(0, R.id.action_sort_method_random, 4, R.string.sort_method_random)
|
sortMethodMenu.add(0, R.id.action_sort_method_random, 4, R.string.sort_method_random)
|
||||||
.setChecked(currentSortMethod.equals(SortMethod.RANDOM));
|
.setChecked(currentSortMethod.equals(SortMethod.RANDOM));
|
||||||
} else if (fragment instanceof SongsFragment) {
|
} else if (fragment instanceof SongsFragment || fragment instanceof FavoritesFragment) {
|
||||||
sortMethodMenu.add(0, R.id.action_sort_method_name, 0, R.string.sort_method_name)
|
sortMethodMenu.add(0, R.id.action_sort_method_name, 0, R.string.sort_method_name)
|
||||||
.setChecked(currentSortMethod.equals(SortMethod.NAME));
|
.setChecked(currentSortMethod.equals(SortMethod.NAME));
|
||||||
sortMethodMenu.add(0, R.id.action_sort_method_album, 1, R.string.sort_method_album)
|
sortMethodMenu.add(0, R.id.action_sort_method_album, 1, R.string.sort_method_album)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.dkanada.gramophone.fragments.mainactivity.library.pager;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import com.dkanada.gramophone.App;
|
||||||
|
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||||
|
import com.dkanada.gramophone.util.QueryUtil;
|
||||||
|
import org.jellyfin.apiclient.model.querying.ItemFields;
|
||||||
|
import org.jellyfin.apiclient.model.querying.ItemFilter;
|
||||||
|
import org.jellyfin.apiclient.model.querying.ItemQuery;
|
||||||
|
|
||||||
|
public class FavoritesFragment extends SongsFragment {
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
protected ItemQuery createQuery() {
|
||||||
|
ItemQuery query = new ItemQuery();
|
||||||
|
|
||||||
|
query.setIncludeItemTypes(new String[]{"Audio"});
|
||||||
|
query.setFields(new ItemFields[]{ItemFields.MediaSources});
|
||||||
|
query.setUserId(App.getApiClient().getCurrentUserId());
|
||||||
|
query.setRecursive(true);
|
||||||
|
query.setLimit(PreferenceUtil.getInstance(App.getInstance()).getPageSize());
|
||||||
|
query.setStartIndex(getAdapter().getItemCount());
|
||||||
|
query.setParentId(QueryUtil.currentLibrary.getId());
|
||||||
|
query.setFilters(new ItemFilter[]{ItemFilter.IsFavorite});
|
||||||
|
|
||||||
|
QueryUtil.applySortMethod(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortMethod());
|
||||||
|
QueryUtil.applySortOrder(query, PreferenceUtil.getInstance(App.getInstance()).getSongSortOrder());
|
||||||
|
return query;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -44,7 +44,8 @@ public class CategoryInfo implements Parcelable {
|
||||||
ALBUMS(R.string.albums),
|
ALBUMS(R.string.albums),
|
||||||
ARTISTS(R.string.artists),
|
ARTISTS(R.string.artists),
|
||||||
GENRES(R.string.genres),
|
GENRES(R.string.genres),
|
||||||
PLAYLISTS(R.string.playlists);
|
PLAYLISTS(R.string.playlists),
|
||||||
|
FAVORITES(R.string.favorites);
|
||||||
|
|
||||||
public final int stringRes;
|
public final int stringRes;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -429,6 +429,7 @@ public final class PreferenceUtil {
|
||||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.ARTISTS, true));
|
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.ARTISTS, true));
|
||||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.GENRES, true));
|
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.GENRES, true));
|
||||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.PLAYLISTS, true));
|
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.PLAYLISTS, true));
|
||||||
|
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.FAVORITES, true));
|
||||||
return defaultCategories;
|
return defaultCategories;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@
|
||||||
<string name="genres">Genres</string>
|
<string name="genres">Genres</string>
|
||||||
<string name="songs">Songs</string>
|
<string name="songs">Songs</string>
|
||||||
<string name="playlists">Playlists</string>
|
<string name="playlists">Playlists</string>
|
||||||
|
<string name="favorites">Favorites</string>
|
||||||
<string name="no_playlists">No playlists</string>
|
<string name="no_playlists">No playlists</string>
|
||||||
<string name="no_albums">No albums</string>
|
<string name="no_albums">No albums</string>
|
||||||
<string name="no_songs">No songs</string>
|
<string name="no_songs">No songs</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue