summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ioana Stefan <ioanastefan@google.com> 2020-09-30 07:47:54 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-09-30 07:47:54 +0000
commit92e0fc776bdff9626ffbaa8bceb045dc9974f6ac (patch)
tree93ef24aa866ab7570c4e11f44ea9a1a804c7df5f
parentb77300bb8bf8f49ea150c1ec6b20ff70021d896e (diff)
parent8983689ec6e0473cc8c409afc267b622d52de55e (diff)
Merge "Add proto2 files for dump of server-side IME classes"
-rw-r--r--core/proto/android/inputmethodservice/inputmethodservice.proto61
-rw-r--r--core/proto/android/inputmethodservice/softinputwindow.proto32
-rw-r--r--core/proto/android/server/inputmethod/inputmethodmanagerservice.proto50
-rw-r--r--core/proto/android/server/windowmanagerservice.proto42
-rw-r--r--core/proto/android/view/inputmethod/inputmethodeditortrace.proto7
5 files changed, 192 insertions, 0 deletions
diff --git a/core/proto/android/inputmethodservice/inputmethodservice.proto b/core/proto/android/inputmethodservice/inputmethodservice.proto
new file mode 100644
index 000000000000..3b4ebb5d73e7
--- /dev/null
+++ b/core/proto/android/inputmethodservice/inputmethodservice.proto
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+import "frameworks/base/core/proto/android/inputmethodservice/softinputwindow.proto";
+import "frameworks/base/core/proto/android/view/inputmethod/editorinfo.proto";
+
+package android.inputmethodservice;
+
+option java_multiple_files = true;
+
+message InputMethodServiceProto {
+ optional SoftInputWindowProto soft_input_window = 1;
+ optional bool views_created= 2;
+ optional bool decor_view_visible = 3;
+ optional bool decor_view_was_visible = 4;
+ optional bool window_visible = 5;
+ optional bool in_show_window = 6;
+ optional string configuration = 7;
+ optional string token = 8;
+ optional string input_binding = 9;
+ optional bool input_started = 10;
+ optional bool input_view_started = 11;
+ optional bool candidates_view_started = 12;
+ optional .android.view.inputmethod.EditorInfoProto input_editor_info = 13;
+ optional bool show_input_requested = 14;
+ optional bool last_show_input_requested = 15;
+ optional bool can_pre_render = 16;
+ optional bool is_pre_rendered = 17;
+ optional int32 show_input_flags = 18;
+ optional int32 candidates_visibility = 19;
+ optional bool fullscreen_applied = 20;
+ optional bool is_fullscreen = 21;
+ optional bool extract_view_hidden = 22;
+ optional int32 extracted_token = 23;
+ optional bool is_input_view_shown = 24;
+ optional int32 status_icon = 25;
+ optional InsetsProto last_computed_insets = 26;
+ optional string settings_observer = 27;
+
+ message InsetsProto {
+ optional int32 content_top_insets = 1;
+ optional int32 visible_top_insets = 2;
+ optional int32 touchable_insets = 3;
+ optional string touchable_region = 4;
+ }
+} \ No newline at end of file
diff --git a/core/proto/android/inputmethodservice/softinputwindow.proto b/core/proto/android/inputmethodservice/softinputwindow.proto
new file mode 100644
index 000000000000..85b7d7382805
--- /dev/null
+++ b/core/proto/android/inputmethodservice/softinputwindow.proto
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+import "frameworks/base/core/proto/android/graphics/rect.proto";
+
+package android.inputmethodservice;
+
+option java_multiple_files = true;
+
+message SoftInputWindowProto {
+ optional string name = 1;
+ optional int32 window_type = 2;
+ optional int32 gravity = 3;
+ optional bool takes_focus = 4;
+ optional .android.graphics.RectProto bounds = 5;
+ optional int32 window_state = 6;
+} \ No newline at end of file
diff --git a/core/proto/android/server/inputmethod/inputmethodmanagerservice.proto b/core/proto/android/server/inputmethod/inputmethodmanagerservice.proto
new file mode 100644
index 000000000000..35aae8f92d93
--- /dev/null
+++ b/core/proto/android/server/inputmethod/inputmethodmanagerservice.proto
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+import "frameworks/base/core/proto/android/view/inputmethod/editorinfo.proto";
+
+package android.server.inputmethod;
+
+option java_multiple_files = true;
+
+message InputMethodManagerServiceProto {
+ optional string cur_method_id = 1;
+ optional int32 cur_seq = 2;
+ optional string cur_client = 3;
+ optional string cur_focused_window_name = 4;
+ optional string last_ime_target_window_name = 5;
+ optional string cur_focused_window_soft_input_mode = 6;
+ optional .android.view.inputmethod.EditorInfoProto cur_attribute = 7;
+ optional string cur_id = 8;
+ optional bool show_requested = 9;
+ optional bool show_explicitly_requested = 10;
+ optional bool show_forced = 11;
+ optional bool input_shown = 12;
+ optional bool in_fullscreen_mode = 13;
+ optional string cur_token = 14;
+ optional int32 cur_token_display_id = 15;
+ optional bool system_ready = 16;
+ optional int32 last_switch_user_id = 17;
+ optional bool have_connection = 18;
+ optional bool bound_to_method = 19;
+ optional bool is_interactive = 20;
+ optional int32 back_disposition = 21;
+ optional int32 ime_window_visibility = 22;
+ optional bool show_ime_with_hard_keyboard = 23;
+ optional bool accessibility_requesting_no_soft_keyboard = 24;
+} \ No newline at end of file
diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto
index d4b226dead21..d4d8772f3f81 100644
--- a/core/proto/android/server/windowmanagerservice.proto
+++ b/core/proto/android/server/windowmanagerservice.proto
@@ -30,6 +30,10 @@ import "frameworks/base/core/proto/android/view/windowlayoutparams.proto";
import "frameworks/base/core/proto/android/privacy.proto";
import "frameworks/base/core/proto/android/typedef.proto";
+import "frameworks/base/core/proto/android/view/surfacecontrol.proto";
+import "frameworks/base/core/proto/android/view/insetssource.proto";
+import "frameworks/base/core/proto/android/view/insetssourcecontrol.proto";
+
package com.android.server.wm;
option java_multiple_files = true;
@@ -47,6 +51,7 @@ message WindowManagerServiceDumpProto {
optional int32 rotation = 7 [(.android.typedef) = "android.view.Surface.Rotation"];
optional int32 last_orientation = 8 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation"];
optional int32 focused_display_id = 9;
+ optional bool hard_keyboard_available = 10;
}
/* represents RootWindowContainer object */
@@ -195,6 +200,14 @@ message DisplayContentProto {
optional .com.android.server.wm.IdentifierProto resumed_activity = 24;
repeated TaskProto tasks = 25 [deprecated=true];
optional bool display_ready = 26;
+
+ optional WindowStateProto input_method_target = 27;
+ optional WindowStateProto input_method_input_target = 28;
+ optional WindowStateProto input_method_control_target = 29;
+ optional WindowStateProto current_focus = 30;
+ optional InsetsSourceProviderProto insets_source_provider = 31;
+ optional ImeInsetsSourceProviderProto ime_insets_source_provider = 32;
+ optional bool can_show_ime = 33;
}
/* represents DisplayArea object */
@@ -226,6 +239,8 @@ message DisplayFramesProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
optional .android.graphics.RectProto stable_bounds = 1;
+ optional .android.graphics.RectProto dock = 2;
+ optional .android.graphics.RectProto current = 3;
}
/* represents DockedStackDividerController */
@@ -488,3 +503,30 @@ message WindowFramesProto {
optional .android.graphics.RectProto stable_insets = 14;
optional .android.graphics.RectProto outsets = 15;
}
+
+message InsetsSourceProviderProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional .android.view.InsetsSourceProto source = 1;
+ optional .android.graphics.RectProto frame = 2;
+ optional .android.view.InsetsSourceControlProto fake_control = 3;
+ optional .android.view.InsetsSourceControlProto control = 4;
+ optional WindowStateProto control_target = 5;
+ optional WindowStateProto pending_control_target = 6;
+ optional WindowStateProto fake_control_target = 7;
+ optional .android.view.SurfaceControlProto captured_leash = 8;
+ optional .android.graphics.RectProto ime_overridden_frame = 9;
+ optional bool is_leash_ready_for_dispatching = 10;
+ optional bool client_visible = 11;
+ optional bool server_visible = 12;
+ optional bool seamless_rotating = 13;
+ optional int64 finish_seamless_rotate_frame_number = 14;
+ optional bool controllable = 15;
+}
+
+message ImeInsetsSourceProviderProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional WindowStateProto ime_target_from_ime = 1;
+ optional bool is_ime_layout_drawn = 2;
+} \ No newline at end of file
diff --git a/core/proto/android/view/inputmethod/inputmethodeditortrace.proto b/core/proto/android/view/inputmethod/inputmethodeditortrace.proto
index f31d35b86a0c..2729e82768c3 100644
--- a/core/proto/android/view/inputmethod/inputmethodeditortrace.proto
+++ b/core/proto/android/view/inputmethod/inputmethodeditortrace.proto
@@ -26,6 +26,9 @@ import "frameworks/base/core/proto/android/view/imeinsetssourceconsumer.proto";
import "frameworks/base/core/proto/android/view/inputmethod/editorinfo.proto";
import "frameworks/base/core/proto/android/view/imefocuscontroller.proto";
+import "frameworks/base/core/proto/android/server/inputmethod/inputmethodmanagerservice.proto";
+import "frameworks/base/core/proto/android/inputmethodservice/inputmethodservice.proto";
+
/**
* Represents a file full of input method editor trace entries.
* Encoded, it should start with 0x9 0x49 0x4d 0x45 0x54 0x52 0x41 0x43 0x45 (.IMETRACE), such
@@ -54,12 +57,16 @@ message InputMethodEditorProto {
/* required: elapsed realtime in nanos since boot of when this entry was logged */
optional fixed64 elapsed_realtime_nanos = 1;
optional ClientsProto clients = 2;
+ optional .android.inputmethodservice.InputMethodServiceProto input_method_service = 3;
+ optional .android.server.inputmethod.InputMethodManagerServiceProto input_method_manager_service = 4;
// this wrapper helps to simplify the dumping logic
message ClientsProto {
repeated ClientSideProto client = 1;
}
+ /* todo: extract as a separate message to allow other dumps to use this as their client side
+ proto */
/* groups together the dump from ime related client side classes */
message ClientSideProto {
optional int32 display_id = 1;