New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
joystick.xml: Fix Back/Select button going home instead of back one window #25178
base: master
Are you sure you want to change the base?
Conversation
This mirrors the behavior of Android, where Back/Select and B have the same behavior.
I do not use Kodi on Android with a controller, but I know others might when It comes to an Android TV device. I tested this on my phone and found almost nothing worked as expected. The back button didn't do anything at all, and it seemed the buttons were shuffled around, so it was a failed test entirely. This PR is focused on android, but because joystick.xml is applied across ALL devices, not just Android, I think the best way to judge what the button should do is the action best aligned to the most common use of the button. I don't know if there is a "canonical" type of action for the back button. If there is that is what you should shoot for. From my experience, the back button brings up context menus, or other actions that don't directly affect the current focus in the app, such as bringing up the score board temporarily. The main focus of my overrides were around replacing redundant actions with unused ones. For example, in FullScreenVideo both triggers and bumpers were AnalogRewind/Fastforward. I overrode the bumpers to be Seek instead. The current Back actions and your proposed changes are all redundant, so i don't know what benefit or problem this will resolve. In my overrides i actually didn't follow the "canonical" use of a back button at all. I used the back button as the hotkey, and removed all standalone actions with a noop. For my personal use this was the best change because I didn't have enough buttons for what I wanted available to me. I tend to think of myself as a "power user" of Kodi, and not everyone would agree with my overrides. |
I've come across two canonical uses for the back button, depending on whether it's labeled as Back or Select:
I think we should settle on one of these. Given that GBA/SNES are over 20 years old, and only applies to game consoles (which kodi isn't), the Android behavior might be more appropriate for a media center.
Redundancy in our joystick buttonmaps arises because we support such a wide range of both current and historical controllers. For example, the menu hotkey in-game is "Select + X", but notice how "Select + Y" also does the same thing. This is because X and Y are in different places depending on whether the face buttons are Japanese style (SNES/PS) or Western style (xbox). We lose the possibility of having different actions on both X and Y, which is also a plus because it simplifies actions for users. It also reduces confusion when Select+X would appear broken when Select+Y is the controller's layout.
My goal with the redundant back button was accessibility, to support the "lowest common denominator". Power usage is a valid use case, so maybe we should ship two joystick.xmls, one that is super-simple with limited functionality and the default, and one that has more advanced usage and expanded functionality that power users are able to handle. |
Description
This PR updates joystick.xml to change the behavior of the Back/Select button to have the same behavior as B. This matches the behavior of Android outside of Kodi, and IMO is more intuitive.
@bjsvedin, you've touched joystick.xml recently, what do you think?
Motivation and context
The problem on Android was pointed out by a tester (didn't save the link).
How has this been tested?
Tested as part of my RetroPlayer builds since January: https://github.com/garbear/xbmc/releases
What is the effect on users?
Types of change