From e9142119a0aa0b22e6bacf7e898043cb5d6b64a9 Mon Sep 17 00:00:00 2001
From: = <=>
Date: Sun, 18 Mar 2018 14:47:02 +0100
Subject: [PATCH] Implemented level 9 Concurrency-bug-fixes in soundManager
---
.../main/assets/levelpacks/Icy Mountains.xml | 75 ++++++++++---------
.../endlessroll/entities/tools/Bomb.java | 2 +-
.../endlessroll/sounds/SoundManager.java | 31 +++++---
3 files changed, 60 insertions(+), 48 deletions(-)
diff --git a/app/src/main/assets/levelpacks/Icy Mountains.xml b/app/src/main/assets/levelpacks/Icy Mountains.xml
index 04cdd4a..9c030a1 100644
--- a/app/src/main/assets/levelpacks/Icy Mountains.xml
+++ b/app/src/main/assets/levelpacks/Icy Mountains.xml
@@ -600,17 +600,17 @@
-
+
-
-
-
-
-
+
+
+
+
+
-
+
@@ -622,78 +622,81 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
+
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
diff --git a/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java b/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java
index 156ede4..e2ec18a 100644
--- a/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java
+++ b/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java
@@ -19,7 +19,7 @@ public class Bomb extends Tool {
private Vector offsetToObstaclePosition = new Vector();
public Bomb(Vector position) {
- super(ToolType.BOMB, position, .2f, .2f, false, false);
+ super(ToolType.BOMB, position, .25f, .25f, false, false);
animation.setIndexSequence(new int[]{0, 1, 2});
animation.setLooping(false);
animation.setRequiredDelta(
diff --git a/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java b/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java
index bc45e35..db2f31c 100644
--- a/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java
+++ b/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java
@@ -6,6 +6,7 @@ import android.media.SoundPool;
import android.support.annotation.RawRes;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Random;
@@ -41,7 +42,7 @@ public class SoundManager {
public final Sound placeToolSound;
public final Sound magnetSound;
- private List allStartedStreams = new ArrayList<>();
+ private final List allStartedStreams = Collections.synchronizedList(new ArrayList());
public SoundManager(GameActivity gameActivity) {
this.context = gameActivity;
@@ -86,10 +87,12 @@ public class SoundManager {
public void setSoundsMuted(boolean soundsMuted) {
this.soundsMuted = soundsMuted;
- for (SoundStream stream : allStartedStreams) {
- float systemVolume = getSystemVolume();
- soundPool.setVolume(stream.getId(), systemVolume * stream.getModifiedVolume(),
- systemVolume * stream.getModifiedVolume());
+ synchronized (allStartedStreams) {
+ for (SoundStream stream : allStartedStreams) {
+ float systemVolume = getSystemVolume();
+ soundPool.setVolume(stream.getId(), systemVolume * stream.getModifiedVolume(),
+ systemVolume * stream.getModifiedVolume());
+ }
}
}
@@ -123,13 +126,17 @@ public class SoundManager {
}
public void pauseAllSounds() {
- for (SoundStream stream : allStartedStreams)
- soundPool.pause(stream.getId());
+ synchronized (allStartedStreams) {
+ for (SoundStream stream : allStartedStreams)
+ soundPool.pause(stream.getId());
+ }
}
public void resumeAllSounds() {
- for (SoundStream stream : allStartedStreams)
- soundPool.resume(stream.getId());
+ synchronized (allStartedStreams) {
+ for (SoundStream stream : allStartedStreams)
+ soundPool.resume(stream.getId());
+ }
}
public void destroy() {
@@ -169,8 +176,10 @@ public class SoundManager {
}
public void stopAllSounds() {
- for (SoundStream stream : allStartedStreams)
- soundPool.stop(stream.getId());
+ synchronized (allStartedStreams) {
+ for (SoundStream stream : allStartedStreams)
+ soundPool.stop(stream.getId());
+ }
allStartedStreams.clear();
}