package com.naman14.timber.nowplaying; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.graphics.drawable.TransitionDrawable; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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.ImageView; import com.naman14.timber.MusicPlayer; import com.naman14.timber.R; import com.naman14.timber.adapters.SlidingQueueAdapter; import com.naman14.timber.dataloaders.QueueLoader; import com.naman14.timber.utils.ImageUtils; import net.steamcrafted.materialiconlib.MaterialDrawableBuilder; /** * Created by naman on 22/02/17. */ public class Timber5 extends BaseNowplayingFragment { ImageView mBlurredArt; RecyclerView recyclerView; SlidingQueueAdapter adapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate( R.layout.fragment_timber5, container, false); setMusicStateListener(); setSongDetails(rootView); mBlurredArt = (ImageView) rootView.findViewById(R.id.album_art_blurred); recyclerView = (RecyclerView) rootView.findViewById(R.id.queue_recyclerview_horizontal) ; initGestures(mBlurredArt); setupSlidingQueue(); return rootView; } @Override public void updateShuffleState() { if (shuffle != null && getActivity() != null) { MaterialDrawableBuilder builder = MaterialDrawableBuilder.with(getActivity()) .setIcon(MaterialDrawableBuilder.IconValue.SHUFFLE) .setSizeDp(30); if (MusicPlayer.getShuffleMode() == 0) { builder.setColor(Color.WHITE); } else builder.setColor(accentColor); shuffle.setImageDrawable(builder.build()); shuffle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { MusicPlayer.cycleShuffle(); updateShuffleState(); updateRepeatState(); } }); } } @Override public void updateRepeatState() { if (repeat != null && getActivity() != null) { MaterialDrawableBuilder builder = MaterialDrawableBuilder.with(getActivity()) .setIcon(MaterialDrawableBuilder.IconValue.REPEAT) .setSizeDp(30); if (MusicPlayer.getRepeatMode() == 0) { builder.setColor(Color.WHITE); } else builder.setColor(accentColor); repeat.setImageDrawable(builder.build()); repeat.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { MusicPlayer.cycleRepeat(); updateRepeatState(); updateShuffleState(); } }); } } @Override public void doAlbumArtStuff(Bitmap loadedImage) { setBlurredAlbumArt blurredAlbumArt = new setBlurredAlbumArt(); blurredAlbumArt.execute(loadedImage); } private void setupSlidingQueue() { recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false)); adapter = new SlidingQueueAdapter((AppCompatActivity) getActivity(), QueueLoader.getQueueSongs(getActivity())); recyclerView.setAdapter(adapter); recyclerView.scrollToPosition(MusicPlayer.getQueuePosition() - 3); } private class setBlurredAlbumArt extends AsyncTask<Bitmap, Void, Drawable> { @Override protected Drawable doInBackground(Bitmap... loadedImage) { Drawable drawable = null; try { drawable = ImageUtils.createBlurredImageFromBitmap(loadedImage[0], getActivity(), 12); } catch (Exception e) { e.printStackTrace(); } return drawable; } @Override protected void onPostExecute(Drawable result) { if (result != null) { if (mBlurredArt.getDrawable() != null) { final TransitionDrawable td = new TransitionDrawable(new Drawable[]{ mBlurredArt.getDrawable(), result }); mBlurredArt.setImageDrawable(td); td.startTransition(200); } else { mBlurredArt.setImageDrawable(result); } } } @Override protected void onPreExecute() { } } }