diff options
| author | Anmol Gupta <guanmol@google.com> | 2020-04-30 21:06:56 -0700 |
|---|---|---|
| committer | Ioana Stefan <ioanastefan@google.com> | 2020-10-07 20:27:32 +0200 |
| commit | 5e68eeac86cc0179e25a1719bb5182ea9405ee78 (patch) | |
| tree | 4820b04dd36ff97b165c94fb6ccbc20211445f86 /core/java/android/inputmethodservice/IInputMethodWrapper.java | |
| parent | 48acf101c3289ebf4b468418c9755d608b076ad4 (diff) | |
Add proto-based InputMethodService and server side dumping for IME
This CL implements a mechanism to dump InputMethodService and IME
related server states into a proto file which can later be imported
to Winscope to allow easy debugging.
The Design Doc for the IME tracing project is: go/ime-tracing
Bug: 154348613
Test: start trace by calling "adb shell ime tracing start"
end trace by calling "adb shell ime tracing stop"
pull trace using "adb pull /data/misc/wmtrace/ime_trace.pb ime_trace.pb"
Change-Id: Icbfb8c11e882f29eb45dea9d4c23315c48e9d619
Diffstat (limited to 'core/java/android/inputmethodservice/IInputMethodWrapper.java')
| -rw-r--r-- | core/java/android/inputmethodservice/IInputMethodWrapper.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java index a298c856a0fb..0512305e71a2 100644 --- a/core/java/android/inputmethodservice/IInputMethodWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java @@ -16,6 +16,8 @@ package android.inputmethodservice; +import static android.util.imetracing.ImeTracing.PROTO_ARG; + import android.annotation.BinderThread; import android.annotation.MainThread; import android.annotation.Nullable; @@ -37,8 +39,8 @@ import android.view.inputmethod.InputMethod; import android.view.inputmethod.InputMethodSession; import android.view.inputmethod.InputMethodSubtype; -import com.android.internal.inputmethod.IInputMethodPrivilegedOperations; import com.android.internal.inputmethod.CancellationGroup; +import com.android.internal.inputmethod.IInputMethodPrivilegedOperations; import com.android.internal.os.HandlerCaller; import com.android.internal.os.SomeArgs; import com.android.internal.view.IInlineSuggestionsRequestCallback; @@ -155,9 +157,20 @@ class IInputMethodWrapper extends IInputMethod.Stub return; } SomeArgs args = (SomeArgs)msg.obj; + String[] dumpArgs = (String[]) args.arg3; + boolean protoDumpRequested = false; + for (String arg : dumpArgs) { + if (arg.equals(PROTO_ARG)) { + protoDumpRequested = true; + break; + } + } try { - target.dump((FileDescriptor)args.arg1, - (PrintWriter)args.arg2, (String[])args.arg3); + if (protoDumpRequested) { + target.dumpProtoInternal((FileDescriptor) args.arg1, dumpArgs); + } else { + target.dump((FileDescriptor) args.arg1, (PrintWriter) args.arg2, dumpArgs); + } } catch (RuntimeException e) { ((PrintWriter)args.arg2).println("Exception: " + e); } |
