diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/base/AbsMultiSelectAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/base/AbsMultiSelectAdapter.java index db95ed9d..f313c376 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/base/AbsMultiSelectAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/base/AbsMultiSelectAdapter.java @@ -35,7 +35,7 @@ public abstract class AbsMultiSelectAdapter 1) cab.setTitle(context.getString(R.string.x_selected, size)); + + return true; } + return false; } private void openCabIfNecessary() { diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/base/MediaEntryViewHolder.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/base/MediaEntryViewHolder.java index 578dd13b..7cf3ab33 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/base/MediaEntryViewHolder.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/base/MediaEntryViewHolder.java @@ -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; diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlayingQueueAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlayingQueueAdapter.java index 2315aeaf..c1396efe 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlayingQueueAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/PlayingQueueAdapter.java @@ -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 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 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); } } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java index ce4c39b2..f291ab7d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java @@ -93,8 +93,7 @@ public class SongAdapter extends AbsMultiSelectAdapter - - + android:layout_height="wrap_content"> - - - - - + - + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml index 7a35de56..87125fcf 100644 --- a/app/src/main/res/layout/item_list.xml +++ b/app/src/main/res/layout/item_list.xml @@ -12,9 +12,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|start" - android:layout_marginLeft="-12dp" - android:layout_marginStart="-12dp" - android:src="@drawable/ic_equal_white_24dp" + android:layout_marginLeft="-8dp" + android:layout_marginStart="-8dp" + android:src="@drawable/ic_drag_vertical_white_24dp" android:tint="?icon_color" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout/item_list_single_row.xml b/app/src/main/res/layout/item_list_single_row.xml index f76dc3dc..86bb99b0 100644 --- a/app/src/main/res/layout/item_list_single_row.xml +++ b/app/src/main/res/layout/item_list_single_row.xml @@ -12,9 +12,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|start" - android:layout_marginLeft="-12dp" - android:layout_marginStart="-12dp" - android:src="@drawable/ic_equal_white_24dp" + android:layout_marginLeft="-8dp" + android:layout_marginStart="-8dp" + android:src="@drawable/ic_drag_vertical_white_24dp" android:tint="?icon_color" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a9844830..2ba5a816 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -205,7 +205,5 @@ For helping me with the design. Website Loading products… - - - Hello blank fragment + Up next