Lots of progress with dynamic theming, the nav drawer now uses a RecyclerView, AboutDeveloperDialogHelper is now a DialogFragment, RTL support (to suppress Lint warnings), other various small fixes, cleaned up and formatted lot of code (and removed un-used resources), R.string.ok > android.R.string.ok, R.string.cancel > android.R.string.cancel, switched dialog helpers to DialogFragments.
This commit is contained in:
parent
c1b258dadd
commit
7ce86afd74
265 changed files with 2853 additions and 2292 deletions
|
|
@ -12,17 +12,15 @@ import android.view.ViewGroup;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
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;
|
||||
import com.squareup.picasso.Callback;
|
||||
|
|
@ -31,12 +29,13 @@ import com.squareup.picasso.Picasso;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 24.11.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder> {
|
||||
|
||||
public static final String TAG = AlbumAdapter.class.getSimpleName();
|
||||
private Activity activity;
|
||||
private boolean usePalette;
|
||||
private final Activity activity;
|
||||
private final boolean usePalette;
|
||||
private List<Album> dataSet;
|
||||
|
||||
@Override
|
||||
|
|
@ -83,10 +82,10 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
|||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
ImageView image;
|
||||
TextView title;
|
||||
TextView artist;
|
||||
View footer;
|
||||
final ImageView image;
|
||||
final TextView title;
|
||||
final TextView artist;
|
||||
final View footer;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
|
@ -105,7 +104,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
|||
)};
|
||||
if (activity instanceof AbsFabActivity)
|
||||
albumPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, dataSet.get(getPosition()).id, albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, dataSet.get(getAdapterPosition()).id, albumPairs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -127,7 +126,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
|||
if (vibrantSwatch != null) {
|
||||
title.setTextColor(vibrantSwatch.getTitleTextColor());
|
||||
artist.setTextColor(vibrantSwatch.getTitleTextColor());
|
||||
ViewUtil.animateViewColor(footer, Util.resolveColor(activity, R.attr.default_bar_color), vibrantSwatch.getRgb());
|
||||
ViewUtil.animateViewColor(footer, DialogUtils.resolveColor(activity, R.attr.default_bar_color), vibrantSwatch.getRgb());
|
||||
} else {
|
||||
paletteBlackAndWhite(title, artist, footer);
|
||||
}
|
||||
|
|
@ -136,31 +135,19 @@ 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 = Util.resolveColor(activity, R.attr.default_bar_color);
|
||||
title.setTextColor(DialogUtils.resolveColor(activity, R.attr.title_text_color));
|
||||
artist.setTextColor(DialogUtils.resolveColor(activity, R.attr.caption_text_color));
|
||||
int defaultBarColor = DialogUtils.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 = Util.resolveColor(activity, R.attr.default_bar_color);
|
||||
title.setTextColor(DialogUtils.resolveColor(activity, R.attr.title_text_color));
|
||||
artist.setTextColor(DialogUtils.resolveColor(activity, R.attr.caption_text_color));
|
||||
int defaultBarColor = DialogUtils.resolveColor(activity, R.attr.default_bar_color);
|
||||
footer.setBackgroundColor(defaultBarColor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetachedFromRecyclerView(RecyclerView recyclerView) {
|
||||
super.onDetachedFromRecyclerView(recyclerView);
|
||||
App.bus.unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
|
||||
super.onAttachedToRecyclerView(recyclerView);
|
||||
App.bus.register(this);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDataBaseEvent(DataBaseChangedEvent event) {
|
||||
switch (event.getAction()) {
|
||||
|
|
@ -171,14 +158,4 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@ import com.squareup.picasso.Picasso;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 29.12.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder> {
|
||||
protected Activity activity;
|
||||
protected final Activity activity;
|
||||
protected List<Artist> dataSet;
|
||||
|
||||
public ArtistAdapter(Activity activity) {
|
||||
|
|
@ -70,9 +70,9 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
|
|||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
TextView artistName;
|
||||
TextView artistInfo;
|
||||
ImageView artistImage;
|
||||
final TextView artistName;
|
||||
final TextView artistInfo;
|
||||
final ImageView artistImage;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
|
@ -90,7 +90,7 @@ public class ArtistAdapter extends RecyclerView.Adapter<ArtistAdapter.ViewHolder
|
|||
)};
|
||||
if (activity instanceof AbsFabActivity)
|
||||
artistPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(artistPairs);
|
||||
NavigationUtil.goToArtist(activity, dataSet.get(getPosition()).id, artistPairs);
|
||||
NavigationUtil.goToArtist(activity, dataSet.get(getAdapterPosition()).id, artistPairs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import com.squareup.picasso.Picasso;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 24.11.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class ArtistAlbumAdapter extends RecyclerView.Adapter<ArtistAlbumAdapter.ViewHolder> {
|
||||
public static final String TAG = AlbumAdapter.class.getSimpleName();
|
||||
|
|
@ -28,9 +28,9 @@ public class ArtistAlbumAdapter extends RecyclerView.Adapter<ArtistAlbumAdapter.
|
|||
private static final int TYPE_MIDDLE = 2;
|
||||
private static final int TYPE_LAST = 3;
|
||||
|
||||
private Activity activity;
|
||||
private List<Album> dataSet;
|
||||
private int listMargin;
|
||||
private final Activity activity;
|
||||
private final List<Album> dataSet;
|
||||
private final int listMargin;
|
||||
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
|
|
@ -72,9 +72,9 @@ public class ArtistAlbumAdapter extends RecyclerView.Adapter<ArtistAlbumAdapter.
|
|||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
ImageView image;
|
||||
TextView title;
|
||||
TextView year;
|
||||
final ImageView image;
|
||||
final TextView title;
|
||||
final TextView year;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
|
@ -92,7 +92,7 @@ public class ArtistAlbumAdapter extends RecyclerView.Adapter<ArtistAlbumAdapter.
|
|||
)};
|
||||
if (activity instanceof AbsFabActivity)
|
||||
albumPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, dataSet.get(getPosition()).id, albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, dataSet.get(getAdapterPosition()).id, albumPairs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,52 +1,121 @@
|
|||
package com.kabouzeid.gramophone.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Build;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialdialogs.ThemeSingleton;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.dialogs.ColorChooserDialog;
|
||||
import com.kabouzeid.gramophone.model.NavigationDrawerItem;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
import com.kabouzeid.gramophone.ui.fragments.NavigationDrawerFragment;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by karim on 23.11.14.
|
||||
* @author Aidan Follestad (afollestad)
|
||||
*/
|
||||
public class NavigationDrawerItemAdapter extends ArrayAdapter<NavigationDrawerItem> {
|
||||
private int currentChecked = -1;
|
||||
public class NavigationDrawerItemAdapter extends RecyclerView.Adapter<NavigationDrawerItemAdapter.ShortcutViewHolder> implements View.OnClickListener {
|
||||
|
||||
public NavigationDrawerItemAdapter(Context context, int resource, List<NavigationDrawerItem> objects) {
|
||||
super(context, resource, objects);
|
||||
// per the Material design guidelines
|
||||
@SuppressWarnings("FieldCanBeLocal")
|
||||
private final int ALPHA_ACTIVATED = 255;
|
||||
@SuppressWarnings("FieldCanBeLocal")
|
||||
private final int ALPHA_ICON = 138;
|
||||
@SuppressWarnings("FieldCanBeLocal")
|
||||
private final int ALPHA_TEXT = 222;
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int index = (Integer) v.getTag();
|
||||
if (mCallback != null)
|
||||
mCallback.onItemSelected(index);
|
||||
}
|
||||
|
||||
public static class ShortcutViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
public ShortcutViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
divider = itemView.findViewById(R.id.divider);
|
||||
container = itemView.findViewById(R.id.container);
|
||||
title = (TextView) itemView.findViewById(R.id.title);
|
||||
icon = (ImageView) itemView.findViewById(R.id.icon);
|
||||
}
|
||||
|
||||
final TextView title;
|
||||
final ImageView icon;
|
||||
final View divider;
|
||||
final View container;
|
||||
}
|
||||
|
||||
private int currentChecked = -1;
|
||||
private int navIconColor;
|
||||
private final ArrayList<NavigationDrawerItem> mItems;
|
||||
private final Callback mCallback;
|
||||
|
||||
public interface Callback {
|
||||
void onItemSelected(int index);
|
||||
}
|
||||
|
||||
public NavigationDrawerItemAdapter(Context context, ArrayList<NavigationDrawerItem> objects, Callback callback) {
|
||||
navIconColor = DialogUtils.resolveColor(context, R.attr.nav_drawer_icon_color);
|
||||
if (DialogUtils.isColorDark(navIconColor))
|
||||
navIconColor = ColorChooserDialog.shiftColorUp(navIconColor);
|
||||
mItems = objects;
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
public void setChecked(int position) {
|
||||
int oldPosition = currentChecked;
|
||||
currentChecked = position;
|
||||
notifyDataSetChanged();
|
||||
if (oldPosition != -1)
|
||||
notifyItemChanged(oldPosition);
|
||||
notifyItemChanged(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
NavigationDrawerItem item = getItem(position);
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_navigation_drawer, parent, false);
|
||||
}
|
||||
TextView title = (TextView) convertView.findViewById(R.id.title);
|
||||
ImageView icon = (ImageView) convertView.findViewById(R.id.album_art);
|
||||
title.setText(item.title);
|
||||
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.themed_drawable_color)));
|
||||
}
|
||||
View container = convertView.findViewById(R.id.container);
|
||||
container.setActivated(position == currentChecked);
|
||||
return convertView;
|
||||
public ShortcutViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_navigation_drawer, parent, false);
|
||||
return new ShortcutViewHolder(view);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(ShortcutViewHolder holder, int position) {
|
||||
NavigationDrawerItem item = mItems.get(position);
|
||||
|
||||
holder.title.setText(item.title);
|
||||
holder.icon.setImageResource(item.imageRes);
|
||||
holder.divider.setVisibility(position == NavigationDrawerFragment.ABOUT_INDEX ?
|
||||
View.VISIBLE : View.GONE);
|
||||
|
||||
final boolean selected = position == currentChecked;
|
||||
final int iconColor = selected ? ThemeSingleton.get().positiveColor : navIconColor;
|
||||
final int textColor = selected ? ThemeSingleton.get().positiveColor : navIconColor;
|
||||
|
||||
holder.title.setTextColor(textColor);
|
||||
holder.title.setAlpha(selected ? ALPHA_ACTIVATED : ALPHA_TEXT);
|
||||
holder.icon.setColorFilter(iconColor, PorterDuff.Mode.SRC_ATOP);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
holder.icon.setImageAlpha(selected ? ALPHA_ACTIVATED : ALPHA_ICON);
|
||||
} else {
|
||||
// noinspection deprecation
|
||||
holder.icon.setAlpha(selected ? ALPHA_ACTIVATED : ALPHA_ICON);
|
||||
}
|
||||
|
||||
holder.container.setActivated(selected);
|
||||
holder.container.setTag(position);
|
||||
holder.container.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mItems.size();
|
||||
}
|
||||
}
|
||||
|
|
@ -29,7 +29,7 @@ public class PagerAdapter extends FragmentPagerAdapter {
|
|||
|
||||
private int mCurrentPage;
|
||||
|
||||
private String[] titles;
|
||||
private final String[] titles;
|
||||
|
||||
public PagerAdapter(final Context context, final FragmentManager fragmentManager) {
|
||||
super(fragmentManager);
|
||||
|
|
@ -68,16 +68,15 @@ public class PagerAdapter extends FragmentPagerAdapter {
|
|||
if (mWeakFragment != null) {
|
||||
mWeakFragment.clear();
|
||||
}
|
||||
mFragmentArray.put(position, new WeakReference<Fragment>(mFragment));
|
||||
mFragmentArray.put(position, new WeakReference<>(mFragment));
|
||||
return mFragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(final int position) {
|
||||
final Holder mCurrentHolder = mHolderList.get(position);
|
||||
final Fragment mFragment = Fragment.instantiate(mContext,
|
||||
return Fragment.instantiate(mContext,
|
||||
mCurrentHolder.mClassName, mCurrentHolder.mParams);
|
||||
return mFragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -114,7 +113,7 @@ public class PagerAdapter extends FragmentPagerAdapter {
|
|||
ARTIST(ArtistViewFragment.class),
|
||||
PLAYLIST(PlaylistViewFragment.class);
|
||||
|
||||
private Class<? extends Fragment> mFragmentClass;
|
||||
private final Class<? extends Fragment> mFragmentClass;
|
||||
|
||||
MusicFragments(final Class<? extends Fragment> fragmentClass) {
|
||||
mFragmentClass = fragmentClass;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.kabouzeid.gramophone.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -10,31 +9,24 @@ import android.widget.ArrayAdapter;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.AddToPlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.DeleteSongsDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
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;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by karim on 24.01.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class PlayingQueueAdapter extends ArrayAdapter<Song> {
|
||||
private Activity activity;
|
||||
|
||||
public PlayingQueueAdapter(Activity activity, List<Song> playList) {
|
||||
private final ActionBarActivity activity;
|
||||
|
||||
public PlayingQueueAdapter(ActionBarActivity activity, ArrayList<Song> playList) {
|
||||
super(activity, R.layout.item_list_playlist_song, playList);
|
||||
this.activity = activity;
|
||||
}
|
||||
|
|
@ -52,7 +44,7 @@ public class PlayingQueueAdapter extends ArrayAdapter<Song> {
|
|||
title.setText(song.title);
|
||||
if (MusicPlayerRemote.getPosition() == position) {
|
||||
playingIndicator.setVisibility(View.VISIBLE);
|
||||
playingIndicator.setImageDrawable(Util.getTintedDrawable(getContext().getResources(), R.drawable.ic_speaker_white_48dp, Util.resolveColor(getContext(), R.attr.themed_drawable_color)));
|
||||
playingIndicator.setImageDrawable(Util.getTintedDrawable(getContext(), R.drawable.ic_speaker_white_48dp, DialogUtils.resolveColor(getContext(), R.attr.themed_drawable_color)));
|
||||
} else {
|
||||
playingIndicator.setVisibility(View.GONE);
|
||||
}
|
||||
|
|
@ -65,7 +57,7 @@ public class PlayingQueueAdapter extends ArrayAdapter<Song> {
|
|||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
if(item.getItemId() == R.id.action_remove_from_playing_queue) {
|
||||
if (item.getItemId() == R.id.action_remove_from_playing_queue) {
|
||||
MusicPlayerRemote.removeFromQueue(position);
|
||||
notifyDataSetChanged();
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.kabouzeid.gramophone.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
|
|
@ -24,14 +24,15 @@ import com.squareup.otto.Subscribe;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 16.03.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.ViewHolder> {
|
||||
|
||||
public static final String TAG = PlaylistAdapter.class.getSimpleName();
|
||||
protected Activity activity;
|
||||
protected final ActionBarActivity activity;
|
||||
protected List<Playlist> dataSet;
|
||||
|
||||
public PlaylistAdapter(Activity activity) {
|
||||
public PlaylistAdapter(ActionBarActivity activity) {
|
||||
this.activity = activity;
|
||||
loadDataSet();
|
||||
}
|
||||
|
|
@ -57,8 +58,8 @@ public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.ViewHo
|
|||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
public TextView playlistName;
|
||||
private ImageView menu;
|
||||
public final TextView playlistName;
|
||||
private final ImageView menu;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
|
@ -73,7 +74,8 @@ public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.ViewHo
|
|||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
return MenuItemClickHelper.handlePlaylistMenuClick(activity, dataSet.get(getAdapterPosition()), item);
|
||||
return MenuItemClickHelper.handlePlaylistMenuClick(
|
||||
activity, dataSet.get(getAdapterPosition()), item);
|
||||
}
|
||||
});
|
||||
popupMenu.show();
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package com.kabouzeid.gramophone.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -12,22 +12,23 @@ import android.widget.ImageView;
|
|||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Created by karim on 27.02.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class SearchAdapter extends ArrayAdapter<SearchEntry>{
|
||||
private Activity activity;
|
||||
public class SearchAdapter extends ArrayAdapter<SearchEntry> {
|
||||
|
||||
public SearchAdapter(Activity activity, List<SearchEntry> objects) {
|
||||
private final ActionBarActivity activity;
|
||||
|
||||
public SearchAdapter(ActionBarActivity activity, List<SearchEntry> objects) {
|
||||
super(activity, R.layout.item_list_search, objects);
|
||||
this.activity = activity;
|
||||
}
|
||||
|
|
@ -50,7 +51,7 @@ public class SearchAdapter extends ArrayAdapter<SearchEntry>{
|
|||
subTitle.setVisibility(View.GONE);
|
||||
imageView.setVisibility(View.GONE);
|
||||
overflowButton.setVisibility(View.GONE);
|
||||
convertView.setBackgroundColor(Util.resolveColor(getContext(), R.attr.default_bar_color));
|
||||
convertView.setBackgroundColor(DialogUtils.resolveColor(getContext(), R.attr.default_bar_color));
|
||||
} else if (item instanceof Song) {
|
||||
title.setTypeface(null, Typeface.NORMAL);
|
||||
subTitle.setVisibility(View.VISIBLE);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
|
|
@ -13,32 +11,23 @@ import android.widget.PopupMenu;
|
|||
import android.widget.TextView;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.AddToPlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.DeleteSongsDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by karim on 27.11.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class AlbumSongAdapter extends RecyclerView.Adapter<AlbumSongAdapter.ViewHolder> {
|
||||
|
||||
public static final String TAG = AlbumSongAdapter.class.getSimpleName();
|
||||
protected final ActionBarActivity activity;
|
||||
protected final ArrayList<Song> dataSet;
|
||||
|
||||
protected Activity activity;
|
||||
protected List<Song> dataSet;
|
||||
|
||||
public AlbumSongAdapter(Activity activity, List<Song> objects) {
|
||||
public AlbumSongAdapter(ActionBarActivity activity, ArrayList<Song> objects) {
|
||||
this.activity = activity;
|
||||
dataSet = objects;
|
||||
}
|
||||
|
|
@ -66,10 +55,10 @@ public class AlbumSongAdapter extends RecyclerView.Adapter<AlbumSongAdapter.View
|
|||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
TextView songTitle;
|
||||
TextView trackNumber;
|
||||
TextView artistName;
|
||||
ImageView overflowButton;
|
||||
final TextView songTitle;
|
||||
final TextView trackNumber;
|
||||
final TextView artistName;
|
||||
final ImageView overflowButton;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -11,33 +10,25 @@ import android.widget.ArrayAdapter;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.AddToPlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.DeleteSongsDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 14.03.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class ArtistSongAdapter extends ArrayAdapter<Song> {
|
||||
private Activity activity;
|
||||
|
||||
public ArtistSongAdapter(Activity activity, List<Song> songs) {
|
||||
private final ActionBarActivity activity;
|
||||
|
||||
public ArtistSongAdapter(ActionBarActivity activity, List<Song> songs) {
|
||||
super(activity, R.layout.item_list_song, songs);
|
||||
this.activity = activity;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
|
|
@ -22,17 +22,19 @@ import com.kabouzeid.gramophone.util.NavigationUtil;
|
|||
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 27.11.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class PlaylistSongAdapter extends RecyclerView.Adapter<PlaylistSongAdapter.ViewHolder> {
|
||||
public static final String TAG = AlbumSongAdapter.class.getSimpleName();
|
||||
protected Activity activity;
|
||||
protected List<PlaylistSong> dataSet;
|
||||
|
||||
public PlaylistSongAdapter(Activity activity, List<PlaylistSong> objects) {
|
||||
public static final String TAG = AlbumSongAdapter.class.getSimpleName();
|
||||
protected final ActionBarActivity activity;
|
||||
protected final ArrayList<PlaylistSong> dataSet;
|
||||
|
||||
public PlaylistSongAdapter(ActionBarActivity activity, ArrayList<PlaylistSong> objects) {
|
||||
this.activity = activity;
|
||||
dataSet = objects;
|
||||
}
|
||||
|
|
@ -62,10 +64,10 @@ public class PlaylistSongAdapter extends RecyclerView.Adapter<PlaylistSongAdapte
|
|||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
TextView songTitle;
|
||||
TextView songInfo;
|
||||
ImageView overflowButton;
|
||||
ImageView albumArt;
|
||||
final TextView songTitle;
|
||||
final TextView songInfo;
|
||||
final ImageView overflowButton;
|
||||
final ImageView albumArt;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
|
@ -77,7 +79,8 @@ public class PlaylistSongAdapter extends RecyclerView.Adapter<PlaylistSongAdapte
|
|||
itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MusicPlayerRemote.openQueue((List<Song>) (List) dataSet, getAdapterPosition(), true);
|
||||
//noinspection unchecked
|
||||
MusicPlayerRemote.openQueue((ArrayList<Song>) (List) dataSet, getAdapterPosition(), true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
|
|
@ -13,41 +12,35 @@ import android.widget.ImageView;
|
|||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialdialogs.ThemeSingleton;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.AddToPlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.DeleteSongsDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.loader.SongLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
import com.squareup.otto.Subscribe;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by karim on 27.11.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
|
||||
|
||||
public static final String TAG = AlbumSongAdapter.class.getSimpleName();
|
||||
private static final int SHUFFLE_BUTTON = 0;
|
||||
private static final int SONG = 1;
|
||||
|
||||
protected Activity activity;
|
||||
protected List<Song> dataSet;
|
||||
protected final ActionBarActivity activity;
|
||||
protected ArrayList<Song> dataSet;
|
||||
|
||||
public SongAdapter(Activity activity) {
|
||||
public SongAdapter(ActionBarActivity activity) {
|
||||
this.activity = activity;
|
||||
loadDataSet();
|
||||
}
|
||||
|
|
@ -80,15 +73,14 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
|
|||
.placeholder(R.drawable.default_album_art)
|
||||
.into(holder.albumArt);
|
||||
} else {
|
||||
int accentColor = Util.resolveColor(activity, R.attr.colorAccent);
|
||||
holder.songTitle.setText(activity.getResources().getString(R.string.shuffle_all).toUpperCase());
|
||||
holder.songTitle.setTextColor(accentColor);
|
||||
holder.songTitle.setTextColor(ThemeSingleton.get().positiveColor);
|
||||
holder.songTitle.setTypeface(Typeface.create("sans-serif-medium", Typeface.NORMAL));
|
||||
holder.songInfo.setVisibility(View.GONE);
|
||||
holder.overflowButton.setVisibility(View.GONE);
|
||||
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.setColorFilter(ThemeSingleton.get().positiveColor);
|
||||
holder.albumArt.setImageResource(R.drawable.ic_shuffle_white_48dp);
|
||||
holder.separator.setVisibility(View.VISIBLE);
|
||||
holder.short_separator.setVisibility(View.GONE);
|
||||
|
|
@ -101,12 +93,12 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
|
|||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
TextView songTitle;
|
||||
TextView songInfo;
|
||||
ImageView overflowButton;
|
||||
ImageView albumArt;
|
||||
View separator;
|
||||
View short_separator;
|
||||
final TextView songTitle;
|
||||
final TextView songInfo;
|
||||
final ImageView overflowButton;
|
||||
final ImageView albumArt;
|
||||
final View separator;
|
||||
final View short_separator;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue