Great progress with the new now playing screen. Almost done now.
This commit is contained in:
parent
049f3e6388
commit
0de4590a87
32 changed files with 261 additions and 103 deletions
|
|
@ -35,7 +35,7 @@ public abstract class AbsMultiSelectAdapter<VH extends RecyclerView.ViewHolder,
|
|||
this.menuRes = menuRes;
|
||||
}
|
||||
|
||||
protected void toggleChecked(final int position) {
|
||||
protected boolean toggleChecked(final int position) {
|
||||
if (cabHolder != null) {
|
||||
openCabIfNecessary();
|
||||
|
||||
|
|
@ -47,7 +47,10 @@ public abstract class AbsMultiSelectAdapter<VH extends RecyclerView.ViewHolder,
|
|||
if (size <= 0) cab.finish();
|
||||
else if (size == 1) cab.setTitle(checked.get(0).toString());
|
||||
else if (size > 1) cab.setTitle(context.getString(R.string.x_selected, size));
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void openCabIfNecessary() {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import butterknife.ButterKnife;
|
|||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class MediaEntryViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
public class MediaEntryViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
@Nullable
|
||||
@Bind(R.id.image)
|
||||
public ImageView image;
|
||||
|
|
|
|||
|
|
@ -15,20 +15,75 @@ import java.util.ArrayList;
|
|||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class PlayingQueueAdapter extends SongAdapter {
|
||||
|
||||
private static final int HISTORY = 0;
|
||||
private static final int CURRENT = 1;
|
||||
private static final int UP_NEXT = 2;
|
||||
|
||||
private int current;
|
||||
|
||||
public PlayingQueueAdapter(AppCompatActivity activity, ArrayList<Song> dataSet, @LayoutRes int itemLayoutRes, boolean usePalette, @Nullable CabHolder cabHolder) {
|
||||
super(activity, dataSet, itemLayoutRes, usePalette, cabHolder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SongAdapter.ViewHolder createViewHolder(View view) {
|
||||
return new ViewHolder(view);
|
||||
public void onBindViewHolder(@NonNull SongAdapter.ViewHolder holder, int position) {
|
||||
super.onBindViewHolder(holder, position);
|
||||
if (holder.imageText != null) {
|
||||
holder.imageText.setVisibility(View.VISIBLE);
|
||||
holder.imageText.setText("" + (position - current));
|
||||
}
|
||||
if (holder.image != null) {
|
||||
holder.image.setVisibility(View.GONE);
|
||||
}
|
||||
if (holder.getItemViewType() == HISTORY) {
|
||||
setAlpha(holder, 0.5f);
|
||||
} else if (holder.getItemViewType() == CURRENT) {
|
||||
holder.itemView.setActivated(true);
|
||||
}
|
||||
}
|
||||
|
||||
public class ViewHolder extends SongAdapter.ViewHolder {
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position < current) {
|
||||
return HISTORY;
|
||||
} else if (position > current) {
|
||||
return UP_NEXT;
|
||||
}
|
||||
return CURRENT;
|
||||
}
|
||||
|
||||
public ViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
image = null;
|
||||
@Override
|
||||
protected void loadAlbumCover(Song song, ViewHolder holder) {
|
||||
//super.loadAlbumCover(song, holder);
|
||||
}
|
||||
|
||||
public void swapDataSet(ArrayList<Song> dataSet, int position) {
|
||||
this.dataSet = dataSet;
|
||||
current = position;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void setCurrent(int current) {
|
||||
this.current = current;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
protected void setAlpha(SongAdapter.ViewHolder holder, float alpha) {
|
||||
if (holder.image != null) {
|
||||
holder.image.setAlpha(alpha);
|
||||
}
|
||||
if (holder.title != null) {
|
||||
holder.title.setAlpha(alpha);
|
||||
}
|
||||
if (holder.text != null) {
|
||||
holder.text.setAlpha(alpha);
|
||||
}
|
||||
if (holder.imageText != null) {
|
||||
holder.imageText.setAlpha(alpha);
|
||||
}
|
||||
if (holder.paletteColorContainer != null) {
|
||||
holder.paletteColorContainer.setAlpha(alpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,8 +93,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
|||
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
|
||||
final Song song = dataSet.get(position);
|
||||
|
||||
final int defaultBarColor = ColorUtil.resolveColor(activity, R.attr.default_bar_color);
|
||||
setColors(defaultBarColor, holder);
|
||||
setColors(ColorUtil.resolveColor(activity, R.attr.default_bar_color), holder);
|
||||
|
||||
boolean isChecked = isChecked(song);
|
||||
holder.itemView.setActivated(isChecked);
|
||||
|
|
@ -108,40 +107,9 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
|||
if (holder.text != null) {
|
||||
holder.text.setText(getSongText(song));
|
||||
}
|
||||
if (holder.image != null) {
|
||||
ImageLoader.getInstance().displayImage(
|
||||
getSongImageLoaderUri(song),
|
||||
holder.image,
|
||||
new DisplayImageOptions.Builder()
|
||||
.cacheInMemory(true)
|
||||
.showImageOnFail(R.drawable.default_album_art)
|
||||
.resetViewBeforeLoading(true)
|
||||
.postProcessor(new BitmapProcessor() {
|
||||
@Override
|
||||
public Bitmap process(Bitmap bitmap) {
|
||||
holder.paletteColor = ColorUtil.generateColor(activity, bitmap);
|
||||
return bitmap;
|
||||
}
|
||||
})
|
||||
.displayer(new FadeInBitmapDisplayer(FADE_IN_TIME, true, true, false) {
|
||||
@Override
|
||||
public void display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom) {
|
||||
super.display(bitmap, imageAware, loadedFrom);
|
||||
if (usePalette)
|
||||
setColors(holder.paletteColor, holder);
|
||||
}
|
||||
})
|
||||
.build(),
|
||||
new SimpleImageLoadingListener() {
|
||||
@Override
|
||||
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
|
||||
FadeInBitmapDisplayer.animate(view, FADE_IN_TIME);
|
||||
if (usePalette)
|
||||
setColors(defaultBarColor, holder);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
loadAlbumCover(song, holder);
|
||||
|
||||
}
|
||||
|
||||
private void setColors(int color, ViewHolder holder) {
|
||||
|
|
@ -156,6 +124,42 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
|||
}
|
||||
}
|
||||
|
||||
protected void loadAlbumCover(Song song, final ViewHolder holder) {
|
||||
if (holder.image == null) return;
|
||||
ImageLoader.getInstance().displayImage(
|
||||
getSongImageLoaderUri(song),
|
||||
holder.image,
|
||||
new DisplayImageOptions.Builder()
|
||||
.cacheInMemory(true)
|
||||
.showImageOnFail(R.drawable.default_album_art)
|
||||
.resetViewBeforeLoading(true)
|
||||
.postProcessor(new BitmapProcessor() {
|
||||
@Override
|
||||
public Bitmap process(Bitmap bitmap) {
|
||||
holder.paletteColor = ColorUtil.generateColor(activity, bitmap);
|
||||
return bitmap;
|
||||
}
|
||||
})
|
||||
.displayer(new FadeInBitmapDisplayer(FADE_IN_TIME, true, true, false) {
|
||||
@Override
|
||||
public void display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom) {
|
||||
super.display(bitmap, imageAware, loadedFrom);
|
||||
if (usePalette)
|
||||
setColors(holder.paletteColor, holder);
|
||||
}
|
||||
})
|
||||
.build(),
|
||||
new SimpleImageLoadingListener() {
|
||||
@Override
|
||||
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
|
||||
FadeInBitmapDisplayer.animate(view, FADE_IN_TIME);
|
||||
if (usePalette)
|
||||
setColors(ColorUtil.resolveColor(activity, R.attr.default_bar_color), holder);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
protected String getSongTitle(Song song) {
|
||||
return song.title;
|
||||
}
|
||||
|
|
@ -254,8 +258,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
|||
|
||||
@Override
|
||||
public boolean onLongClick(View view) {
|
||||
toggleChecked(getAdapterPosition());
|
||||
return true;
|
||||
return toggleChecked(getAdapterPosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue