From 68ebb5c33e49aec1b7a49f1b1de94ef2291d319c Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 18 Sep 2022 14:33:02 +0200 Subject: [PATCH] Android: Remove old rumble implementation --- .../dolphinemu/dolphinemu/NativeLibrary.java | 20 ---- .../activities/EmulationActivity.java | 17 ---- .../settings/model/BooleanSetting.java | 2 - .../dolphinemu/dolphinemu/utils/Rumble.java | 97 ------------------- .../res/menu/menu_overlay_controls_gc.xml | 5 - .../res/menu/menu_overlay_controls_wii.xml | 5 - Source/Android/jni/AndroidCommon/IDCache.cpp | 7 -- Source/Android/jni/AndroidCommon/IDCache.h | 1 - 8 files changed, 154 deletions(-) delete mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java index 5f3c8f839f..1db70b72d9 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -18,7 +18,6 @@ import org.dolphinemu.dolphinemu.activities.EmulationActivity; import org.dolphinemu.dolphinemu.dialogs.AlertMessage; import org.dolphinemu.dolphinemu.utils.CompressCallback; import org.dolphinemu.dolphinemu.utils.Log; -import org.dolphinemu.dolphinemu.utils.Rumble; import java.lang.ref.WeakReference; import java.util.LinkedHashMap; @@ -234,25 +233,6 @@ public final class NativeLibrary // Disallows instantiation. } - /** - * Rumble sent from native. Currently only supports phone rumble. - * - * @param padID Ignored for now. Future use would be to pass rumble to a connected controller - * @param state Ignored for now since phone rumble can't just be 'turned' on/off - */ - @Keep - public static void rumble(int padID, double state) - { - final EmulationActivity emulationActivity = sEmulationActivity.get(); - if (emulationActivity == null) - { - Log.warning("[NativeLibrary] EmulationActivity is null"); - return; - } - - Rumble.checkRumble(padID, state); - } - /** * Gets the Dolphin version string. * 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 18372b1d20..a90209b264 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 @@ -64,7 +64,6 @@ import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner; import org.dolphinemu.dolphinemu.utils.ControllerMappingHelper; import org.dolphinemu.dolphinemu.utils.FileBrowserHelper; import org.dolphinemu.dolphinemu.utils.IniFile; -import org.dolphinemu.dolphinemu.utils.Rumble; import org.dolphinemu.dolphinemu.utils.ThemeHelper; import java.io.File; @@ -157,7 +156,6 @@ public final class EmulationActivity extends AppCompatActivity implements ThemeP public static final int MENU_ACTION_EXIT = 22; public static final int MENU_ACTION_CHANGE_DISC = 23; public static final int MENU_ACTION_JOYSTICK_REL_CENTER = 24; - public static final int MENU_ACTION_RUMBLE = 25; public static final int MENU_ACTION_RESET_OVERLAY = 26; public static final int MENU_SET_IR_RECENTER = 27; public static final int MENU_SET_IR_MODE = 28; @@ -192,7 +190,6 @@ public final class EmulationActivity extends AppCompatActivity implements ThemeP EmulationActivity.MENU_ACTION_CHOOSE_CONTROLLER); buttonsActionsMap.append(R.id.menu_emulation_joystick_rel_center, EmulationActivity.MENU_ACTION_JOYSTICK_REL_CENTER); - buttonsActionsMap.append(R.id.menu_emulation_rumble, EmulationActivity.MENU_ACTION_RUMBLE); buttonsActionsMap .append(R.id.menu_emulation_reset_overlay, EmulationActivity.MENU_ACTION_RESET_OVERLAY); buttonsActionsMap.append(R.id.menu_emulation_ir_recenter, @@ -360,8 +357,6 @@ public final class EmulationActivity extends AppCompatActivity implements ThemeP // Set these options now so that the SurfaceView the game renders into is the right size. enableFullscreenImmersive(); - Rumble.initRumble(this); - ActivityEmulationBinding binding = ActivityEmulationBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); @@ -627,8 +622,6 @@ public final class EmulationActivity extends AppCompatActivity implements ThemeP // Populate the switch value for joystick center on touch menu.findItem(R.id.menu_emulation_joystick_rel_center) .setChecked(BooleanSetting.MAIN_JOYSTICK_REL_CENTER.getBoolean(mSettings)); - menu.findItem(R.id.menu_emulation_rumble) - .setChecked(BooleanSetting.MAIN_PHONE_RUMBLE.getBoolean(mSettings)); if (wii) { menu.findItem(R.id.menu_emulation_ir_recenter) @@ -668,10 +661,6 @@ public final class EmulationActivity extends AppCompatActivity implements ThemeP item.setChecked(!item.isChecked()); toggleJoystickRelCenter(item.isChecked()); break; - case MENU_ACTION_RUMBLE: - item.setChecked(!item.isChecked()); - toggleRumble(item.isChecked()); - break; case MENU_SET_IR_RECENTER: item.setChecked(!item.isChecked()); toggleRecenter(item.isChecked()); @@ -842,12 +831,6 @@ public final class EmulationActivity extends AppCompatActivity implements ThemeP BooleanSetting.MAIN_JOYSTICK_REL_CENTER.setBoolean(mSettings, state); } - private void toggleRumble(boolean state) - { - BooleanSetting.MAIN_PHONE_RUMBLE.setBoolean(mSettings, state); - Rumble.setPhoneVibrator(state, this); - } - private void toggleRecenter(boolean state) { BooleanSetting.MAIN_IR_ALWAYS_RECENTER.setBoolean(mSettings, state); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java index 1194e1f56a..cbaa7a4292 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java @@ -100,8 +100,6 @@ public enum BooleanSetting implements AbstractBooleanSetting "UseBlackBackgrounds", false), MAIN_JOYSTICK_REL_CENTER(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, "JoystickRelCenter", true), - MAIN_PHONE_RUMBLE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, - "PhoneRumble", true), MAIN_SHOW_INPUT_OVERLAY(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, "ShowInputOverlay", true), MAIN_IR_ALWAYS_RECENTER(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, 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 deleted file mode 100644 index 27d556898a..0000000000 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java +++ /dev/null @@ -1,97 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -package org.dolphinemu.dolphinemu.utils; - -import android.content.Context; -import android.os.Build; -import android.os.VibrationEffect; -import android.os.Vibrator; -import android.util.SparseArray; -import android.view.InputDevice; - -import org.dolphinemu.dolphinemu.activities.EmulationActivity; -import org.dolphinemu.dolphinemu.features.settings.model.AdHocStringSetting; -import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting; -import org.dolphinemu.dolphinemu.features.settings.model.Settings; -import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile; - -public class Rumble -{ - private static Vibrator phoneVibrator; - private static final SparseArray emuVibrators = new SparseArray<>(); - - public static void initRumble(EmulationActivity activity) - { - clear(); - - if (BooleanSetting.MAIN_PHONE_RUMBLE.getBooleanGlobal()) - { - setPhoneVibrator(true, activity); - } - - for (int i = 0; i < 8; i++) - { - String deviceName = AdHocStringSetting.getStringGlobal(Settings.FILE_DOLPHIN, - Settings.SECTION_BINDINGS, SettingsFile.KEY_EMU_RUMBLE + i, ""); - - if (!deviceName.isEmpty()) - { - for (int id : InputDevice.getDeviceIds()) - { - InputDevice device = InputDevice.getDevice(id); - if (deviceName.equals(device.getDescriptor())) - { - Vibrator vib = device.getVibrator(); - if (vib != null && vib.hasVibrator()) - emuVibrators.put(i, vib); - } - } - } - } - } - - public static void setPhoneVibrator(boolean set, EmulationActivity activity) - { - if (set) - { - Vibrator vib = (Vibrator) activity.getSystemService(Context.VIBRATOR_SERVICE); - if (vib != null && vib.hasVibrator()) - phoneVibrator = vib; - } - else - { - phoneVibrator = null; - } - } - - private static void clear() - { - phoneVibrator = null; - emuVibrators.clear(); - } - - public static void checkRumble(int padId, double state) - { - if (phoneVibrator != null) - doRumble(phoneVibrator); - - if (emuVibrators.get(padId) != null) - doRumble(emuVibrators.get(padId)); - } - - public static void doRumble(Vibrator vib) - { - // Check again that it exists and can vibrate - if (vib != null && vib.hasVibrator()) - { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) - { - vib.vibrate(VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE)); - } - else - { - vib.vibrate(100); - } - } - } -} diff --git a/Source/Android/app/src/main/res/menu/menu_overlay_controls_gc.xml b/Source/Android/app/src/main/res/menu/menu_overlay_controls_gc.xml index 418d58f008..e55c310b22 100644 --- a/Source/Android/app/src/main/res/menu/menu_overlay_controls_gc.xml +++ b/Source/Android/app/src/main/res/menu/menu_overlay_controls_gc.xml @@ -19,11 +19,6 @@ android:checkable="true" android:title="@string/emulation_control_joystick_rel_center"/> - - diff --git a/Source/Android/app/src/main/res/menu/menu_overlay_controls_wii.xml b/Source/Android/app/src/main/res/menu/menu_overlay_controls_wii.xml index e5182f6ffe..c3dcb47c33 100644 --- a/Source/Android/app/src/main/res/menu/menu_overlay_controls_wii.xml +++ b/Source/Android/app/src/main/res/menu/menu_overlay_controls_wii.xml @@ -19,11 +19,6 @@ android:id="@+id/menu_emulation_joystick_rel_center" android:checkable="true" android:title="@string/emulation_control_joystick_rel_center"/> - - (env->NewGlobalRef(native_library_class)); s_display_alert_msg = env->GetStaticMethodID(s_native_library_class, "displayAlertMsg", "(Ljava/lang/String;Ljava/lang/String;ZZZ)Z"); - s_do_rumble = env->GetStaticMethodID(s_native_library_class, "rumble", "(ID)V"); s_update_touch_pointer = env->GetStaticMethodID(s_native_library_class, "updateTouchPointer", "()V"); s_on_title_changed = env->GetStaticMethodID(s_native_library_class, "onTitleChanged", "()V"); diff --git a/Source/Android/jni/AndroidCommon/IDCache.h b/Source/Android/jni/AndroidCommon/IDCache.h index 58a0aa17bd..79ab19acaa 100644 --- a/Source/Android/jni/AndroidCommon/IDCache.h +++ b/Source/Android/jni/AndroidCommon/IDCache.h @@ -13,7 +13,6 @@ jclass GetStringClass(); jclass GetNativeLibraryClass(); jmethodID GetDisplayAlertMsg(); -jmethodID GetDoRumble(); jmethodID GetUpdateTouchPointer(); jmethodID GetOnTitleChanged(); jmethodID GetFinishEmulationActivity();