package com.nf2m.fragment; import android.annotation.TargetApi; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Build; import android.os.Bundle; import android.provider.MediaStore; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; import android.support.v7.graphics.Palette; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.RelativeLayout; import com.nf2m.R; import com.nf2m.activity.TarMediaPlayerActivity; import com.nf2m.adapter.ArtistCursorAdapter; import com.nf2m.listener.ActionItemClick; import com.nf2m.listener.OnItemClickListener; import com.nf2m.model.Artists; import com.nf2m.model.Library; import com.nf2m.model.Songs; public class ArtistsFragment extends BaseFragment implements ActionItemClick, OnItemClickListener { public static final String EXTRA_ARTIST = "artist"; private RecyclerView lvArtistsList; private Library artists; private Cursor artistCursor; private ArtistCursorAdapter artistAdapter; @TargetApi(Build.VERSION_CODES.KITKAT) @Override public void onViewCreated(View view, Bundle savedInstanceState) { initLvArtistList(); initArtists(); initArtistCursor(); initArtistCursorAdapter(); lvArtistListSetSongAdapter(); if (artistCursor.getCount() == 0) { // RelativeLayout noSongs = (RelativeLayout) view.findViewById(R.id.noSongs); // noSongs.setVisibility(View.VISIBLE); } setLayoutManager(); setListeners(); fastScroller.setVisibility(View.GONE); super.onViewCreated(view, savedInstanceState); setSearchSelection(MediaStore.Audio.ArtistColumns.ARTIST); ((TarMediaPlayerActivity) getActivity()).setActionBarTitle(getString(R.string.title_artists)); } private void setListeners() { artistAdapter.setOnItemClickListener(this); artistAdapter.setOnLongItemClickListener(this); } private void lvArtistListSetSongAdapter() { lvArtistsList.setAdapter(artistAdapter); setLvLibraryList(lvArtistsList); } private void initArtistCursorAdapter() { artistAdapter = new ArtistCursorAdapter(getActivity(), artistCursor); setLibraryAdapter(artistAdapter); } private void initArtistCursor() { artistCursor = artists.getCursor(); setLibraryCursor(artistCursor); } private void initArtists() { artists = new Artists(getActivity()); setLibraries(artists); } private void initLvArtistList() { lvArtistsList = (RecyclerView) view.findViewById(R.id.lvList); } @Nullable @Override public Cursor initSelectedItemCursor() { Library songs = new Songs(getContext()); String[] artistsName = getStringArray(MediaStore.Audio.ArtistColumns.ARTIST); String selection = getSelection(MediaStore.Audio.AudioColumns.ARTIST, artistsName); Cursor cursor = getContext().getContentResolver().query(songs.getUri(), null, selection, null, songs.getSortOrder()); assert cursor != null; setSelectedSongNumber(cursor.getCount()); return cursor; } private String getStringInCursor(@NonNull Cursor cursor, String uri) { return cursor.getString(artistCursor.getColumnIndexOrThrow(uri)); } @Override public void actionClick(int position) { artistCursor.moveToPosition(position); String artistsName = getStringInCursor(artistCursor, MediaStore.Audio.ArtistColumns.ARTIST); ArtistAlbumFragment artistSongFragment = new ArtistAlbumFragment(); Bundle bundle = new Bundle(); bundle.putString(EXTRA_ARTIST, artistsName); artistSongFragment.setArguments(bundle); if (TarMediaPlayerActivity.sdkInt >= Build.VERSION_CODES.LOLLIPOP) { initAnim(artistSongFragment); } isArtist = true; getFragmentManager().beginTransaction().replace(R.id.container, artistSongFragment). addToBackStack(artistSongFragment.getClass().getName()).commit(); } @Override public void onItemClick(int position) { if (actionMode != null) { toggleSelection(position); return; } if (isFilter) { position = getPositionInMainCursor(position); actionClick(position); searchView.clearFocus(); } else { actionClick(position); } } @Override public void onDestroy() { artistCursor.close(); super.onDestroy(); } @Override public void setLayoutManager() { } }