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

Input method picker only shows some keyboards #1340

Open
nightkr opened this issue Feb 5, 2025 · 2 comments
Open

Input method picker only shows some keyboards #1340

nightkr opened this issue Feb 5, 2025 · 2 comments
Labels
bug Something isn't working

Comments

@nightkr
Copy link

nightkr commented Feb 5, 2025

Describe the bug

To Reproduce

  1. Install and enable another keyboard (I've tested this with my own https://codeberg.org/natkr/flickboard but the mechanism triggers the same against HeliBoard itself from other apps)
  2. Install, enable, and select HeliBoard (order is important, HeliBoard must be installed after the other keyboard)
  3. Open a text field in some app
  4. Long-hold space to open HeliBoard's keyboard picker
  5. Note that HeliBoard and the system keyboard(s) (probably GBoard) are both listed, but the other third-party keyboard (FlickBoard) is not
  6. Tap the system-native keyboard picker button
  7. Note that all enabled keyboards are listed

Expected behavior
All enabled keyboards should be listed.

This seems to be due to an Android bug with how package-privacy works. The other keyboards list fine if I add a query for <action android:name="*"/>, but obviously it's weird that the current android.view.InputMethod doesn't work. I agree that what you do matches what I'd expect from the documentation.

Another option would be to just use the standard keyboard picker (https://developer.android.com/reference/kotlin/android/view/inputmethod/InputMethodManager?hl=en#showinputmethodpicker) instead.

Screenshots
ONLY add screenshots when they add real value.
If you add screenshots, reduce the size or use thumbnails to keep the issue nicely readable.

App version
2.3 and main (7c77f4d)

Device:
Android 14 emulator, Android 15 emulator (The official Play API ROMs)

@nightkr nightkr added the bug Something isn't working label Feb 5, 2025
@Helium314
Copy link
Owner

The other keyboards list fine if I add a query for

Where do you add this?

Another option would be to just use the standard keyboard picker

The problem with the standard picker is that it only shows subtypes that are registered in the system. Up to Android 13 or 14 it was necessary to use a system screen for registering the subtype, and this screen is simply broken on some devices (#12).
So the custom subtype picker is the only choice if people want more than default enabled subtypes.

It could be changed for new Android versions, but I didn't look up details.

@nightkr
Copy link
Author

nightkr commented Feb 12, 2025

Where do you add this?

It replaces

<action android:name="android.view.InputMethod"/>

The problem with the standard picker is that it only shows subtypes that are registered in the system.

Ah.. :/ As far as I can tell, the system-wide dynamic subtype management stuff is even more deprecated now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants