142 Commits
Author SHA1 Message Date
Benjamin Wiegand 27dc4c4dfa version 0.0.2 v0.0.2 2025-07-15 12:48:02 -07:00
Benjamin Wiegand 2a626d5b61 implement power button 2025-07-15 12:17:49 -07:00
Benjamin Wiegand f90b1852f7 remove lint suppression 2025-07-15 08:40:19 -07:00
Benjamin Wiegand 4d3b0a29e5 update input method preferences without requiring app restart 2025-07-15 08:31:12 -07:00
Benjamin Wiegand fde3c94576 don't use FLAG_ACTIVITY_MULTIPLE_TASK 2025-07-15 08:08:27 -07:00
Benjamin Wiegand 1f8721ceea fix missing string 2025-07-15 07:51:11 -07:00
Benjamin Wiegand 578c9b0352 make input control handler priority configurable
this lets you manually define which control handlers are tried first, for debugging, curiosity, and also usability on some "special case" devices (until auto detection is a thing)
2025-07-15 07:17:52 -07:00
Benjamin Wiegand e173fb546f add notification listener permission rationale 2025-07-15 07:10:54 -07:00
Benjamin Wiegand 74816e7d97 add preference screen 2025-07-12 13:28:49 -07:00
Benjamin Wiegand 9b335d8563 fix application-level banner 2025-07-11 12:00:27 -07:00
Benjamin Wiegand 8fb23947e2 version 0.0.1 v0.0.1 2025-07-10 16:55:06 -07:00
Benjamin Wiegand 39d6776bc4 use correct icon on gtv and non-tv 2025-07-10 16:16:55 -07:00
Benjamin Wiegand 34e8cdc194 add new launcher icon 2025-07-10 16:11:01 -07:00
Benjamin Wiegand 40021ed7c8 add banner icon for leanback 2025-07-10 15:56:45 -07:00
Benjamin Wiegand 8a6f5707f9 get correct permission request spec for ime 2025-07-10 14:49:47 -07:00
Benjamin Wiegand b865eee47f add package name to overlay settings intent 2025-07-10 14:49:24 -07:00
Benjamin Wiegand 1c8d219e07 add more permission request dialogs 2025-07-10 12:13:55 -07:00
Benjamin Wiegand c7fdfc5a3a add error message for application overlay permission 2025-07-09 20:28:52 -07:00
Benjamin Wiegand 8368bc42f2 use app context for test pairing dialog 2025-07-09 20:05:13 -07:00
Benjamin Wiegand ba7cfe0ca4 highlight cancel button by default 2025-07-09 20:03:38 -07:00
Benjamin Wiegand ce202f476b always run show() and hide() on ui thread 2025-07-09 20:03:04 -07:00
Benjamin Wiegand 6cb1060200 make pairing dialog an application overlay 2025-07-09 20:01:47 -07:00
Benjamin Wiegand 9146d50e42 update keyboard window on keyboard switch 2025-07-07 00:50:30 -07:00
Benjamin Wiegand e039b49e1c debug button for overlay settings 2025-07-06 22:44:33 -07:00
Benjamin Wiegand acd7148569 show prompt to switch keyboard for ime assist + optimize fallback
- the prompt only shows once so users can use fake dpad if they wish
- optimized fallback by checking if ime is actually connected before using ime dpad. this saves a (noticeable) few hundred milliseconds when the ime is misbehaving.
2025-07-06 20:04:58 -07:00
Benjamin Wiegand e3ef2dce21 add permission request overlay and use it for switching keyboard
the ime input switcher only shows if you have foreground context when you request it. so this overlay provides that.
2025-07-06 02:12:29 -07:00
Benjamin Wiegand 22e49e9f30 make soft keyboard popup usable with fake dpad 2025-07-06 02:06:19 -07:00
Benjamin Wiegand a53a472380 always show on-screen keyboard popup 2025-07-05 16:27:22 -07:00
Benjamin Wiegand bc9ac048a2 always show "switch back to on-screen keyboard" button 2025-07-05 16:25:52 -07:00
Benjamin Wiegand fa5c7b9c21 fix ime not capturing hardware inputs 2025-07-05 16:24:39 -07:00
Benjamin Wiegand 45133dc501 update ime logging 2025-07-05 16:23:04 -07:00
Benjamin Wiegand c822934810 track select button state for fallback
there may be remaining edge cases, but hopefully this should work in the majority of scenarios.

I've tested and verified:
- single/long press with no ime on native buttons
- single/long press with ime on native buttons
- single/long press with ime on native buttons with broken focus (requiring fallback)
- single/long press with ime on non-native buttons
- single/long press with ime within games
- single press with no ime on fake focus
- single press with ime on fake focus
- single press with ime on system prompts (requiring fallback)
2025-07-03 05:31:35 -07:00
Benjamin Wiegand a4296c4db9 silence ui update logs 2025-07-02 05:21:29 -07:00
Benjamin Wiegand 1e982f5a25 fix accessibility overlay error handling 2025-07-02 05:16:21 -07:00
Benjamin Wiegand ef1936b7f6 make fake focus highlight track node 2025-07-02 05:07:16 -07:00
Benjamin Wiegand b6cb0ea514 update documentation and add additional fake focus search fallback
as it turns out, adding those extra events fixed the scrolling bug. nice.
2025-07-02 02:20:30 -07:00
Benjamin Wiegand 62a19d44c2 check fake focus validity on ui window/focus update 2025-07-02 01:49:28 -07:00
Benjamin Wiegand 76b9a5451a fix isFocused() check during focus upgrade 2025-07-02 01:47:48 -07:00
Benjamin Wiegand b5439cc78c receive ui update events to more reliably detect dropped ime key events
the select button can now use tryImeDpad(), which fixes some system prompts and avoids the issue where selecting the first option in a settings dialog doesn't work until you move the dpad.

 this also fixes the google account sign in page, as it's able to detect the movements there now.

 the downside is that the events seem to take forever (100-300 ms) to fire. this means there's now a considerable delay before the fallback is used. It's probably not a big deal since most daily usage won't require the fallback at all anyway.
2025-07-02 01:22:00 -07:00
Benjamin Wiegand b61fd740f1 remove fake focus overlay from wm when not being used 2025-07-02 00:10:02 -07:00
Benjamin Wiegand 49f1b8e786 show fake focus highlight 2025-07-02 00:01:53 -07:00
Benjamin Wiegand 61213f5d0a refactor to remove debug overlay 2025-06-30 21:04:07 -07:00
Benjamin Wiegand 64a441f27f refactor/improve fake dpad
the only real bug left (that I know of): when ime dpad is used but fake dpad fake focus is active, there is both a real and fake focus at the same time, and they (usually) don't agree. this is not as simple as turning off fake dpad focus when ime dpad is active since that would make the ime input switcher inaccessible (as the ime dpad cannot navigate the ime switcher)
2025-06-30 19:42:32 -07:00
Benjamin Wiegand 0659d8b467 add constant for network debug logging
the debug logs for rx/tx and fixed port number are a change I've had locally for a while, but this makes it less annoying to manage git
2025-06-30 17:06:53 -07:00
Benjamin Wiegand cba1ffe099 reduce media session logging 2025-06-30 16:57:01 -07:00
Benjamin Wiegand 2db39029b6 log cache misses 2025-06-30 16:51:52 -07:00
Benjamin Wiegand 67a3b7bdda workaround for fake dpad on google tv home screen 2025-06-29 23:22:30 -07:00
Benjamin Wiegand af4a8b868f implement fake hover
fake dpad can now control ime switcher

still needs a visual hover effect
2025-06-29 23:20:57 -07:00
Benjamin Wiegand 07a15d973e add a cache for focused nodes
improves fake dpad speed and dramatically improves the speed of dropped ime key event detection. the latter a little too much.
2025-06-29 17:12:52 -07:00
Benjamin Wiegand f35fae6b4b ignore own soft keyboard 2025-06-29 14:23:28 -07:00