Skip to content
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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

garbear
Copy link
Member

@garbear garbear commented May 10, 2024

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?

  • Fixes behavior of the Back/Select button on Android

Types of change

  • Bug fix (non-breaking change which fixes an issue)
  • Clean up (non-breaking change which removes non-working, unmaintained functionality)
  • Improvement (non-breaking change which improves existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that will cause existing functionality to change)
  • Cosmetic change (non-breaking change that doesn't touch code)
  • Student submission (PR was done for educational purposes and will be treated as such)
  • None of the above (please explain below)

This mirrors the behavior of Android, where Back/Select and B have the
same behavior.
@bjsvedin
Copy link
Contributor

@garbear

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.

@garbear
Copy link
Member Author

garbear commented May 15, 2024

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.

I've come across two canonical uses for the back button, depending on whether it's labeled as Back or Select:

  • On GBA/SNES, Select opens menus
  • On Android, Back goes back

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.

The current Back actions and your proposed changes are all redundant, so i don't know what benefit or problem this will resolve.

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.

I tend to think of myself as a "power user" of Kodi, and not everyone would agree with my overrides.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants