Genres tab

This commit is contained in:
Eugene Cheung 2017-09-02 19:54:57 -04:00
commit 944b5fc1fa
No known key found for this signature in database
GPG key ID: E1FD745328866B0A
16 changed files with 739 additions and 28 deletions

View file

@ -0,0 +1,88 @@
package com.kabouzeid.gramophone.adapter;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.model.Genre;
import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.NavigationUtil;
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
import java.util.ArrayList;
public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder> implements FastScrollRecyclerView.SectionedAdapter {
public static final String TAG = GenreAdapter.class.getSimpleName();
@NonNull
private final AppCompatActivity activity;
private ArrayList<Genre> dataSet;
private int itemLayoutRes;
public GenreAdapter(@NonNull AppCompatActivity activity, ArrayList<Genre> dataSet, @LayoutRes int itemLayoutRes) {
this.activity = activity;
this.dataSet = dataSet;
this.itemLayoutRes = itemLayoutRes;
}
public ArrayList<Genre> getDataSet() {
return dataSet;
}
public void swapDataSet(ArrayList<Genre> dataSet) {
this.dataSet = dataSet;
notifyDataSetChanged();
}
@Override
public long getItemId(int position) {
return dataSet.get(position).hashCode();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
final Genre genre = dataSet.get(position);
if (holder.title != null) {
holder.title.setText(genre.name);
}
}
@Override
public int getItemCount() {
return dataSet.size();
}
@NonNull
@Override
public String getSectionName(int position) {
final Genre genre = dataSet.get(position);
return genre.id == -1 ? "" : MusicUtil.getSectionName(dataSet.get(position).name);
}
public class ViewHolder extends MediaEntryViewHolder {
public ViewHolder(@NonNull View itemView) {
super(itemView);
}
@Override
public void onClick(View view) {
Genre genre = dataSet.get(getAdapterPosition());
NavigationUtil.goToGenre(activity, genre);
}
}
}

View file

@ -12,6 +12,7 @@ import android.view.ViewGroup;
import com.kabouzeid.gramophone.R;
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.GenresFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.PlaylistsFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.SongsFragment;
@ -39,6 +40,7 @@ public class MusicLibraryPagerAdapter extends FragmentPagerAdapter {
context.getResources().getString(R.string.songs),
context.getResources().getString(R.string.albums),
context.getResources().getString(R.string.artists),
context.getResources().getString(R.string.genres),
context.getResources().getString(R.string.playlists)
};
final MusicFragments[] fragments = MusicFragments.values();
@ -110,6 +112,7 @@ public class MusicLibraryPagerAdapter extends FragmentPagerAdapter {
SONG(SongsFragment.class),
ALBUM(AlbumsFragment.class),
ARTIST(ArtistsFragment.class),
GENRES(GenresFragment.class),
PLAYLIST(PlaylistsFragment.class);
private final Class<? extends Fragment> mFragmentClass;
@ -121,12 +124,10 @@ public class MusicLibraryPagerAdapter extends FragmentPagerAdapter {
public Class<? extends Fragment> getFragmentClass() {
return mFragmentClass;
}
}
private final static class Holder {
String mClassName;
Bundle mParams;
}
}