Massiv design optimizations and settings

This commit is contained in:
Karim Abou Zeid 2015-03-29 17:41:47 +02:00
commit b302abc2e1
117 changed files with 1104 additions and 962 deletions

View file

@ -17,9 +17,11 @@ import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.loader.AlbumLoader;
import com.kabouzeid.gramophone.model.Album;
import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PreferenceUtils;
import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import com.squareup.otto.Subscribe;
@ -47,7 +49,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
public void onBindViewHolder(final ViewHolder holder, int position) {
final Album album = dataSet.get(position);
if (usePalette) resetColors(holder.title, holder.artist, holder.footer);
resetColors(holder.title, holder.artist, holder.footer);
Picasso.with(activity)
.load(MusicUtil.getAlbumArtUri(album.id))
.placeholder(R.drawable.default_album_art)
@ -109,8 +111,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
public AlbumAdapter(Activity activity) {
this.activity = activity;
//TODO shared prefs
usePalette = true;
usePalette = PreferenceUtils.getInstance(activity).coloredAlbumFootersEnabled();
loadDataSet();
}
@ -126,7 +127,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
if (vibrantSwatch != null) {
title.setTextColor(vibrantSwatch.getTitleTextColor());
artist.setTextColor(vibrantSwatch.getTitleTextColor());
ViewUtil.animateViewColor(footer, activity.getResources().getColor(R.color.materialmusic_default_bar_color), vibrantSwatch.getRgb());
ViewUtil.animateViewColor(footer, Util.resolveColor(activity, R.attr.default_bar_color), vibrantSwatch.getRgb());
} else {
paletteBlackAndWhite(title, artist, footer);
}
@ -137,14 +138,14 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
private void paletteBlackAndWhite(final TextView title, final TextView artist, final View footer) {
title.setTextColor(Util.resolveColor(activity, R.attr.title_text_color));
artist.setTextColor(Util.resolveColor(activity, R.attr.caption_text_color));
int defaultBarColor = activity.getResources().getColor(R.color.materialmusic_default_bar_color);
int defaultBarColor = Util.resolveColor(activity, R.attr.default_bar_color);
ViewUtil.animateViewColor(footer, defaultBarColor, defaultBarColor);
}
private void resetColors(final TextView title, final TextView artist, final View footer) {
title.setTextColor(Util.resolveColor(activity, R.attr.title_text_color));
artist.setTextColor(Util.resolveColor(activity, R.attr.caption_text_color));
int defaultBarColor = activity.getResources().getColor(R.color.materialmusic_default_bar_color);
int defaultBarColor = Util.resolveColor(activity, R.attr.default_bar_color);
footer.setBackgroundColor(defaultBarColor);
}
@ -170,4 +171,14 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
break;
}
}
@Subscribe
public void onUIChangeEvent(UIPreferenceChangedEvent event) {
switch (event.getAction()) {
case UIPreferenceChangedEvent.ALBUM_OVERVIEW_PALETTE_CHANGED:
usePalette = (boolean) event.getValue();
notifyDataSetChanged();
break;
}
}
}

View file

@ -38,11 +38,12 @@ public class NavigationDrawerItemAdapter extends ArrayAdapter<NavigationDrawerIt
TextView title = (TextView) convertView.findViewById(R.id.title);
ImageView icon = (ImageView) convertView.findViewById(R.id.album_art);
title.setText(item.title);
icon.setImageResource(item.imageRes);
if (position == currentChecked) {
title.setTextColor(Util.resolveColor(getContext(), R.attr.colorAccent));
icon.setImageDrawable(Util.getTintedDrawable(getContext().getResources(), item.imageRes, Util.resolveColor(getContext(), R.attr.colorAccent)));
} else {
title.setTextColor(Util.resolveColor(getContext(), R.attr.title_text_color));
icon.setImageDrawable(Util.getTintedDrawable(getContext().getResources(), item.imageRes, Util.resolveColor(getContext(), R.attr.title_text_color)));
}
View container = convertView.findViewById(R.id.container);
container.setActivated(position == currentChecked);

View file

@ -22,6 +22,7 @@ import com.kabouzeid.gramophone.misc.AppKeys;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.Util;
import java.io.File;
import java.util.List;
@ -50,10 +51,9 @@ public class PlayingQueueAdapter extends ArrayAdapter<Song> {
title.setText(song.title);
if (MusicPlayerRemote.getPosition() == position) {
playingIndicator.setVisibility(View.VISIBLE);
playingIndicator.setImageResource(R.drawable.ic_speaker_white_48dp);
playingIndicator.setImageDrawable(Util.getTintedDrawable(getContext().getResources(), R.drawable.ic_speaker_white_48dp, Util.resolveColor(getContext(), R.attr.themed_drawable_color)));
} else {
playingIndicator.setVisibility(View.GONE);
playingIndicator.setImageBitmap(null);
}
overflowButton.setOnClickListener(new View.OnClickListener() {

View file

@ -20,7 +20,9 @@ import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
import com.kabouzeid.gramophone.model.Playlist;
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.Util;
import com.squareup.otto.Subscribe;
import com.squareup.picasso.Picasso;
import java.util.List;
@ -60,11 +62,14 @@ public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.ViewHo
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView playlistName;
private ImageView menu;
private ImageView playlistIcon;
public ViewHolder(View itemView) {
super(itemView);
playlistName = (TextView) itemView.findViewById(R.id.playlist_name);
menu = (ImageView) itemView.findViewById(R.id.menu);
playlistIcon = (ImageView) itemView.findViewById(R.id.playlist_icon);
playlistIcon.setImageDrawable(Util.getTintedDrawable(activity.getResources(), R.drawable.ic_queue_music_white_24dp, Util.resolveColor(activity, R.attr.themed_drawable_color)));
itemView.setOnClickListener(this);
menu.setOnClickListener(new View.OnClickListener() {
@Override

View file

@ -14,6 +14,7 @@ import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.model.SearchEntry;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.ui.activities.SearchActivity;
import com.kabouzeid.gramophone.util.Util;
import java.util.List;
@ -42,7 +43,7 @@ public class SearchAdapter extends ArrayAdapter<SearchEntry> {
title.setTypeface(null, Typeface.BOLD);
subTitle.setVisibility(View.GONE);
imageView.setVisibility(View.GONE);
convertView.setBackgroundColor(getContext().getResources().getColor(R.color.materialmusic_default_bar_color));
convertView.setBackgroundColor(Util.resolveColor(getContext(), R.attr.default_bar_color));
} else if (item instanceof Song) {
title.setTypeface(null, Typeface.NORMAL);
subTitle.setVisibility(View.VISIBLE);

View file

@ -54,7 +54,7 @@ public class AlbumSongAdapter extends RecyclerView.Adapter<AlbumSongAdapter.View
holder.songTitle.setText(song.title);
holder.trackNumber.setText(String.valueOf(MusicUtil.getFixedTrackNumber(song.trackNumber)));
holder.songDuration.setText(MusicUtil.getReadableDurationString(song.duration));
holder.artistName.setText(MusicUtil.getReadableDurationString(song.duration));
}
@Override
@ -65,14 +65,14 @@ public class AlbumSongAdapter extends RecyclerView.Adapter<AlbumSongAdapter.View
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView songTitle;
TextView trackNumber;
TextView songDuration;
TextView artistName;
ImageView overflowButton;
public ViewHolder(View itemView) {
super(itemView);
songTitle = (TextView) itemView.findViewById(R.id.song_title);
trackNumber = (TextView) itemView.findViewById(R.id.track_number);
songDuration = (TextView) itemView.findViewById(R.id.song_duration);
artistName = (TextView) itemView.findViewById(R.id.song_info);
overflowButton = (ImageView) itemView.findViewById(R.id.menu);
overflowButton.setOnClickListener(this);
itemView.setOnClickListener(new View.OnClickListener() {

View file

@ -83,11 +83,12 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
holder.songTitle.setTextColor(accentColor);
holder.songInfo.setVisibility(View.GONE);
holder.overflowButton.setVisibility(View.GONE);
final int padding = activity.getResources().getDimensionPixelSize(R.dimen.default_item_margin);
final int padding = activity.getResources().getDimensionPixelSize(R.dimen.default_item_margin) / 2;
holder.albumArt.setPadding(padding, padding, padding, padding);
holder.albumArt.setColorFilter(accentColor);
holder.albumArt.setImageResource(R.drawable.ic_shuffle_white_48dp);
holder.separator.setVisibility(View.VISIBLE);
holder.short_separator.setVisibility(View.GONE);
}
}
@ -102,6 +103,7 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
ImageView overflowButton;
ImageView albumArt;
View separator;
View short_separator;
public ViewHolder(View itemView) {
super(itemView);
@ -110,6 +112,7 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
albumArt = (ImageView) itemView.findViewById(R.id.album_art);
overflowButton = (ImageView) itemView.findViewById(R.id.menu);
separator = itemView.findViewById(R.id.separator);
short_separator = itemView.findViewById(R.id.short_separator);
overflowButton.setOnClickListener(this);
itemView.setOnClickListener(new View.OnClickListener() {