diff --git a/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/model/Settings.kt b/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/model/Settings.kt index 2ec43818f..eead17ecf 100644 --- a/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/model/Settings.kt +++ b/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/model/Settings.kt @@ -163,14 +163,26 @@ class Settings { KEY_CSTICK_AXIS_VERTICAL, KEY_CSTICK_AXIS_HORIZONTAL ) - val dPadKeys = listOf( + val dPadAxisKeys = listOf( KEY_DPAD_AXIS_VERTICAL, KEY_DPAD_AXIS_HORIZONTAL ) + val dPadButtonKeys = listOf( + KEY_BUTTON_UP, + KEY_BUTTON_DOWN, + KEY_BUTTON_LEFT, + KEY_BUTTON_RIGHT + ) val axisTitles = listOf( R.string.controller_axis_vertical, R.string.controller_axis_horizontal ) + val dpadTitles = listOf( + R.string.direction_up, + R.string.direction_down, + R.string.direction_left, + R.string.direction_right + ) val triggerKeys = listOf( KEY_BUTTON_L, KEY_BUTTON_R, diff --git a/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsActivity.kt b/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsActivity.kt index efb586cb7..d386ac44b 100644 --- a/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsActivity.kt +++ b/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsActivity.kt @@ -191,7 +191,7 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView { presenter.onSettingsReset() val controllerKeys = Settings.buttonKeys + Settings.circlePadKeys + Settings.cStickKeys + - Settings.dPadKeys + Settings.triggerKeys + Settings.dPadAxisKeys + Settings.dPadButtonKeys + Settings.triggerKeys val editor = PreferenceManager.getDefaultSharedPreferences(LimeApplication.appContext).edit() controllerKeys.forEach { editor.remove(it) } diff --git a/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsFragmentPresenter.kt index f85881ee1..8bf9dc43d 100644 --- a/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/io/github/lime3ds/android/features/settings/ui/SettingsFragmentPresenter.kt @@ -609,11 +609,18 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) add(InputBindingSetting(button, Settings.axisTitles[i])) } - add(HeaderSetting(R.string.controller_dpad)) - Settings.dPadKeys.forEachIndexed { i: Int, key: String -> + // TODO: Improve the integration of the two dpad types to be + // less user-facingly hacky + add(HeaderSetting(R.string.controller_dpad_axis)) + Settings.dPadAxisKeys.forEachIndexed { i: Int, key: String -> val button = getInputObject(key) add(InputBindingSetting(button, Settings.axisTitles[i])) } + add(HeaderSetting(R.string.controller_dpad_button)) + Settings.dPadButtonKeys.forEachIndexed { i: Int, key: String -> + val button = getInputObject(key) + add(InputBindingSetting(button, Settings.dpadTitles[i])) + } add(HeaderSetting(R.string.controller_triggers)) Settings.triggerKeys.forEachIndexed { i: Int, key: String -> diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index a5a78145a..fa4b77a92 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -108,8 +108,14 @@ Triggers Trigger D-Pad + D-Pad (Axis) + D-Pad (Button) Up/Down Axis Left/Right Axis + Up + Down + Left + Right Bind %1$s %2$s Press or move an input. Input Binding