Get rid of RotaryControllerRRO

Relying on RRO to initialize mDefaultTouchInputMethod was error-prone.
This CL corrects this by identifying the default touch IME among
installed IMEs, and using the result for initialization.

Bug: 346614942
Test: atest android.car.cts.CarRotaryImeTest, manual test
Flag: EXEMPT bugfix
Change-Id: I1ac66ad6925ca093426b41cd22b8754ddc7d2d55
3 files changed
tree: 7c6757250b898b4179dd0299ca42accaf36e0cfe
  1. proto/
  2. res/
  3. src/
  4. tests/
  5. tools/
  6. .gitignore
  7. Android.bp
  8. AndroidManifest.xml
  9. OWNERS
  10. PREUPLOAD.cfg
  11. readme.md
  12. TEST_MAPPING
readme.md

Car rotary service

Building

make CarRotaryController -j64

Enable/disable RotaryService

To enable, run:

adb shell settings put secure enabled_accessibility_services com.android.car.rotary/com.android.car.rotary.RotaryService

To disable, run:

adb shell settings delete secure enabled_accessibility_services

Inject events

Inject RotaryEvent

To rotate the controller counter-clockwise, run:

adb shell cmd car_service inject-rotary

For clockwise, run:

adb shell cmd car_service inject-rotary -c true

To rotate the controller multiple times (100 ms ago and 50 ms ago), run:

adb shell cmd car_service inject-rotary -dt 100 50

Inject KeyEvent

To nudge the controller up, run:

adb shell cmd car_service inject-key 280

Use KeyCode 280 for nudge up, 281 for nudge down,282 for nudge left,283 for nudge right.

To click the controller center button, run:

adb shell cmd car_service inject-key 23

To long click the controller center button, send down and up action seperately. For example:

adb shell cmd car_service inject-key 23 -a down && sleep 2 && adb shell cmd car_service inject-key 23 -a up