diff --git a/app/src/main/java/com/kabouzeid/materialmusic/adapter/PlayListAdapter.java b/app/src/main/java/com/kabouzeid/materialmusic/adapter/PlayingQueueAdapter.java similarity index 91% rename from app/src/main/java/com/kabouzeid/materialmusic/adapter/PlayListAdapter.java rename to app/src/main/java/com/kabouzeid/materialmusic/adapter/PlayingQueueAdapter.java index 9d0f9837..dfcf697a 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/adapter/PlayListAdapter.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/adapter/PlayingQueueAdapter.java @@ -17,11 +17,11 @@ import java.util.List; /** * Created by karim on 24.01.15. */ -public class PlayListAdapter extends ArrayAdapter { +public class PlayingQueueAdapter extends ArrayAdapter { private Context context; private App app; - public PlayListAdapter(Context context, List playList) { + public PlayingQueueAdapter(Context context, List playList) { super(context, R.layout.item_playlist, playList); this.context = context; app = (App) context.getApplicationContext(); diff --git a/app/src/main/java/com/kabouzeid/materialmusic/helper/MusicPlayerRemote.java b/app/src/main/java/com/kabouzeid/materialmusic/helper/MusicPlayerRemote.java index 35a09bbd..f1969b84 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/helper/MusicPlayerRemote.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/helper/MusicPlayerRemote.java @@ -227,6 +227,19 @@ public class MusicPlayerRemote implements OnMusicRemoteEventListener { return false; } + public void moveSong(int from, int to){ + final int currentPosition = getPosition(); + Song songToMove = getPlayingQueue().remove(from); + getPlayingQueue().add(to, songToMove); + if(from > currentPosition && to <= currentPosition){ + setPosition(getPosition() + 1); + } else if(from < currentPosition && to >= currentPosition){ + setPosition(getPosition() - 1); + } else if(from == currentPosition){ + setPosition(to); + } + } + @Override public void onMusicRemoteEvent(MusicRemoteEvent event) { notifyOnMusicRemoteEventListeners(event.getAction()); diff --git a/app/src/main/java/com/kabouzeid/materialmusic/helper/PlayingQueueDialogHelper.java b/app/src/main/java/com/kabouzeid/materialmusic/helper/PlayingQueueDialogHelper.java index 93523ed4..9c9e5bc6 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/helper/PlayingQueueDialogHelper.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/helper/PlayingQueueDialogHelper.java @@ -5,7 +5,7 @@ import android.content.Context; import com.afollestad.materialdialogs.MaterialDialog; import com.kabouzeid.materialmusic.App; import com.kabouzeid.materialmusic.R; -import com.kabouzeid.materialmusic.adapter.PlayListAdapter; +import com.kabouzeid.materialmusic.adapter.PlayingQueueAdapter; import com.kabouzeid.materialmusic.model.Song; import com.mobeta.android.dslv.DragSortListView; @@ -34,15 +34,13 @@ public class PlayingQueueDialogHelper { }) .build(); final DragSortListView dragSortListView = (DragSortListView) dialog.getCustomView().findViewById(R.id.dragSortListView); - final PlayListAdapter playListAdapter = new PlayListAdapter(context, app.getMusicPlayerRemote().getPlayingQueue()); - dragSortListView.setAdapter(playListAdapter); + final PlayingQueueAdapter playingQueueAdapter = new PlayingQueueAdapter(context, app.getMusicPlayerRemote().getPlayingQueue()); + dragSortListView.setAdapter(playingQueueAdapter); dragSortListView.setDropListener(new DragSortListView.DropListener() { @Override public void drop(int from, int to) { - Song songToMove = app.getMusicPlayerRemote().getPlayingQueue().get(from); - app.getMusicPlayerRemote().getPlayingQueue().remove(from); - app.getMusicPlayerRemote().getPlayingQueue().add(to, songToMove); - playListAdapter.notifyDataSetChanged(); + app.getMusicPlayerRemote().moveSong(from, to); + playingQueueAdapter.notifyDataSetChanged(); } }); return dialog;