mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-09-26 12:16:45 -05:00
Android/overlay-haptics: Prefix 'overlay' to added xml resources
This commit is contained in:
@@ -34,7 +34,7 @@ import com.google.android.material.slider.Slider
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary
|
||||
import org.dolphinemu.dolphinemu.R
|
||||
import org.dolphinemu.dolphinemu.databinding.ActivityEmulationBinding
|
||||
import org.dolphinemu.dolphinemu.databinding.DialogHapticsAdjustBinding
|
||||
import org.dolphinemu.dolphinemu.databinding.DialogOverlayHapticsBinding
|
||||
import org.dolphinemu.dolphinemu.databinding.DialogInputAdjustBinding
|
||||
import org.dolphinemu.dolphinemu.databinding.DialogNfcFiguresManagerBinding
|
||||
import org.dolphinemu.dolphinemu.features.infinitybase.InfinityConfig
|
||||
@@ -452,7 +452,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
|
||||
if (!DolphinVibratorManagerFactory.getSystemVibratorManager().getDefaultVibrator()
|
||||
.hasVibrator()
|
||||
) {
|
||||
menu.findItem(R.id.menu_emulation_haptics).isVisible = false
|
||||
menu.findItem(R.id.menu_emulation_touch_haptics).isVisible = false
|
||||
}
|
||||
popup.setOnMenuItemClickListener { item: MenuItem -> onOptionsItemSelected(item) }
|
||||
popup.show()
|
||||
@@ -529,7 +529,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
|
||||
MENU_ACTION_SKYLANDERS -> showSkylanderPortalSettings()
|
||||
MENU_ACTION_INFINITY_BASE -> showInfinityBaseSettings()
|
||||
MENU_ACTION_EXIT -> emulationFragment!!.stopEmulation()
|
||||
MENU_ACTION_ADJUST_HAPTICS -> adjustHaptics()
|
||||
MENU_ACTION_ADJUST_OVERLAY_HAPTICS -> adjustOverlayHaptics()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -711,28 +711,34 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
|
||||
.show()
|
||||
}
|
||||
|
||||
private fun adjustHaptics() {
|
||||
val dialogBinding = DialogHapticsAdjustBinding.inflate(layoutInflater)
|
||||
private fun adjustOverlayHaptics() {
|
||||
val dialogBinding = DialogOverlayHapticsBinding.inflate(layoutInflater)
|
||||
val hapticsProvider = HapticsProvider()
|
||||
dialogBinding.apply {
|
||||
val checkboxes =
|
||||
listOf(hapticsOnPressCheckbox, hapticsOnReleaseCheckbox, hapticsJoystickCheckbox)
|
||||
listOf(
|
||||
overlayHapticsOnPressCheckbox,
|
||||
overlayHapticsOnReleaseCheckbox,
|
||||
overlayHapticsJoystickCheckbox
|
||||
)
|
||||
val toggleVibrationSettings = {
|
||||
checkboxes.any { it.isChecked }.let { enabled ->
|
||||
hapticsUseVibratorDirectlyName.isEnabled = enabled
|
||||
hapticsUseVibratorDirectlySwitch.isEnabled = enabled
|
||||
(hapticsUseVibratorDirectlySwitch.isChecked && enabled).let { enabled ->
|
||||
hapticsIntensityName.isEnabled = enabled
|
||||
hapticsIntensitySlider.isEnabled = enabled
|
||||
hapticsIntensityValue.isEnabled = enabled
|
||||
overlayHapticsUseVibratorDirectlyName.isEnabled = enabled
|
||||
overlayHapticsUseVibratorDirectlySwitch.isEnabled = enabled
|
||||
(overlayHapticsUseVibratorDirectlySwitch.isChecked && enabled).let { enabled ->
|
||||
overlayHapticsIntensityName.isEnabled = enabled
|
||||
overlayHapticsIntensitySlider.isEnabled = enabled
|
||||
overlayHapticsIntensityValue.isEnabled = enabled
|
||||
}
|
||||
}
|
||||
}
|
||||
hapticsOnPressCheckbox.isChecked = BooleanSetting.MAIN_OVERLAY_HAPTICS_ON_PRESS.boolean
|
||||
hapticsOnReleaseCheckbox.isChecked =
|
||||
overlayHapticsOnPressCheckbox.isChecked =
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_ON_PRESS.boolean
|
||||
overlayHapticsOnReleaseCheckbox.isChecked =
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_ON_RELEASE.boolean
|
||||
hapticsJoystickCheckbox.isChecked = BooleanSetting.MAIN_OVERLAY_HAPTICS_JOYSTICK.boolean
|
||||
hapticsUseVibratorDirectlySwitch.isChecked =
|
||||
overlayHapticsJoystickCheckbox.isChecked =
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_JOYSTICK.boolean
|
||||
overlayHapticsUseVibratorDirectlySwitch.isChecked =
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_USE_VIBRATOR_DIRECTLY.boolean
|
||||
toggleVibrationSettings()
|
||||
checkboxes.forEach { checkbox ->
|
||||
@@ -740,12 +746,12 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
|
||||
toggleVibrationSettings()
|
||||
}
|
||||
}
|
||||
hapticsUseVibratorDirectlySwitch.setOnCheckedChangeListener { _, _ ->
|
||||
overlayHapticsUseVibratorDirectlySwitch.setOnCheckedChangeListener { _, _ ->
|
||||
toggleVibrationSettings()
|
||||
}
|
||||
hapticsIntensitySlider.apply {
|
||||
overlayHapticsIntensitySlider.apply {
|
||||
val setValueText = { value: Float ->
|
||||
hapticsIntensityValue.text =
|
||||
overlayHapticsIntensityValue.text =
|
||||
getString(R.string.slider_setting_value, value * 100f, '%')
|
||||
}
|
||||
stepSize = 0.1f
|
||||
@@ -762,19 +768,19 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
|
||||
.setView(dialogBinding.root)
|
||||
.setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int ->
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_ON_PRESS.setBoolean(
|
||||
settings, dialogBinding.hapticsOnPressCheckbox.isChecked
|
||||
settings, dialogBinding.overlayHapticsOnPressCheckbox.isChecked
|
||||
)
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_ON_RELEASE.setBoolean(
|
||||
settings, dialogBinding.hapticsOnReleaseCheckbox.isChecked
|
||||
settings, dialogBinding.overlayHapticsOnReleaseCheckbox.isChecked
|
||||
)
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_JOYSTICK.setBoolean(
|
||||
settings, dialogBinding.hapticsJoystickCheckbox.isChecked
|
||||
settings, dialogBinding.overlayHapticsJoystickCheckbox.isChecked
|
||||
)
|
||||
BooleanSetting.MAIN_OVERLAY_HAPTICS_USE_VIBRATOR_DIRECTLY.setBoolean(
|
||||
settings, dialogBinding.hapticsUseVibratorDirectlySwitch.isChecked
|
||||
settings, dialogBinding.overlayHapticsUseVibratorDirectlySwitch.isChecked
|
||||
)
|
||||
FloatSetting.MAIN_OVERLAY_HAPTICS_SCALE.setFloat(
|
||||
settings, dialogBinding.hapticsIntensitySlider.value
|
||||
settings, dialogBinding.overlayHapticsIntensitySlider.value
|
||||
)
|
||||
}
|
||||
.show()
|
||||
@@ -1158,7 +1164,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
|
||||
const val MENU_ACTION_SKYLANDERS = 36
|
||||
const val MENU_ACTION_INFINITY_BASE = 37
|
||||
const val MENU_ACTION_LATCHING_CONTROLS = 38
|
||||
const val MENU_ACTION_ADJUST_HAPTICS = 39
|
||||
const val MENU_ACTION_ADJUST_OVERLAY_HAPTICS = 39
|
||||
|
||||
init {
|
||||
buttonsActionsMap.apply {
|
||||
@@ -1172,7 +1178,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
|
||||
append(R.id.menu_emulation_ir_recenter, MENU_SET_IR_RECENTER)
|
||||
append(R.id.menu_emulation_set_ir_mode, MENU_SET_IR_MODE)
|
||||
append(R.id.menu_emulation_choose_doubletap, MENU_ACTION_CHOOSE_DOUBLETAP)
|
||||
append(R.id.menu_emulation_haptics, MENU_ACTION_ADJUST_HAPTICS)
|
||||
append(R.id.menu_emulation_touch_haptics, MENU_ACTION_ADJUST_OVERLAY_HAPTICS)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,133 +7,132 @@
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/emulation_haptics"
|
||||
android:id="@+id/overlay_haptics"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="@dimen/spacing_large">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/emulation_haptics_text"
|
||||
android:id="@+id/overlay_haptics_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/spacing_medlarge"
|
||||
android:text="@string/emulation_haptics"
|
||||
android:text="@string/emulation_touch_haptics"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Title"
|
||||
app:layout_constraintBottom_toTopOf="@id/haptics_on_release_checkbox"
|
||||
app:layout_constraintBottom_toTopOf="@id/overlay_haptics_on_release_checkbox"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/haptics_on_press_checkbox"
|
||||
android:id="@+id/overlay_haptics_on_press_checkbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="48dp"
|
||||
android:minWidth="48dp"
|
||||
android:text="@string/haptics_on_press"
|
||||
android:text="@string/overlay_haptics_on_press"
|
||||
android:textAppearance="?android:textAppearanceListItem"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/haptics_on_release_checkbox"
|
||||
app:layout_constraintEnd_toStartOf="@+id/overlay_haptics_on_release_checkbox"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/haptics_on_release_checkbox" />
|
||||
app:layout_constraintTop_toTopOf="@id/overlay_haptics_on_release_checkbox" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/haptics_on_release_checkbox"
|
||||
android:id="@+id/overlay_haptics_on_release_checkbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="48dp"
|
||||
android:minWidth="48dp"
|
||||
android:text="@string/haptics_on_release"
|
||||
android:text="@string/overlay_haptics_on_release"
|
||||
android:textAppearance="?android:textAppearanceListItem"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/haptics_joystick_checkbox"
|
||||
app:layout_constraintStart_toEndOf="@+id/haptics_on_press_checkbox"
|
||||
app:layout_constraintTop_toBottomOf="@+id/emulation_haptics_text" />
|
||||
app:layout_constraintEnd_toStartOf="@+id/overlay_haptics_joystick_checkbox"
|
||||
app:layout_constraintStart_toEndOf="@+id/overlay_haptics_on_press_checkbox"
|
||||
app:layout_constraintTop_toBottomOf="@+id/overlay_haptics_text" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/haptics_joystick_checkbox"
|
||||
android:id="@+id/overlay_haptics_joystick_checkbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="48dp"
|
||||
android:minWidth="48dp"
|
||||
android:text="@string/haptics_joystick"
|
||||
android:text="@string/overlay_haptics_joystick"
|
||||
android:textAppearance="?android:textAppearanceListItem"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/haptics_on_release_checkbox"
|
||||
app:layout_constraintTop_toTopOf="@id/haptics_on_release_checkbox" />
|
||||
app:layout_constraintStart_toEndOf="@+id/overlay_haptics_on_release_checkbox"
|
||||
app:layout_constraintTop_toTopOf="@id/overlay_haptics_on_release_checkbox" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/haptics_use_vibrator_directly"
|
||||
android:id="@+id/overlay_haptics_use_vibrator_directly"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_small"
|
||||
android:paddingHorizontal="24dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/haptics_use_vibrator_directly_name"
|
||||
android:id="@+id/overlay_haptics_use_vibrator_directly_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/spacing_large"
|
||||
android:text="@string/haptics_use_vibrator_directly"
|
||||
android:text="@string/overlay_haptics_use_vibrator_directly"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/haptics_use_vibrator_directly_switch"
|
||||
app:layout_constraintEnd_toStartOf="@+id/haptics_use_vibrator_directly_switch"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/overlay_haptics_use_vibrator_directly_switch"
|
||||
app:layout_constraintEnd_toStartOf="@+id/overlay_haptics_use_vibrator_directly_switch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/haptics_use_vibrator_directly_switch" />
|
||||
app:layout_constraintTop_toTopOf="@+id/overlay_haptics_use_vibrator_directly_switch" />
|
||||
|
||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||
android:id="@+id/haptics_use_vibrator_directly_switch"
|
||||
android:id="@+id/overlay_haptics_use_vibrator_directly_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/haptics_use_vibrator_directly_name"
|
||||
app:layout_constraintStart_toEndOf="@+id/overlay_haptics_use_vibrator_directly_name"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/haptics_intensity"
|
||||
android:id="@+id/overlay_haptics_intensity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/spacing_small"
|
||||
android:paddingHorizontal="24dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/haptics_intensity_name"
|
||||
android:id="@+id/overlay_haptics_intensity_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/haptics_intensity"
|
||||
android:text="@string/overlay_haptics_intensity"
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/haptics_intensity_slider"
|
||||
app:layout_constraintEnd_toStartOf="@+id/overlay_haptics_intensity_slider"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.google.android.material.slider.Slider
|
||||
android:id="@+id/haptics_intensity_slider"
|
||||
android:id="@+id/overlay_haptics_intensity_slider"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/spacing_medlarge"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/haptics_intensity_value"
|
||||
app:layout_constraintStart_toEndOf="@id/haptics_intensity_name"
|
||||
app:layout_constraintEnd_toStartOf="@id/overlay_haptics_intensity_value"
|
||||
app:layout_constraintStart_toEndOf="@id/overlay_haptics_intensity_name"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/haptics_intensity_value"
|
||||
android:id="@+id/overlay_haptics_intensity_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/haptics_intensity_slider"
|
||||
app:layout_constraintStart_toEndOf="@+id/overlay_haptics_intensity_slider"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="50%" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
@@ -28,8 +28,8 @@
|
||||
android:title="@string/emulation_choose_controller"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_emulation_haptics"
|
||||
android:title="@string/emulation_haptics"/>
|
||||
android:id="@+id/menu_emulation_touch_haptics"
|
||||
android:title="@string/emulation_touch_haptics"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_emulation_reset_overlay"
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
android:title="@string/emulation_choose_controller"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_emulation_haptics"
|
||||
android:title="@string/emulation_haptics"/>
|
||||
android:id="@+id/menu_emulation_touch_haptics"
|
||||
android:title="@string/emulation_touch_haptics"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_emulation_ir_group"
|
||||
|
||||
@@ -636,7 +636,7 @@ It can efficiently compress both junk data and encrypted Wii data.
|
||||
<string name="emulation_ir_mode">IR Mode</string>
|
||||
<string name="emulation_ir_sensitivity">IR Sensitivity</string>
|
||||
<string name="emulation_choose_doubletap">Double tap button</string>
|
||||
<string name="emulation_haptics">Touch Haptics</string>
|
||||
<string name="emulation_touch_haptics">Touch Haptics</string>
|
||||
|
||||
<!-- GC Adapter Menu-->
|
||||
<string name="gc_adapter_rumble">Enable Vibration</string>
|
||||
@@ -841,12 +841,12 @@ It can efficiently compress both junk data and encrypted Wii data.
|
||||
<string name="ir_follow">Follow</string>
|
||||
<string name="ir_drag">Drag</string>
|
||||
|
||||
<!-- Haptics -->
|
||||
<string name="haptics_on_press">On Press</string>
|
||||
<string name="haptics_on_release">On Release</string>
|
||||
<string name="haptics_joystick">Joystick</string>
|
||||
<string name="haptics_use_vibrator_directly">Use vibrator directly</string>
|
||||
<string name="haptics_intensity">Intensity</string>
|
||||
<!-- Overlay Haptics -->
|
||||
<string name="overlay_haptics_on_press">On Press</string>
|
||||
<string name="overlay_haptics_on_release">On Release</string>
|
||||
<string name="overlay_haptics_joystick">Joystick</string>
|
||||
<string name="overlay_haptics_use_vibrator_directly">Use vibrator directly</string>
|
||||
<string name="overlay_haptics_intensity">Intensity</string>
|
||||
|
||||
<!-- Double Tap Buttons -->
|
||||
<string name="double_tap_a">Button A</string>
|
||||
|
||||
Reference in New Issue
Block a user