package com.nf2m.adapter;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
import com.nf2m.R;
import com.nf2m.viewholder.ArtistItemViewHolder;
public class ArtistCursorAdapter extends LibraryCursorAdapter<ArtistItemViewHolder> {
@Nullable
private Cursor artistCursor;
private final Context context;
public ArtistCursorAdapter(Context context, Cursor c) {
super(context, c, MediaStore.Audio.ArtistColumns.ARTIST);
this.context = context;
artistCursor = c;
}
private String getAlbumNumberString(String numberOfAlbums) {
return context.getResources().getQuantityString(R.plurals.title_p_album,
Integer.parseInt(numberOfAlbums), numberOfAlbums);
}
//Artist listesindeki ögenin elementlerinin bağlantıları oluşturulur.
//Yani bir view oluşturulur
@NonNull
@Override
public ArtistItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = inflateCustomViewAndListView(parent, R.layout.artists_custom_layout);
return new ArtistItemViewHolder(itemView, clickListener, longClickListener);
}
//Oluşturulan view ile veri taban veriler birbirine bağlanır.
@Override
public void onBindViewHolder(@NonNull ArtistItemViewHolder holder, int position) {
artistCursor = getCursor();
if (artistCursor.moveToPosition(position)) {
String artistName = artistCursor.getString(getColumnIndex(MediaStore.Audio.ArtistColumns.ARTIST));
String numberOfAlbums = artistCursor.getString(getColumnIndex(MediaStore.Audio.ArtistColumns.NUMBER_OF_ALBUMS));
holder.tvArtistName.setText(artistName);
holder.tvNumberOfAlbums.setText(numberOfAlbums);
holder.tvNumberOfAlbums.setText(getAlbumNumberString(numberOfAlbums));
if (isPositionChecked(position)) {
holder.artistBackground.setVisibility(View.VISIBLE);
holder.ivCheck.setVisibility(View.VISIBLE);
} else {
holder.artistBackground.setVisibility(View.GONE);
holder.ivCheck.setVisibility(View.GONE);
}
}
}
@Override
public int getItemCount() {
artistCursor = getCursor();
return artistCursor.getCount();
}
}