diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java index 67d58191..39866cc8 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -552,7 +552,8 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP public void openQueue(@Nullable final ArrayList playingQueue, final int startPosition, final boolean startPlaying) { if (playingQueue != null && !playingQueue.isEmpty() && startPosition >= 0 && startPosition < playingQueue.size()) { - originalPlayingQueue = playingQueue; + // it is important to copy the playing queue here first as we might add/remove songs later + originalPlayingQueue = new ArrayList<>(playingQueue); this.playingQueue = new ArrayList<>(originalPlayingQueue); int position = startPosition; diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java index 24e44fb5..77c24472 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java @@ -24,7 +24,7 @@ import butterknife.ButterKnife; /** * @author Karim Abou Zeid (kabouzeid) *

- * Do not use {@link #setContentView(int)} but wrap your layout with + * Do not use {@link #setContentView(int)}. Instead wrap your layout with * {@link #wrapSlidingMusicPanel(int)} first and then return it in {@link #createContentView()} */ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivity implements SlidingUpPanelLayout.PanelSlideListener, PlayerFragment.Callbacks { @@ -71,8 +71,6 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi }); slidingUpPanelLayout.setPanelSlideListener(this); - hideBottomBar(MusicPlayerRemote.getPlayingQueue().isEmpty()); - playerFragment.onHide(); } @@ -155,9 +153,10 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi public void hideBottomBar(final boolean hide) { if (hide) { - slidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); - } else if (getPanelState() == SlidingUpPanelLayout.PanelState.HIDDEN) { + slidingUpPanelLayout.setPanelHeight(0); collapsePanel(); + } else { + slidingUpPanelLayout.setPanelHeight(getResources().getDimensionPixelSize(R.dimen.mini_player_height)); } } @@ -171,7 +170,8 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi @Override public void onBackPressed() { - if (playerFragment.onBackPressed()) return; + if (slidingUpPanelLayout.getPanelHeight() != 0 && playerFragment.onBackPressed()) + return; if (getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) { collapsePanel(); return;