package com.marverenic.music.adapter;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.marverenic.adapter.EnhancedViewHolder;
import com.marverenic.adapter.HeterogeneousAdapter;
import com.marverenic.music.databinding.InstancePlaylistBinding;
import com.marverenic.music.model.ModelUtil;
import com.marverenic.music.model.Playlist;
import com.marverenic.music.viewmodel.PlaylistViewModel;
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
import java.util.List;
public class PlaylistSection extends HeterogeneousAdapter.ListSection<Playlist>
implements FastScrollRecyclerView.SectionedAdapter {
public PlaylistSection(@NonNull List<Playlist> data) {
super(data);
}
@Override
public EnhancedViewHolder<Playlist> createViewHolder(HeterogeneousAdapter adapter,
ViewGroup parent) {
return ViewHolder.createViewHolder(parent);
}
@Override
public int getId(int position) {
return (int) get(position).getPlaylistId();
}
@NonNull
@Override
public String getSectionName(int position) {
char firstChar = ModelUtil.sortableTitle(get(position).getPlaylistName()).charAt(0);
return Character.toString(firstChar).toUpperCase();
}
public static class ViewHolder extends EnhancedViewHolder<Playlist> {
private InstancePlaylistBinding mBinding;
public static ViewHolder createViewHolder(ViewGroup parent) {
InstancePlaylistBinding binding = InstancePlaylistBinding.inflate(
LayoutInflater.from(parent.getContext()), parent, false);
return new ViewHolder(binding);
}
public ViewHolder(InstancePlaylistBinding binding) {
super(binding.getRoot());
mBinding = binding;
mBinding.setViewModel(new PlaylistViewModel(itemView.getContext()));
}
@Override
public void onUpdate(Playlist item, int sectionPosition) {
mBinding.getViewModel().setPlaylist(item);
mBinding.executePendingBindings();
}
}
}