From b9e402e8b0030a1b221188b70f2a995097e03470 Mon Sep 17 00:00:00 2001 From: zackhow Date: Sun, 20 Jan 2019 19:28:40 -0500 Subject: [PATCH] Android: Don't clear vibrators in onStop Fixes issue where vibration would stop if you swapped between apps mid emulation. --- .../dolphinemu/activities/EmulationActivity.java | 1 - .../main/java/org/dolphinemu/dolphinemu/utils/Rumble.java | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index f5309869d5c6..50cd19069b02 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -309,7 +309,6 @@ protected void restoreState(Bundle savedInstanceState) protected void onStop() { super.onStop(); - Rumble.clear(); } @Override diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java index 7acc7c4a945d..c2f7ac4d5912 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java @@ -18,10 +18,12 @@ public class Rumble { private static Vibrator phoneVibrator; - private static SparseArray emuVibrators; + private static final SparseArray emuVibrators = new SparseArray<>(); public static void initRumble(EmulationActivity activity) { + clear(); + if (activity.deviceHasTouchScreen() && PreferenceManager.getDefaultSharedPreferences(activity) .getBoolean("phoneRumble", true)) @@ -29,7 +31,6 @@ public static void initRumble(EmulationActivity activity) setPhoneVibrator(true, activity); } - emuVibrators = new SparseArray<>(); for (int i = 0; i < 8; i++) { StringSetting deviceName = @@ -65,7 +66,7 @@ public static void setPhoneVibrator(boolean set, EmulationActivity activity) } } - public static void clear() + private static void clear() { phoneVibrator = null; emuVibrators.clear();