summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-10-21 16:48:18 +0200
committerGitHub <noreply@github.com>2020-10-21 16:48:18 +0200
commitf265c412b449f7054468fae6e13a890bb0d3c098 (patch)
tree14ff80cc906bf8bd74c29b83ad4684a9670e00e1 /Source/Android/app/src/main/java
parent642eccbfd04d3e20a87d694c3201254d593a2aa2 (diff)
parent353a67824d7276f5638319a6f7f4e261c5ef0728 (diff)
Merge pull request #9152 from Ebola16/SP1
Android: Convert SharedPreferences to INI Settings (simple cases)
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java145
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java80
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java7
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java1
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java24
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java95
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlayDrawableJoystick.java26
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Rumble.java4
9 files changed, 226 insertions, 158 deletions
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 d37856d402..705be47560 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
@@ -114,7 +114,7 @@ public final class NativeLibrary
public static final int NUNCHUK_SWING_UP = 208;
public static final int NUNCHUK_SWING_DOWN = 209;
public static final int NUNCHUK_SWING_LEFT = 210;
- public static final int NUNCHUK_SWING_RIGHT = 221;
+ public static final int NUNCHUK_SWING_RIGHT = 211;
public static final int NUNCHUK_SWING_FORWARD = 212;
public static final int NUNCHUK_SWING_BACKWARD = 213;
public static final int NUNCHUK_TILT = 214;
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 17b420c2c4..2d7d633277 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
@@ -33,6 +33,8 @@ import androidx.fragment.app.FragmentManager;
import org.dolphinemu.dolphinemu.NativeLibrary;
import org.dolphinemu.dolphinemu.R;
+import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
+import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivity;
@@ -149,7 +151,7 @@ public final class EmulationActivity extends AppCompatActivity
public static final int MENU_ACTION_SETTINGS_CORE = 34;
public static final int MENU_ACTION_SETTINGS_GRAPHICS = 35;
- private static SparseIntArray buttonsActionsMap = new SparseIntArray();
+ private static final SparseIntArray buttonsActionsMap = new SparseIntArray();
static
{
@@ -248,7 +250,6 @@ public final class EmulationActivity extends AppCompatActivity
{
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.remove("wiiController");
- editor.remove("motionControlsEnabled");
editor.apply();
}
@@ -324,6 +325,7 @@ public final class EmulationActivity extends AppCompatActivity
{
if (!isChangingConfigurations())
{
+ mSettings.saveSettings(null, null);
mEmulationFragment.saveTemporaryState();
}
outState.putStringArray(EXTRA_SELECTED_GAMES, mPaths);
@@ -359,7 +361,7 @@ public final class EmulationActivity extends AppCompatActivity
{
super.onResume();
- if (!sIsGameCubeGame && mPreferences.getInt("motionControlsEnabled", 0) != 2)
+ if (!sIsGameCubeGame && IntSetting.MAIN_MOTION_CONTROLS.getInt(mSettings) != 2)
mMotionListener.enable();
}
@@ -481,9 +483,9 @@ public final class EmulationActivity extends AppCompatActivity
// Populate the checkbox value for joystick center on touch
menu.findItem(R.id.menu_emulation_joystick_rel_center)
- .setChecked(mPreferences.getBoolean("joystickRelCenter", true));
+ .setChecked(BooleanSetting.MAIN_JOYSTICK_REL_CENTER.getBoolean(mSettings));
menu.findItem(R.id.menu_emulation_rumble)
- .setChecked(mPreferences.getBoolean("phoneRumble", true));
+ .setChecked(BooleanSetting.MAIN_PHONE_RUMBLE.getBoolean(mSettings));
popup.setOnMenuItemClickListener(this::onOptionsItemSelected);
@@ -693,16 +695,12 @@ public final class EmulationActivity extends AppCompatActivity
private void toggleJoystickRelCenter(boolean state)
{
- final SharedPreferences.Editor editor = mPreferences.edit();
- editor.putBoolean("joystickRelCenter", state);
- editor.commit();
+ BooleanSetting.MAIN_JOYSTICK_REL_CENTER.setBoolean(mSettings, state);
}
private void toggleRumble(boolean state)
{
- final SharedPreferences.Editor editor = mPreferences.edit();
- editor.putBoolean("phoneRumble", state);
- editor.apply();
+ BooleanSetting.MAIN_PHONE_RUMBLE.setBoolean(mSettings, state);
Rumble.setPhoneVibrator(state, this);
}
@@ -748,71 +746,74 @@ public final class EmulationActivity extends AppCompatActivity
private void toggleControls()
{
- final SharedPreferences.Editor editor = mPreferences.edit();
- boolean[] enabledButtons = new boolean[14];
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase);
builder.setTitle(R.string.emulation_toggle_controls);
if (sIsGameCubeGame || mPreferences.getInt("wiiController", 3) == 0)
{
- for (int i = 0; i < enabledButtons.length; i++)
+ boolean[] gcEnabledButtons = new boolean[11];
+ String gcSettingBase = "MAIN_BUTTON_TOGGLE_GC_";
+
+ for (int i = 0; i < gcEnabledButtons.length; i++)
{
- enabledButtons[i] = mPreferences.getBoolean("buttonToggleGc" + i, true);
+ gcEnabledButtons[i] = BooleanSetting.valueOf(gcSettingBase + i).getBoolean(mSettings);
}
- builder.setMultiChoiceItems(R.array.gcpadButtons, enabledButtons,
- (dialog, indexSelected, isChecked) -> editor
- .putBoolean("buttonToggleGc" + indexSelected, isChecked));
+ builder.setMultiChoiceItems(R.array.gcpadButtons, gcEnabledButtons,
+ (dialog, indexSelected, isChecked) -> BooleanSetting
+ .valueOf(gcSettingBase + indexSelected).setBoolean(mSettings, isChecked));
}
else if (mPreferences.getInt("wiiController", 3) == 4)
{
- for (int i = 0; i < enabledButtons.length; i++)
+ boolean[] wiiClassicEnabledButtons = new boolean[14];
+ String classicSettingBase = "MAIN_BUTTON_TOGGLE_CLASSIC_";
+
+ for (int i = 0; i < wiiClassicEnabledButtons.length; i++)
{
- enabledButtons[i] = mPreferences.getBoolean("buttonToggleClassic" + i, true);
+ wiiClassicEnabledButtons[i] =
+ BooleanSetting.valueOf(classicSettingBase + i).getBoolean(mSettings);
}
- builder.setMultiChoiceItems(R.array.classicButtons, enabledButtons,
- (dialog, indexSelected, isChecked) -> editor
- .putBoolean("buttonToggleClassic" + indexSelected, isChecked));
+ builder.setMultiChoiceItems(R.array.classicButtons, wiiClassicEnabledButtons,
+ (dialog, indexSelected, isChecked) -> BooleanSetting
+ .valueOf(classicSettingBase + indexSelected)
+ .setBoolean(mSettings, isChecked));
}
else
{
- for (int i = 0; i < enabledButtons.length; i++)
+ boolean[] wiiEnabledButtons = new boolean[11];
+ String wiiSettingBase = "MAIN_BUTTON_TOGGLE_WII_";
+
+ for (int i = 0; i < wiiEnabledButtons.length; i++)
{
- enabledButtons[i] = mPreferences.getBoolean("buttonToggleWii" + i, true);
+ wiiEnabledButtons[i] = BooleanSetting.valueOf(wiiSettingBase + i).getBoolean(mSettings);
}
if (mPreferences.getInt("wiiController", 3) == 3)
{
- builder.setMultiChoiceItems(R.array.nunchukButtons, enabledButtons,
- (dialog, indexSelected, isChecked) -> editor
- .putBoolean("buttonToggleWii" + indexSelected, isChecked));
+ builder.setMultiChoiceItems(R.array.nunchukButtons, wiiEnabledButtons,
+ (dialog, indexSelected, isChecked) -> BooleanSetting
+ .valueOf(wiiSettingBase + indexSelected).setBoolean(mSettings, isChecked));
}
else
{
- builder.setMultiChoiceItems(R.array.wiimoteButtons, enabledButtons,
- (dialog, indexSelected, isChecked) -> editor
- .putBoolean("buttonToggleWii" + indexSelected, isChecked));
+ builder.setMultiChoiceItems(R.array.wiimoteButtons, wiiEnabledButtons,
+ (dialog, indexSelected, isChecked) -> BooleanSetting
+ .valueOf(wiiSettingBase + indexSelected).setBoolean(mSettings, isChecked));
}
}
builder.setNeutralButton(R.string.emulation_toggle_all,
- (dialogInterface, i) -> mEmulationFragment.toggleInputOverlayVisibility());
+ (dialogInterface, i) -> mEmulationFragment.toggleInputOverlayVisibility(mSettings));
builder.setPositiveButton(R.string.ok, (dialogInterface, i) ->
- {
- editor.apply();
-
- mEmulationFragment.refreshInputOverlay();
- });
+ mEmulationFragment.refreshInputOverlay());
builder.show();
}
public void chooseDoubleTapButton()
{
- final SharedPreferences.Editor editor = mPreferences.edit();
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase);
int currentController =
mPreferences.getInt("wiiController", InputOverlay.OVERLAY_WIIMOTE_NUNCHUK);
- int currentValue = mPreferences.getInt("doubleTapButton",
- InputOverlayPointer.DOUBLE_TAP_OPTIONS.get(InputOverlayPointer.DOUBLE_TAP_A));
+ int currentValue = IntSetting.MAIN_DOUBLE_TAP_BUTTON.getInt(mSettings);
int buttonList = currentController == InputOverlay.OVERLAY_WIIMOTE_CLASSIC ?
R.array.doubleTapWithClassic : R.array.doubleTap;
@@ -823,14 +824,12 @@ public final class EmulationActivity extends AppCompatActivity
currentValue = InputOverlay.OVERLAY_WIIMOTE;
}
- builder.setSingleChoiceItems(buttonList, currentValue, (DialogInterface dialog, int which) ->
- editor.putInt("doubleTapButton", InputOverlayPointer.DOUBLE_TAP_OPTIONS.get(which)));
+ builder.setSingleChoiceItems(buttonList, currentValue,
+ (DialogInterface dialog, int which) -> IntSetting.MAIN_DOUBLE_TAP_BUTTON
+ .setInt(mSettings, InputOverlayPointer.DOUBLE_TAP_OPTIONS.get(which)));
builder.setPositiveButton(R.string.ok, (dialogInterface, i) ->
- {
- editor.commit();
- mEmulationFragment.initInputPointer();
- });
+ mEmulationFragment.initInputPointer());
builder.show();
}
@@ -845,7 +844,7 @@ public final class EmulationActivity extends AppCompatActivity
final TextView units = view.findViewById(R.id.text_units);
seekbar.setMax(150);
- seekbar.setProgress(mPreferences.getInt("controlScale", 50));
+ seekbar.setProgress(IntSetting.MAIN_CONTROL_SCALE.getInt(mSettings));
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
{
public void onStartTrackingTouch(SeekBar seekBar)
@@ -872,10 +871,12 @@ public final class EmulationActivity extends AppCompatActivity
builder.setView(view);
builder.setPositiveButton(R.string.ok, (dialogInterface, i) ->
{
- SharedPreferences.Editor editor = mPreferences.edit();
- editor.putInt("controlScale", seekbar.getProgress());
- editor.apply();
-
+ IntSetting.MAIN_CONTROL_SCALE.setInt(mSettings, seekbar.getProgress());
+ mEmulationFragment.refreshInputOverlay();
+ });
+ builder.setNeutralButton(R.string.default_values, (dialogInterface, i) ->
+ {
+ IntSetting.MAIN_CONTROL_SCALE.delete(mSettings);
mEmulationFragment.refreshInputOverlay();
});
@@ -913,14 +914,13 @@ public final class EmulationActivity extends AppCompatActivity
private void showMotionControlsOptions()
{
- final SharedPreferences.Editor editor = mPreferences.edit();
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase);
builder.setTitle(R.string.emulation_motion_controls);
builder.setSingleChoiceItems(R.array.motionControlsEntries,
- mPreferences.getInt("motionControlsEnabled", 1),
+ IntSetting.MAIN_MOTION_CONTROLS.getInt(mSettings),
(dialog, indexSelected) ->
{
- editor.putInt("motionControlsEnabled", indexSelected);
+ IntSetting.MAIN_MOTION_CONTROLS.setInt(mSettings, indexSelected);
if (indexSelected != 2)
mMotionListener.enable();
@@ -934,7 +934,7 @@ public final class EmulationActivity extends AppCompatActivity
NativeLibrary.ReloadWiimoteConfig();
});
- builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> editor.apply());
+ builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> dialogInterface.dismiss());
builder.show();
}
@@ -971,8 +971,11 @@ public final class EmulationActivity extends AppCompatActivity
private void setIRSensitivity()
{
- int ir_pitch = Integer.parseInt(
- mPreferences.getString(SettingsFile.KEY_WIIBIND_IR_PITCH + mSelectedGameId, "15"));
+ // IR settings always get saved per-game since WiimoteNew.ini is wiped upon reinstall.
+ File file = SettingsFile.getCustomGameSettingsFile(mSelectedGameId);
+ IniFile ini = new IniFile(file);
+
+ int ir_pitch = ini.getInt(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_PITCH, 15);
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.dialog_ir_sensitivity, null);
@@ -1004,8 +1007,7 @@ public final class EmulationActivity extends AppCompatActivity
}
});
- int ir_yaw = Integer.parseInt(
- mPreferences.getString(SettingsFile.KEY_WIIBIND_IR_YAW + mSelectedGameId, "15"));
+ int ir_yaw = ini.getInt(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_YAW, 15);
TextView text_slider_value_yaw = view.findViewById(R.id.text_ir_yaw);
TextView units_yaw = view.findViewById(R.id.text_ir_yaw_units);
@@ -1035,9 +1037,8 @@ public final class EmulationActivity extends AppCompatActivity
});
- int ir_vertical_offset = Integer.parseInt(
- mPreferences.getString(SettingsFile.KEY_WIIBIND_IR_VERTICAL_OFFSET + mSelectedGameId,
- "10"));
+ int ir_vertical_offset =
+ ini.getInt(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_VERTICAL_OFFSET, 10);
TextView text_slider_value_vertical_offset = view.findViewById(R.id.text_ir_vertical_offset);
TextView units_vertical_offset = view.findViewById(R.id.text_ir_vertical_offset_units);
@@ -1071,8 +1072,6 @@ public final class EmulationActivity extends AppCompatActivity
builder.setView(view);
builder.setPositiveButton(R.string.ok, (dialogInterface, i) ->
{
- File file = SettingsFile.getCustomGameSettingsFile(mSelectedGameId);
- IniFile ini = new IniFile(file);
ini.setString(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_PITCH,
text_slider_value_pitch.getText().toString());
ini.setString(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_YAW,
@@ -1082,20 +1081,20 @@ public final class EmulationActivity extends AppCompatActivity
ini.save(file);
NativeLibrary.ReloadWiimoteConfig();
-
- SharedPreferences.Editor editor = mPreferences.edit();
- editor.putString(SettingsFile.KEY_WIIBIND_IR_PITCH + mSelectedGameId,
- text_slider_value_pitch.getText().toString());
- editor.putString(SettingsFile.KEY_WIIBIND_IR_YAW + mSelectedGameId,
- text_slider_value_yaw.getText().toString());
- editor.putString(SettingsFile.KEY_WIIBIND_IR_VERTICAL_OFFSET + mSelectedGameId,
- text_slider_value_vertical_offset.getText().toString());
- editor.apply();
});
builder.setNegativeButton(R.string.cancel, (dialogInterface, i) ->
{
// Do nothing
});
+ builder.setNeutralButton(R.string.default_values, (dialogInterface, i) ->
+ {
+ ini.deleteKey(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_PITCH);
+ ini.deleteKey(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_YAW);
+ ini.deleteKey(Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIBIND_IR_VERTICAL_OFFSET);
+ ini.save(file);
+
+ NativeLibrary.ReloadWiimoteConfig();
+ });
builder.show();
}
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 92085ea204..86338f9d91 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
@@ -41,6 +41,86 @@ public enum BooleanSetting implements AbstractBooleanSetting
MAIN_USE_GAME_COVERS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL,
"UseGameCovers", true),
+ 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_BUTTON_TOGGLE_GC_0(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCButtonA", true),
+ MAIN_BUTTON_TOGGLE_GC_1(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCButtonB", true),
+ MAIN_BUTTON_TOGGLE_GC_2(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCButtonX", true),
+ MAIN_BUTTON_TOGGLE_GC_3(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCButtonY", true),
+ MAIN_BUTTON_TOGGLE_GC_4(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCButtonZ", true),
+ MAIN_BUTTON_TOGGLE_GC_5(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCButtonStart", true),
+ MAIN_BUTTON_TOGGLE_GC_6(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCTriggerL", true),
+ MAIN_BUTTON_TOGGLE_GC_7(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCTriggerR", true),
+ MAIN_BUTTON_TOGGLE_GC_8(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCDPad", true),
+ MAIN_BUTTON_TOGGLE_GC_9(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCStickMain", true),
+ MAIN_BUTTON_TOGGLE_GC_10(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleGCStickC", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_0(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonA", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_1(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonB", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_2(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonX", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_3(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonY", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_4(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonPlus", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_5(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonMinus", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_6(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonHome", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_7(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicTriggerL", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_8(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicTriggerR", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_9(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonZL", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_10(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicButtonZR", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_11(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicDPad", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_12(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicStickLeft", true),
+ MAIN_BUTTON_TOGGLE_CLASSIC_13(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleClassicStickRight", true),
+ MAIN_BUTTON_TOGGLE_WII_0(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteButtonA", true),
+ MAIN_BUTTON_TOGGLE_WII_1(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteButtonB", true),
+ MAIN_BUTTON_TOGGLE_WII_2(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteButton1", true),
+ MAIN_BUTTON_TOGGLE_WII_3(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteButton2", true),
+ MAIN_BUTTON_TOGGLE_WII_4(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteButtonPlus", true),
+ MAIN_BUTTON_TOGGLE_WII_5(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteButtonMinus", true),
+ MAIN_BUTTON_TOGGLE_WII_6(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteButtonHome", true),
+ MAIN_BUTTON_TOGGLE_WII_7(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleWiimoteDPad", true),
+ MAIN_BUTTON_TOGGLE_WII_8(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleNunchukC", true),
+ MAIN_BUTTON_TOGGLE_WII_9(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleNunchukZ", true),
+ MAIN_BUTTON_TOGGLE_WII_10(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "ButtonToggleNunchukStick", true),
+
SYSCONF_SCREENSAVER(Settings.FILE_SYSCONF, "IPL", "SSV", false),
SYSCONF_WIDESCREEN(Settings.FILE_SYSCONF, "IPL", "AR", true),
SYSCONF_PAL60(Settings.FILE_SYSCONF, "IPL", "E60", true),
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java
index 031f93cf0c..821f76ac76 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java
@@ -1,6 +1,7 @@
package org.dolphinemu.dolphinemu.features.settings.model;
import org.dolphinemu.dolphinemu.NativeLibrary;
+import org.dolphinemu.dolphinemu.overlay.InputOverlayPointer;
import java.util.Arrays;
import java.util.HashSet;
@@ -18,7 +19,13 @@ public enum IntSetting implements AbstractIntSetting
MAIN_AUDIO_VOLUME(Settings.FILE_DOLPHIN, Settings.SECTION_INI_DSP, "Volume", 100),
+ MAIN_CONTROL_SCALE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, "ControlScale", 50),
MAIN_LAST_PLATFORM_TAB(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, "LastPlatformTab", 0),
+ MAIN_MOTION_CONTROLS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, "MotionControls", 1),
+
+ MAIN_DOUBLE_TAP_BUTTON(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID_OVERLAY_BUTTONS,
+ "DoubleTapButton",
+ InputOverlayPointer.DOUBLE_TAP_OPTIONS.get(InputOverlayPointer.DOUBLE_TAP_A)),
SYSCONF_LANGUAGE(Settings.FILE_SYSCONF, "IPL", "LNG", 0x01),
SYSCONF_SOUND_MODE(Settings.FILE_SYSCONF, "IPL", "SND", 0x01),
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java
index 422b97acae..2ee537d08f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java
@@ -24,6 +24,7 @@ public class Settings implements Closeable
public static final String FILE_WIIMOTE = "WiimoteNew";
public static final String SECTION_INI_ANDROID = "Android";
+ public static final String SECTION_INI_ANDROID_OVERLAY_BUTTONS = "AndroidOverlayButtons";
public static final String SECTION_INI_GENERAL = "General";
public static final String SECTION_INI_CORE = "Core";
public static final String SECTION_INI_INTERFACE = "Interface";
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
index bc75f2a123..43fc64baa4 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
@@ -1,9 +1,7 @@
package org.dolphinemu.dolphinemu.fragments;
import android.content.Context;
-import android.content.SharedPreferences;
import android.os.Bundle;
-import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.Surface;
import android.view.SurfaceHolder;
@@ -18,6 +16,8 @@ import androidx.fragment.app.Fragment;
import org.dolphinemu.dolphinemu.NativeLibrary;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
+import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
+import org.dolphinemu.dolphinemu.features.settings.model.Settings;
import org.dolphinemu.dolphinemu.overlay.InputOverlay;
import org.dolphinemu.dolphinemu.utils.Log;
@@ -27,8 +27,6 @@ public final class EmulationFragment extends Fragment implements SurfaceHolder.C
{
private static final String KEY_GAMEPATHS = "gamepaths";
- private SharedPreferences mPreferences;
-
private InputOverlay mInputOverlay;
private EmulationState mEmulationState;
@@ -72,8 +70,6 @@ public final class EmulationFragment extends Fragment implements SurfaceHolder.C
// So this fragment doesn't restart on configuration changes; i.e. rotation.
setRetainInstance(true);
- mPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
-
String[] gamePaths = getArguments().getStringArray(KEY_GAMEPATHS);
mEmulationState = new EmulationState(gamePaths, getTemporaryStateFilePath());
}
@@ -124,20 +120,10 @@ public final class EmulationFragment extends Fragment implements SurfaceHolder.C
super.onDetach();
}
- public void toggleInputOverlayVisibility()
+ public void toggleInputOverlayVisibility(Settings settings)
{
- SharedPreferences.Editor editor = mPreferences.edit();
-
- // If the overlay is currently set to INVISIBLE
- if (!mPreferences.getBoolean("showInputOverlay", false))
- {
- editor.putBoolean("showInputOverlay", true);
- }
- else
- {
- editor.putBoolean("showInputOverlay", false);
- }
- editor.commit();
+ BooleanSetting.MAIN_SHOW_INPUT_OVERLAY
+ .setBoolean(settings, !BooleanSetting.MAIN_SHOW_INPUT_OVERLAY.getBoolean(settings));
mInputOverlay.refreshControls();
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java
index 3db1a0c8f4..37ce3aeb72 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java
@@ -31,6 +31,8 @@ import org.dolphinemu.dolphinemu.NativeLibrary.ButtonState;
import org.dolphinemu.dolphinemu.NativeLibrary.ButtonType;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
+import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
+import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile;
import org.dolphinemu.dolphinemu.utils.IniFile;
@@ -67,7 +69,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
private InputOverlayDrawableDpad mDpadBeingConfigured;
private InputOverlayDrawableJoystick mJoystickBeingConfigured;
- private SharedPreferences mPreferences;
+ private final SharedPreferences mPreferences;
// Buttons that have special positions in Wiimote only
private static final ArrayList<Integer> WIIMOTE_H_BUTTONS = new ArrayList<>();
@@ -152,8 +154,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
if (!EmulationActivity.isGameCubeGame())
{
- int doubleTapButton = mPreferences.getInt("doubleTapButton",
- InputOverlayPointer.DOUBLE_TAP_OPTIONS.get(InputOverlayPointer.DOUBLE_TAP_A));
+ int doubleTapButton = IntSetting.MAIN_DOUBLE_TAP_BUTTON.getIntGlobal();
if (mPreferences.getInt("wiiController", OVERLAY_WIIMOTE_NUNCHUK) !=
InputOverlay.OVERLAY_WIIMOTE_CLASSIC &&
@@ -493,47 +494,47 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
private void addGameCubeOverlayControls(String orientation)
{
- if (mPreferences.getBoolean("buttonToggleGc0", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_0.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_a,
R.drawable.gcpad_a_pressed, ButtonType.BUTTON_A, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc1", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_1.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_b,
R.drawable.gcpad_b_pressed, ButtonType.BUTTON_B, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc2", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_2.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_x,
R.drawable.gcpad_x_pressed, ButtonType.BUTTON_X, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc3", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_3.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_y,
R.drawable.gcpad_y_pressed, ButtonType.BUTTON_Y, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc4", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_4.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_z,
R.drawable.gcpad_z_pressed, ButtonType.BUTTON_Z, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc5", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_5.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_start,
R.drawable.gcpad_start_pressed, ButtonType.BUTTON_START, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc6", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_6.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_l,
R.drawable.gcpad_l_pressed, ButtonType.TRIGGER_L, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc7", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_7.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.gcpad_r,
R.drawable.gcpad_r_pressed, ButtonType.TRIGGER_R, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc8", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_8.getBooleanGlobal())
{
overlayDpads.add(initializeOverlayDpad(getContext(), R.drawable.gcwii_dpad,
R.drawable.gcwii_dpad_pressed_one_direction,
@@ -541,13 +542,13 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
ButtonType.BUTTON_UP, ButtonType.BUTTON_DOWN,
ButtonType.BUTTON_LEFT, ButtonType.BUTTON_RIGHT, orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc9", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_9.getBooleanGlobal())
{
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.gcwii_joystick_range,
R.drawable.gcwii_joystick, R.drawable.gcwii_joystick_pressed, ButtonType.STICK_MAIN,
orientation));
}
- if (mPreferences.getBoolean("buttonToggleGc10", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_GC_10.getBooleanGlobal())
{
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.gcwii_joystick_range,
R.drawable.gcpad_c, R.drawable.gcpad_c_pressed, ButtonType.STICK_C, orientation));
@@ -556,42 +557,42 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
private void addWiimoteOverlayControls(String orientation)
{
- if (mPreferences.getBoolean("buttonToggleWii0", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_0.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_a,
R.drawable.wiimote_a_pressed, ButtonType.WIIMOTE_BUTTON_A, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii1", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_1.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_b,
R.drawable.wiimote_b_pressed, ButtonType.WIIMOTE_BUTTON_B, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii2", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_2.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_one,
R.drawable.wiimote_one_pressed, ButtonType.WIIMOTE_BUTTON_1, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii3", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_3.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_two,
R.drawable.wiimote_two_pressed, ButtonType.WIIMOTE_BUTTON_2, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii4", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_4.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_plus,
R.drawable.wiimote_plus_pressed, ButtonType.WIIMOTE_BUTTON_PLUS, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii5", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_5.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_minus,
R.drawable.wiimote_minus_pressed, ButtonType.WIIMOTE_BUTTON_MINUS, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii6", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_6.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_home,
R.drawable.wiimote_home_pressed, ButtonType.WIIMOTE_BUTTON_HOME, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii7", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_7.getBooleanGlobal())
{
overlayDpads.add(initializeOverlayDpad(getContext(), R.drawable.gcwii_dpad,
R.drawable.gcwii_dpad_pressed_one_direction,
@@ -603,17 +604,17 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
private void addNunchukOverlayControls(String orientation)
{
- if (mPreferences.getBoolean("buttonToggleWii8", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_8.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.nunchuk_c,
R.drawable.nunchuk_c_pressed, ButtonType.NUNCHUK_BUTTON_C, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii9", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_9.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.nunchuk_z,
R.drawable.nunchuk_z_pressed, ButtonType.NUNCHUK_BUTTON_Z, orientation));
}
- if (mPreferences.getBoolean("buttonToggleWii10", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_WII_10.getBooleanGlobal())
{
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.gcwii_joystick_range,
R.drawable.gcwii_joystick, R.drawable.gcwii_joystick_pressed,
@@ -623,62 +624,62 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
private void addClassicOverlayControls(String orientation)
{
- if (mPreferences.getBoolean("buttonToggleClassic0", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_0.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_a,
R.drawable.classic_a_pressed, ButtonType.CLASSIC_BUTTON_A, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic1", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_1.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_b,
R.drawable.classic_b_pressed, ButtonType.CLASSIC_BUTTON_B, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic2", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_2.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_x,
R.drawable.classic_x_pressed, ButtonType.CLASSIC_BUTTON_X, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic3", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_3.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_y,
R.drawable.classic_y_pressed, ButtonType.CLASSIC_BUTTON_Y, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic4", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_4.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_plus,
R.drawable.wiimote_plus_pressed, ButtonType.CLASSIC_BUTTON_PLUS, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic5", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_5.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_minus,
R.drawable.wiimote_minus_pressed, ButtonType.CLASSIC_BUTTON_MINUS, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic6", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_6.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.wiimote_home,
R.drawable.wiimote_home_pressed, ButtonType.CLASSIC_BUTTON_HOME, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic7", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_7.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_l,
R.drawable.classic_l_pressed, ButtonType.CLASSIC_TRIGGER_L, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic8", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_8.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_r,
R.drawable.classic_r_pressed, ButtonType.CLASSIC_TRIGGER_R, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic9", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_9.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_zl,
R.drawable.classic_zl_pressed, ButtonType.CLASSIC_BUTTON_ZL, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic10", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_10.getBooleanGlobal())
{
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.classic_zr,
R.drawable.classic_zr_pressed, ButtonType.CLASSIC_BUTTON_ZR, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic11", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_11.getBooleanGlobal())
{
overlayDpads.add(initializeOverlayDpad(getContext(), R.drawable.gcwii_dpad,
R.drawable.gcwii_dpad_pressed_one_direction,
@@ -686,13 +687,13 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
ButtonType.CLASSIC_DPAD_UP, ButtonType.CLASSIC_DPAD_DOWN,
ButtonType.CLASSIC_DPAD_LEFT, ButtonType.CLASSIC_DPAD_RIGHT, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic12", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_12.getBooleanGlobal())
{
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.gcwii_joystick_range,
R.drawable.gcwii_joystick, R.drawable.gcwii_joystick_pressed,
ButtonType.CLASSIC_STICK_LEFT, orientation));
}
- if (mPreferences.getBoolean("buttonToggleClassic13", true))
+ if (BooleanSetting.MAIN_BUTTON_TOGGLE_CLASSIC_13.getBooleanGlobal())
{
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.gcwii_joystick_range,
R.drawable.gcwii_joystick, R.drawable.gcwii_joystick_pressed,
@@ -711,7 +712,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT ?
"-Portrait" : "";
- if (mPreferences.getBoolean("showInputOverlay", true))
+ if (BooleanSetting.MAIN_SHOW_INPUT_OVERLAY.getBooleanGlobal())
{
// Add all the enabled overlay items back to the HashSet.
if (EmulationActivity.isGameCubeGame())
@@ -928,7 +929,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
break;
}
- scale *= (sPrefs.getInt("controlScale", 50) + 50);
+ scale *= (IntSetting.MAIN_CONTROL_SCALE.getIntGlobal() + 50);
scale /= 100;
// Initialize the InputOverlayDrawableButton.
@@ -1006,7 +1007,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
break;
}
- scale *= (sPrefs.getInt("controlScale", 50) + 50);
+ scale *= (IntSetting.MAIN_CONTROL_SCALE.getIntGlobal() + 50);
scale /= 100;
// Initialize the InputOverlayDrawableDpad.
@@ -1063,7 +1064,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
// Decide scale based on user preference
float scale = 0.275f;
- scale *= (sPrefs.getInt("controlScale", 50) + 50);
+ scale *= (IntSetting.MAIN_CONTROL_SCALE.getIntGlobal() + 50);
scale /= 100;
// Initialize the InputOverlayDrawableJoystick.
@@ -1096,10 +1097,9 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
Rect innerRect = new Rect(0, 0, (int) (outerSize / innerScale), (int) (outerSize / innerScale));
// Send the drawableId to the joystick so it can be referenced when saving control position.
- final InputOverlayDrawableJoystick overlayDrawable
- = new InputOverlayDrawableJoystick(res, bitmapOuter,
- bitmapInnerDefault, bitmapInnerPressed,
- outerRect, innerRect, joystick, sPrefs);
+ final InputOverlayDrawableJoystick overlayDrawable =
+ new InputOverlayDrawableJoystick(res, bitmapOuter, bitmapInnerDefault,
+ bitmapInnerPressed, outerRect, innerRect, joystick);
// Need to set the image's position
overlayDrawable.setPosition(drawableX, drawableY);
@@ -1236,7 +1236,6 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener
sPrefsEditor.commit();
}
-
private void gcPortraitDefaultOverlay()
{
SharedPreferences.Editor sPrefsEditor = mPreferences.edit();
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlayDrawableJoystick.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlayDrawableJoystick.java
index de6c237352..4c52805142 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlayDrawableJoystick.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlayDrawableJoystick.java
@@ -6,7 +6,6 @@
package org.dolphinemu.dolphinemu.overlay;
-import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -15,6 +14,7 @@ import android.graphics.drawable.BitmapDrawable;
import android.view.MotionEvent;
import org.dolphinemu.dolphinemu.NativeLibrary;
+import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
/**
* Custom {@link BitmapDrawable} that is capable
@@ -22,22 +22,20 @@ import org.dolphinemu.dolphinemu.NativeLibrary;
*/
public final class InputOverlayDrawableJoystick
{
- private SharedPreferences mPreferences;
-
private final int[] axisIDs = {0, 0, 0, 0};
private final float[] axises = {0f, 0f};
private int trackId = -1;
- private int mJoystickType;
+ private final int mJoystickType;
private int mControlPositionX, mControlPositionY;
private int mPreviousTouchX, mPreviousTouchY;
- private int mWidth;
- private int mHeight;
+ private final int mWidth;
+ private final int mHeight;
private Rect mVirtBounds;
private Rect mOrigBounds;
- private BitmapDrawable mOuterBitmap;
- private BitmapDrawable mDefaultStateInnerBitmap;
- private BitmapDrawable mPressedStateInnerBitmap;
- private BitmapDrawable mBoundsBoxBitmap;
+ private final BitmapDrawable mOuterBitmap;
+ private final BitmapDrawable mDefaultStateInnerBitmap;
+ private final BitmapDrawable mPressedStateInnerBitmap;
+ private final BitmapDrawable mBoundsBoxBitmap;
private boolean mPressedState = false;
/**
@@ -51,9 +49,8 @@ public final class InputOverlayDrawableJoystick
* @param rectInner {@link Rect} which represents the inner joystick bounds.
* @param joystick Identifier for which joystick this is.
*/
- public InputOverlayDrawableJoystick(Resources res, Bitmap bitmapOuter,
- Bitmap bitmapInnerDefault, Bitmap bitmapInnerPressed,
- Rect rectOuter, Rect rectInner, int joystick, SharedPreferences prefsHandle)
+ public InputOverlayDrawableJoystick(Resources res, Bitmap bitmapOuter, Bitmap bitmapInnerDefault,
+ Bitmap bitmapInnerPressed, Rect rectOuter, Rect rectInner, int joystick)
{
axisIDs[0] = joystick + 1;
axisIDs[1] = joystick + 2;
@@ -61,7 +58,6 @@ public final class InputOverlayDrawableJoystick
axisIDs[3] = joystick + 4;
mJoystickType = joystick;
- mPreferences = prefsHandle;
mOuterBitmap = new BitmapDrawable(res, bitmapOuter);
mDefaultStateInnerBitmap = new BitmapDrawable(res, bitmapInnerDefault);
mPressedStateInnerBitmap = new BitmapDrawable(res, bitmapInnerPressed);
@@ -98,7 +94,7 @@ public final class InputOverlayDrawableJoystick
public boolean TrackEvent(MotionEvent event)
{
- boolean reCenter = mPreferences.getBoolean("joystickRelCenter", true);
+ boolean reCenter = BooleanSetting.MAIN_JOYSTICK_REL_CENTER.getBooleanGlobal();
int pointerIndex = event.getActionIndex();
boolean pressed = false;
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 908541d62b..b231baf92a 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
@@ -4,12 +4,12 @@ import android.content.Context;
import android.os.Build;
import android.os.VibrationEffect;
import android.os.Vibrator;
-import android.preference.PreferenceManager;
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;
@@ -22,7 +22,7 @@ public class Rumble
{
clear();
- if (PreferenceManager.getDefaultSharedPreferences(activity).getBoolean("phoneRumble", true))
+ if (BooleanSetting.MAIN_PHONE_RUMBLE.getBooleanGlobal())
{
setPhoneVibrator(true, activity);
}