Fixed a critical bug in the music service. Properly hide and show the bottom bar depending on whether the playlist is empty or not.

This commit is contained in:
Karim Abou Zeid 2015-12-25 00:17:45 +01:00
commit de31396b67
2 changed files with 8 additions and 7 deletions

View file

@ -552,7 +552,8 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
public void openQueue(@Nullable final ArrayList<Song> 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;

View file

@ -24,7 +24,7 @@ import butterknife.ButterKnife;
/**
* @author Karim Abou Zeid (kabouzeid)
* <p/>
* 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;