Use IBinder#shellCommand() for 'adb shell ime'
This is a preparation CL to add a new command to 'adb shell ime'. Currently 'ime' command is written in Java language that relies directly on the internal Binder IPC interface IInputMethodManager. This is not ideal because: 1. We have to keep maintaining IInputMethodManager methods used only by the 'ime' command. 2. Adding new options to the 'ime' command is tedious when it requires new methods in IInputMethodManager. With this CL, all features of 'ime' command are re-implemented inside InputMethodManagerService (IMMS) on top of Binder's "shell command" feature [1]. Like 'am' command was gone recently [2], now 'ime' command is also a simple shell wrapper to forward options to 'cmd input_method', which allows us to 1) reduce the code duplication and 2) give non-zero status code when the command fails with Java exception. [1]: I76518ea6719d1d08a8ad8722a059c7f5fd86813a 9461b6f9 [2]: Ia8187196af597046fd2e7092dbf19ce1dc1ea457 1704e3cf Bug: 70475949 Test: adb shell ime Test: adb shell ime help Test: adb shell ime dump Test: adb shell ime list -a Test: adb shell cmd input_method Test: adb shell cmd input_method help Test: adb shell cmd input_method dump Test: adb shell cmd input_method list -a Change-Id: I9a2dbbf1d4494addbe22c82e2c416eedc4d585f2
Loading
Please register or sign in to comment