package com.architjn.acjmusicplayer.ui.layouts.fragments; import android.Manifest; import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import com.afollestad.async.Async; import com.architjn.acjmusicplayer.R; import com.architjn.acjmusicplayer.utils.ListSongs; import com.architjn.acjmusicplayer.utils.PermissionChecker; import com.architjn.acjmusicplayer.utils.decorations.SimpleDividerItemDecoration; import com.architjn.acjmusicplayer.utils.adapters.ArtistsListAdapter; import com.architjn.acjmusicplayer.utils.items.Artist; import java.util.ArrayList; /** * Created by architjn on 27/11/15. */ public class ArtistListFragment extends Fragment { private Context context; private View mainView; private RecyclerView rv; private ArtistsListAdapter adapter; private PermissionChecker permissionChecker; private View emptyView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_artists, container, false); context = view.getContext(); mainView = view; init(); return view; } private void init() { rv = (RecyclerView) mainView.findViewById(R.id.songsListContainer); emptyView = mainView.findViewById(R.id.artist_empty_view); checkPermissions(); } private void checkPermissions() { permissionChecker = new PermissionChecker(context, getActivity(), mainView); permissionChecker.check(Manifest.permission.WRITE_EXTERNAL_STORAGE, getResources().getString(R.string.storage_permission), new PermissionChecker.OnPermissionResponse() { @Override public void onAccepted() { setArtistList(); } @Override public void onDecline() { getActivity().finish(); } }); } @Override public void onDestroy() { super.onDestroy(); Async.cancelAll(); } private void setArtistList() { rv.setLayoutManager(new LinearLayoutManager(context)); rv.addItemDecoration(new SimpleDividerItemDecoration(context, 75)); ArrayList<Artist> items = ListSongs.getArtistList(context); adapter = new ArtistsListAdapter(context, items, this); rv.setAdapter(adapter); rv.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); adapter.recyclerScrolled(); } @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == AbsListView.OnScrollListener.SCROLL_STATE_FLING) { // Do something } else if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { // Do something } else { // Do something } } }); if (items.size() < 1) listIsEmpty(); } public void listIsEmpty() { emptyView.setVisibility(View.VISIBLE); rv.setVisibility(View.GONE); } public void listNoMoreEmpty() { rv.setVisibility(View.VISIBLE); emptyView.setVisibility(View.GONE); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { permissionChecker.onRequestPermissionsResult(requestCode, permissions, grantResults); } public void onBackPress() { adapter.onBackPressed(); } }