From fb712b725848980e71c1ba405e22019783e7e157 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Sun, 6 Dec 2015 17:43:34 -0500 Subject: [PATCH] Add in album button that will in future add all album songs to queue. Add more details into track listing. --- .../adapters/TracksAdapter.java | 12 ++++++++++ .../fragments/AlbumFragment.java | 22 ++++++++++++++++++- app/src/main/res/layout/fragment_album.xml | 12 ++++++++++ app/src/main/res/layout/listitem_track.xml | 15 ++++++++++++- app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 61 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/TracksAdapter.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/TracksAdapter.java index 4cb59f1..fd82f11 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/TracksAdapter.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/TracksAdapter.java @@ -16,6 +16,12 @@ public class TracksAdapter extends RealmBaseAdapter { super(context, realmResults, automaticUpdate); } + private String convertSecondsToTrackTime(long seconds) { + int fullMinutes = (int) Math.floor(seconds/60); + int leftSeconds = (int) (seconds%60); + return fullMinutes+":"+String.format("%02d",leftSeconds); + } + @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { @@ -23,6 +29,12 @@ public class TracksAdapter extends RealmBaseAdapter { } TextView trackName = (TextView) convertView.findViewById(R.id.track_name); trackName.setText(realmResults.get(position).getTrackname()); + + TextView trackNum = (TextView) convertView.findViewById(R.id.track_num); + trackNum.setText(String.valueOf(realmResults.get(position).getTracknumber())); + + TextView trackLength = (TextView) convertView.findViewById(R.id.track_length); + trackLength.setText(convertSecondsToTrackTime(realmResults.get(position).getSeconds())); return convertView; } } diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumFragment.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumFragment.java index 0711584..196e586 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumFragment.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumFragment.java @@ -1,5 +1,6 @@ package com.magnatune.eyecreate.companionformagnatune.fragments; +import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.os.Build; import android.os.Bundle; @@ -7,6 +8,7 @@ import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.graphics.Palette; import android.support.v7.widget.CardView; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -16,6 +18,7 @@ import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; +import android.widget.Toast; import com.magnatune.eyecreate.companionformagnatune.R; import com.magnatune.eyecreate.companionformagnatune.adapters.TracksAdapter; @@ -81,6 +84,16 @@ public class AlbumFragment extends Fragment { Album currentAlbum = db.where(Album.class).equalTo("albumsku",getArguments().getString(ARG_ALBUM_ID)).findFirst(); ((TextView)v.findViewById(R.id.album_name)).setText(currentAlbum.getAlbumname()); ((TextView)v.findViewById(R.id.artist_name)).setText(currentAlbum.getArtist().getArtistname()); + //Set up hint for button like in menu items + v.findViewById(R.id.queue_album).setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + Toast hint = Toast.makeText(view.getContext(),R.string.queue_album,Toast.LENGTH_SHORT); + hint.setGravity(Gravity.TOP|Gravity.RIGHT,25,20); + hint.show(); + return true; + } + }); Picasso.with(getActivity()).load(currentAlbum.getCover_small()).into((ImageView) v.findViewById(R.id.album_cover), new Callback() { @Override public void onSuccess() { @@ -95,6 +108,13 @@ public class AlbumFragment extends Fragment { } if (swatch != null) { ((TextView) v.findViewById(R.id.album_name)).setTextColor(swatch.getTitleTextColor()); + ((TextView) v.findViewById(R.id.queue_album)).setTextColor(swatch.getTitleTextColor()); + + //Get a slightly off color for button background. + float[] modColor = swatch.getHsl(); + modColor[2] = (float) (modColor[2]<=0.5?modColor[2]+0.1:modColor[2]-0.1); + v.findViewById(R.id.queue_album).setBackgroundColor(Color.HSVToColor(modColor)); + ((TextView) v.findViewById(R.id.artist_name)).setTextColor(swatch.getBodyTextColor()); v.findViewById(R.id.album_details).setBackgroundColor(swatch.getRgb()); } @@ -105,7 +125,7 @@ public class AlbumFragment extends Fragment { } }); - TracksAdapter adapter = new TracksAdapter(getActivity(),db.where(Track.class).equalTo("albumname",currentAlbum.getAlbumname()).equalTo("artist",currentAlbum.getArtist().getArtistname()).findAll(),true); + TracksAdapter adapter = new TracksAdapter(getActivity(),db.where(Track.class).equalTo("albumname",currentAlbum.getAlbumname()).equalTo("artist",currentAlbum.getArtist().getArtistname()).findAllSorted("tracknumber"),true); listView.setAdapter(adapter); setListViewHeightBasedOnChildren(listView); return v; diff --git a/app/src/main/res/layout/fragment_album.xml b/app/src/main/res/layout/fragment_album.xml index 5c1ef40..dc8de24 100644 --- a/app/src/main/res/layout/fragment_album.xml +++ b/app/src/main/res/layout/fragment_album.xml @@ -43,6 +43,18 @@ android:layout_height="wrap_content" android:textSize="16sp" /> + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ccfe322..09eb114 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,4 +7,6 @@ Artists Albums + + Queue Album -- GitLab