diff --git a/core/src/zero1hd/rhythmbullet/audio/MusicController.java b/core/src/zero1hd/rhythmbullet/audio/MusicController.java index 4f70ba8..fbcf44d 100755 --- a/core/src/zero1hd/rhythmbullet/audio/MusicController.java +++ b/core/src/zero1hd/rhythmbullet/audio/MusicController.java @@ -153,6 +153,7 @@ public class MusicController extends Observable implements OnCompletionListener, musicHeader = null; if (music != null) { music.dispose(); + music = null; } if (currentlyPlayingIndex < 0) { currentlyPlayingIndex = musicList.getTotal()-1; diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MusicSelectionPage.java b/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MusicSelectionPage.java index 02be40d..a0b54b7 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MusicSelectionPage.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MusicSelectionPage.java @@ -175,7 +175,7 @@ public class MusicSelectionPage extends Page implements Observer { super.act(delta); } - private void updateList(float delta) { + private synchronized void updateList(float delta) { if (mc.getMusicList().isSearched()) { if (mc.getMusicList().getTotal() != 0) { if (selectables.size() != mmc.size()) { @@ -231,10 +231,12 @@ public class MusicSelectionPage extends Page implements Observer { selectables.setChecked(mc.getCurrentMusicFileHandle()); } } else if (o == mc.getMusicList()) { - if (arg == mc.getMusicList().states.LOADING) { - vGroup.clear(); - selectables.clear(); - musicInfoTable.setToDefault(); + synchronized (this) { + if (arg == mc.getMusicList().states.LOADING) { + vGroup.clear(); + selectables.clear(); + musicInfoTable.setToDefault(); + } } } }