• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19import "frameworks/base/core/proto/android/app/statusbarmanager.proto";
20import "frameworks/base/core/proto/android/content/activityinfo.proto";
21import "frameworks/base/core/proto/android/content/configuration.proto";
22import "frameworks/base/core/proto/android/graphics/rect.proto";
23import "frameworks/base/core/proto/android/server/windowcontainerthumbnail.proto";
24import "frameworks/base/core/proto/android/server/surfaceanimator.proto";
25import "frameworks/base/core/proto/android/view/displaycutout.proto";
26import "frameworks/base/core/proto/android/view/displayinfo.proto";
27import "frameworks/base/core/proto/android/view/surface.proto";
28import "frameworks/base/core/proto/android/view/windowlayoutparams.proto";
29import "frameworks/base/core/proto/android/privacy.proto";
30import "frameworks/base/core/proto/android/typedef.proto";
31
32import "frameworks/base/core/proto/android/view/surfacecontrol.proto";
33import "frameworks/base/core/proto/android/view/insetssource.proto";
34import "frameworks/base/core/proto/android/view/insetssourcecontrol.proto";
35
36import "frameworks/proto_logging/stats/enums/view/enums.proto";
37
38package com.android.server.wm;
39
40option java_multiple_files = true;
41
42message WindowManagerServiceDumpProto {
43    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
44
45    optional WindowManagerPolicyProto policy = 1;
46    /* window hierarchy root */
47    optional RootWindowContainerProto root_window_container = 2;
48    optional IdentifierProto focused_window = 3;
49    optional string focused_app = 4;
50    optional IdentifierProto input_method_window = 5;
51    optional bool display_frozen = 6;
52    optional int32 rotation = 7 [(.android.typedef) = "android.view.Surface.Rotation", deprecated=true];
53    optional int32 last_orientation = 8 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation", deprecated=true];
54    optional int32 focused_display_id = 9;
55    optional bool hard_keyboard_available = 10;
56}
57
58/* represents RootWindowContainer object */
59message RootWindowContainerProto {
60    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
61
62    optional WindowContainerProto window_container = 1;
63    repeated DisplayContentProto displays = 2 [deprecated=true];
64    reserved 3; // IdentifierProto windows
65    /* window references in top down z order */
66    repeated WindowStateProto windows = 4 [deprecated=true];
67    optional KeyguardControllerProto keyguard_controller = 5;
68    // Whether or not the home activity is the recents activity. This is needed for the CTS tests to
69    // know what activity types to check for when invoking splitscreen multi-window.
70    optional bool is_home_recents_component = 6;
71    repeated IdentifierProto pending_activities = 7 [deprecated=true];
72}
73
74message BarControllerProto {
75    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
76
77    optional .android.app.StatusBarManagerProto.WindowState state = 1;
78    optional .android.app.StatusBarManagerProto.TransientWindowState transient_state = 2;
79}
80
81message WindowOrientationListenerProto {
82    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
83
84    optional bool enabled = 1;
85    optional .android.view.SurfaceProto.Rotation rotation = 2;
86}
87
88message KeyguardServiceDelegateProto {
89    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
90
91    optional bool showing = 1;
92    optional bool occluded = 2;
93    optional bool secure = 3;
94    enum ScreenState {
95        SCREEN_STATE_OFF = 0;
96        SCREEN_STATE_TURNING_ON = 1;
97        SCREEN_STATE_ON = 2;
98        SCREEN_STATE_TURNING_OFF = 3;
99    }
100    optional ScreenState screen_state = 4;
101    enum InteractiveState {
102        INTERACTIVE_STATE_SLEEP = 0;
103        INTERACTIVE_STATE_WAKING = 1;
104        INTERACTIVE_STATE_AWAKE = 2;
105        INTERACTIVE_STATE_GOING_TO_SLEEP = 3;
106    }
107    optional InteractiveState interactive_state = 5;
108}
109
110message KeyguardControllerProto {
111    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
112
113    optional bool keyguard_showing = 1;
114    repeated KeyguardOccludedProto keyguard_occluded_states = 2;
115    optional bool aod_showing = 3;
116}
117
118message KeyguardOccludedProto {
119    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
120
121    optional int32 display_id = 1;
122    optional bool keyguard_occluded = 2;
123}
124
125/* represents PhoneWindowManager */
126message WindowManagerPolicyProto {
127    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
128
129    optional int32 last_system_ui_flags = 1 [deprecated=true];
130    enum UserRotationMode {
131        USER_ROTATION_FREE = 0;
132        USER_ROTATION_LOCKED = 1;
133    }
134    optional UserRotationMode rotation_mode = 2;
135    optional .android.view.SurfaceProto.Rotation rotation = 3;
136    optional .android.content.ActivityInfoProto.ScreenOrientation orientation = 4;
137    optional bool screen_on_fully = 5;
138    optional bool keyguard_draw_complete = 6;
139    optional bool window_manager_draw_complete = 7;
140    optional string focused_app_token = 8 [deprecated=true];
141    optional IdentifierProto focused_window = 9 [deprecated=true];
142    optional IdentifierProto top_fullscreen_opaque_window = 10 [deprecated=true];
143    optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11 [deprecated=true];
144    optional bool keyguard_occluded = 12;
145    optional bool keyguard_occluded_changed = 13;
146    optional bool keyguard_occluded_pending = 14;
147    optional bool force_status_bar = 15 [deprecated=true];
148    optional bool force_status_bar_from_keyguard = 16 [deprecated=true];
149    optional BarControllerProto status_bar = 17 [deprecated=true];
150    optional BarControllerProto navigation_bar = 18 [deprecated=true];
151    optional WindowOrientationListenerProto orientation_listener = 19 [deprecated=true];
152    optional KeyguardServiceDelegateProto keyguard_delegate = 20;
153}
154
155/* represents AppTransition */
156message AppTransitionProto {
157    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
158
159    enum AppState {
160        APP_STATE_IDLE = 0;
161        APP_STATE_READY = 1;
162        APP_STATE_RUNNING = 2;
163        APP_STATE_TIMEOUT = 3;
164    }
165    optional AppState app_transition_state = 1;
166
167    optional .android.view.TransitionTypeEnum last_used_app_transition = 2;
168}
169
170/* represents DisplayContent object */
171message DisplayContentProto {
172    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
173
174    // Use root_display_area instead
175    optional WindowContainerProto window_container = 1 [deprecated=true];
176    optional int32 id = 2;
177    reserved 3; // RootTasks
178    optional DockedTaskDividerControllerProto docked_task_divider_controller = 4 [deprecated=true];
179    // Will be removed soon.
180    optional PinnedTaskControllerProto pinned_task_controller = 5 [deprecated=true];
181    /* non app windows */
182    repeated WindowTokenProto above_app_windows = 6 [deprecated=true];
183    repeated WindowTokenProto below_app_windows = 7 [deprecated=true];
184    repeated WindowTokenProto ime_windows = 8 [deprecated=true];
185    optional int32 dpi = 9;
186    optional .android.view.DisplayInfoProto display_info = 10;
187    optional int32 rotation = 11 [(.android.typedef) = "android.view.Surface.Rotation", deprecated=true];
188    optional ScreenRotationAnimationProto screen_rotation_animation = 12;
189    optional DisplayFramesProto display_frames = 13;
190    optional int32 surface_size = 14 [deprecated=true];
191    optional string focused_app = 15;
192    optional AppTransitionProto app_transition = 16;
193    repeated IdentifierProto opening_apps = 17;
194    repeated IdentifierProto closing_apps = 18;
195    repeated IdentifierProto changing_apps = 19;
196    repeated WindowTokenProto overlay_windows = 20 [deprecated=true];
197    optional DisplayAreaProto root_display_area = 21;
198
199    optional bool single_task_instance = 22 [deprecated=true];
200    optional int32 focused_root_task_id = 23;
201    optional .com.android.server.wm.IdentifierProto resumed_activity = 24;
202    repeated TaskProto tasks = 25 [deprecated=true];
203    optional bool display_ready = 26;
204
205    optional WindowStateProto input_method_target = 27;
206    optional WindowStateProto input_method_input_target = 28;
207    optional WindowStateProto input_method_control_target = 29;
208    optional WindowStateProto current_focus = 30;
209    optional ImeInsetsSourceProviderProto ime_insets_source_provider = 31;
210    optional bool can_show_ime = 32 [deprecated=true];
211
212    optional DisplayRotationProto display_rotation = 33;
213    optional int32 ime_policy = 34;
214}
215
216/* represents DisplayArea object */
217message DisplayAreaProto {
218    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
219
220    optional WindowContainerProto window_container = 1;
221    optional string name = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
222    repeated DisplayAreaChildProto children = 3 [deprecated=true];
223    optional bool is_task_display_area = 4;
224    optional bool is_root_display_area = 5;
225    optional int32 feature_id = 6;
226    optional bool is_organized = 7;
227}
228
229/* represents a generic child of a DisplayArea */
230message DisplayAreaChildProto {
231    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
232
233    /* At most one of the following should be present: */
234
235    /* represents a DisplayArea child */
236    optional DisplayAreaProto display_area = 1;
237    /* represents a WindowToken child */
238    optional WindowTokenProto window = 2;
239    /* represents an unknown child - the class name is recorded */
240    repeated string unknown = 3;
241}
242
243/* represents DisplayFrames */
244message DisplayFramesProto {
245    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
246
247    optional .android.graphics.RectProto stable_bounds = 1 [deprecated=true];
248    optional .android.graphics.RectProto dock = 2 [deprecated=true];
249    optional .android.graphics.RectProto current = 3 [deprecated=true];
250}
251
252message DisplayRotationProto {
253    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
254
255    optional int32 rotation = 1 [(.android.typedef) = "android.view.Surface.Rotation"];
256    optional bool frozen_to_user_rotation = 2;
257    optional int32 user_rotation = 3 [(.android.typedef) = "android.view.Surface.Rotation"];
258    optional int32 fixed_to_user_rotation_mode = 4;
259    optional int32 last_orientation = 5 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation"];
260}
261
262/* represents DockedTaskDividerController */
263message DockedTaskDividerControllerProto {
264    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
265
266    optional bool minimized_dock = 1 [deprecated=true];
267}
268
269/* represents PinnedTaskController */
270message PinnedTaskControllerProto {
271    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
272
273    optional .android.graphics.RectProto default_bounds = 1 [deprecated=true];
274    optional .android.graphics.RectProto movement_bounds = 2 [deprecated=true];
275}
276
277/* represents Task */
278message TaskProto {
279    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
280
281    optional WindowContainerProto window_container = 1;
282    optional int32 id = 2;
283    reserved 3; // activity
284    optional bool fills_parent = 4;
285    optional .android.graphics.RectProto bounds = 5;
286    optional .android.graphics.RectProto displayed_bounds = 6 [deprecated=true];
287    optional bool defer_removal = 7;
288    optional int32 surface_width = 8;
289    optional int32 surface_height = 9;
290
291    repeated TaskProto tasks = 10 [deprecated=true];
292    repeated ActivityRecordProto activities = 11 [deprecated=true];
293
294    optional .com.android.server.wm.IdentifierProto resumed_activity = 12;
295    optional string real_activity = 13;
296    optional string orig_activity = 14;
297
298    optional int32 display_id = 15;
299    optional int32 root_task_id = 16;
300    optional int32 activity_type = 17 [(.android.typedef) = "android.app.WindowConfiguration.ActivityType"];
301    optional int32 resize_mode = 18 [(.android.typedef) = "android.appwidget.AppWidgetProviderInfo.ResizeModeFlags"];
302    optional int32 min_width = 19;
303    optional int32 min_height = 20;
304
305    optional .android.graphics.RectProto adjusted_bounds = 21;
306    optional .android.graphics.RectProto last_non_fullscreen_bounds = 22;
307    optional bool adjusted_for_ime = 23;
308    optional float adjust_ime_amount = 24;
309    optional float adjust_divider_amount = 25;
310    optional bool animating_bounds = 26 [deprecated = true];
311    optional float minimize_amount = 27;
312    optional bool created_by_organizer = 28;
313    optional string affinity = 29;
314    optional bool has_child_pip_activity = 30;
315}
316
317/* represents ActivityRecordProto */
318message ActivityRecordProto {
319    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
320
321    optional string name = 1 [ (.android.privacy).dest = DEST_EXPLICIT ];
322
323    optional WindowTokenProto window_token = 2;
324    optional bool last_surface_showing = 3;
325    optional bool is_waiting_for_transition_start = 4;
326    optional bool is_animating = 5;
327    optional WindowContainerThumbnailProto thumbnail = 6;
328    optional bool fills_parent = 7;
329    optional bool app_stopped = 8;
330    optional bool visible_requested = 9;
331    optional bool client_visible = 10;
332    optional bool defer_hiding_client = 11;
333    optional bool reported_drawn = 12;
334    optional bool reported_visible = 13;
335    optional int32 num_interesting_windows = 14;
336    optional int32 num_drawn_windows = 15;
337    optional bool all_drawn = 16;
338    optional bool last_all_drawn = 17;
339    reserved 18; // removed
340    optional IdentifierProto starting_window = 19;
341    optional bool starting_displayed = 20;
342    optional bool starting_moved = 201;
343    optional bool visible_set_from_transferred_starting_window = 22;
344    repeated .android.graphics.RectProto frozen_bounds = 23 [deprecated=true];
345    optional bool visible = 24;
346    reserved 25; // configuration_container
347    optional IdentifierProto identifier = 26 [deprecated=true];
348    optional string state = 27 [(.android.privacy).dest = DEST_EXPLICIT];
349    optional bool front_of_task = 28;
350    optional int32 proc_id = 29;
351    optional bool translucent = 30;
352    optional bool pip_auto_enter_enabled = 31;
353    optional bool in_size_compat_mode = 32;
354}
355
356/* represents WindowToken */
357message WindowTokenProto {
358    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
359
360    optional WindowContainerProto window_container = 1;
361    optional int32 hash_code = 2;
362    repeated WindowStateProto windows = 3 [deprecated=true];
363    optional bool waiting_to_show = 5;
364    optional bool paused = 6;
365}
366
367/* represents WindowState */
368message WindowStateProto {
369    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
370
371    optional WindowContainerProto window_container = 1;
372    optional IdentifierProto identifier = 2 [deprecated=true];
373    // Unique identifier of a DisplayContent stack.
374    optional int32 display_id = 3;
375    // Unique identifier for the task stack.
376    optional int32 stack_id = 4;
377    optional .android.view.WindowLayoutParamsProto attributes = 5;
378    optional .android.graphics.RectProto given_content_insets = 6;
379    optional .android.graphics.RectProto frame = 7 [deprecated=true];
380    optional .android.graphics.RectProto containing_frame = 8 [deprecated=true];
381    optional .android.graphics.RectProto parent_frame = 9 [deprecated=true];
382    optional .android.graphics.RectProto content_frame = 10 [deprecated=true];
383    optional .android.graphics.RectProto content_insets = 11 [deprecated=true];
384    optional .android.graphics.RectProto surface_insets = 12;
385    optional WindowStateAnimatorProto animator = 13;
386    optional bool animating_exit = 14;
387    repeated WindowStateProto child_windows = 15 [deprecated=true];
388    optional .android.graphics.RectProto surface_position = 16;
389    optional int32 requested_width = 18;
390    optional int32 requested_height = 19;
391    optional int32 view_visibility = 20 [(.android.typedef) = "android.view.View.Visibility"];
392    optional int32 system_ui_visibility = 21 [deprecated=true];
393    optional bool has_surface = 22;
394    optional bool is_ready_for_display = 23;
395    optional .android.graphics.RectProto display_frame = 24 [deprecated=true];
396    optional .android.graphics.RectProto overscan_frame = 25 [deprecated=true];
397    optional .android.graphics.RectProto visible_frame = 26 [deprecated=true];
398    optional .android.graphics.RectProto decor_frame = 27 [deprecated=true];
399    optional .android.graphics.RectProto outset_frame = 28 [deprecated=true];
400    optional .android.graphics.RectProto overscan_insets = 29 [deprecated=true];
401    optional .android.graphics.RectProto visible_insets = 30 [deprecated=true];
402    optional .android.graphics.RectProto stable_insets = 31 [deprecated=true];
403    optional .android.graphics.RectProto outsets = 32 [deprecated=true];
404    optional .android.view.DisplayCutoutProto cutout = 33 [deprecated=true];
405    optional bool remove_on_exit = 34;
406    optional bool destroying = 35;
407    optional bool removed = 36;
408    optional bool is_on_screen = 37;
409    optional bool is_visible = 38;
410    optional bool pending_seamless_rotation = 39;
411    optional int64 finished_seamless_rotation_frame = 40;
412    optional WindowFramesProto window_frames = 41;
413    optional bool force_seamless_rotation = 42;
414    optional bool has_compat_scale = 43;
415    optional float global_scale = 44;
416}
417
418message IdentifierProto {
419    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
420
421    optional int32 hash_code = 1;
422    optional int32 user_id = 2;
423    // Either a component name/string (eg: "com.android.settings/.FallbackHome")
424    // or a window title ("NavigationBar").
425    optional string title = 3 [ (.android.privacy).dest = DEST_EXPLICIT ];
426}
427
428/* represents WindowStateAnimator */
429message WindowStateAnimatorProto {
430    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
431
432    optional .android.graphics.RectProto last_clip_rect = 1;
433    optional WindowSurfaceControllerProto surface = 2;
434    enum DrawState {
435        NO_SURFACE = 0;
436        DRAW_PENDING = 1;
437        COMMIT_DRAW_PENDING = 2;
438        READY_TO_SHOW = 3;
439        HAS_DRAWN = 4;
440    }
441    optional DrawState draw_state = 3;
442    optional .android.graphics.RectProto system_decor_rect = 4;
443}
444
445/* represents WindowSurfaceController */
446message WindowSurfaceControllerProto {
447    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
448
449    optional bool shown = 1;
450    optional int32 layer = 2;
451}
452
453/* represents ScreenRotationAnimation */
454message ScreenRotationAnimationProto {
455    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
456
457    optional bool started = 1;
458    optional bool animation_running = 2;
459}
460
461/* represents WindowContainer */
462message WindowContainerProto {
463    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
464
465    optional ConfigurationContainerProto configuration_container = 1;
466    optional int32 orientation = 2 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation"];
467    optional bool visible = 3;
468    optional SurfaceAnimatorProto surface_animator = 4;
469    repeated WindowContainerChildProto children = 5;
470    optional IdentifierProto identifier = 6;
471}
472
473/* represents a generic child of a WindowContainer */
474message WindowContainerChildProto {
475    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
476
477    /* A window container can have multiple children of different types stored as
478     * a WindowContainerChildProto but each instance of WindowContainerChildProto
479     * can only contain a single type.
480     */
481    /* We do not know the derived typ and the class is dumped
482     * as a WindowContainer */
483    optional WindowContainerProto window_container = 2;
484    /* represents a DisplayContent child */
485    optional DisplayContentProto display_content = 3;
486    /* represents a DisplayArea child */
487    optional DisplayAreaProto display_area = 4;
488    /* represents a Task child */
489    optional TaskProto task = 5;
490    /* represents an ActivityRecord child */
491    optional ActivityRecordProto activity = 6;
492    /* represents a WindowToken child */
493    optional WindowTokenProto window_token = 7;
494    /* represents a WindowState child */
495    optional WindowStateProto window = 8;
496}
497
498/* represents ConfigurationContainer */
499message ConfigurationContainerProto {
500    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
501
502    optional .android.content.ConfigurationProto override_configuration = 1;
503    optional .android.content.ConfigurationProto full_configuration = 2;
504    optional .android.content.ConfigurationProto merged_override_configuration = 3;
505}
506
507/* represents WindowFrames */
508message WindowFramesProto {
509    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
510
511    optional .android.graphics.RectProto containing_frame = 1;
512    optional .android.graphics.RectProto content_frame = 2 [deprecated=true];
513    optional .android.graphics.RectProto decor_frame = 3 [deprecated=true];
514    optional .android.graphics.RectProto display_frame = 4;
515    optional .android.graphics.RectProto frame = 5;
516    optional .android.graphics.RectProto outset_frame = 6;
517    optional .android.graphics.RectProto overscan_frame = 7 [deprecated=true];
518    optional .android.graphics.RectProto parent_frame = 8;
519    optional .android.graphics.RectProto visible_frame = 9 [deprecated=true];
520    optional .android.view.DisplayCutoutProto cutout = 10 [deprecated=true];
521    optional .android.graphics.RectProto content_insets = 11 [deprecated=true];
522    optional .android.graphics.RectProto overscan_insets = 12 [deprecated=true];
523    optional .android.graphics.RectProto visible_insets = 13 [deprecated=true];
524    optional .android.graphics.RectProto stable_insets = 14 [deprecated=true];
525    optional .android.graphics.RectProto outsets = 15;
526    optional .android.graphics.RectProto compat_frame = 16;
527}
528
529message InsetsSourceProviderProto {
530    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
531
532    optional .android.view.InsetsSourceProto source = 1;
533    optional .android.graphics.RectProto frame = 2;
534    optional .android.view.InsetsSourceControlProto fake_control = 3;
535    optional .android.view.InsetsSourceControlProto control = 4;
536    optional WindowStateProto control_target = 5;
537    optional WindowStateProto pending_control_target = 6;
538    optional WindowStateProto fake_control_target = 7;
539    optional .android.view.SurfaceControlProto captured_leash = 8;
540    optional .android.graphics.RectProto ime_overridden_frame = 9;
541    optional bool is_leash_ready_for_dispatching = 10;
542    optional bool client_visible = 11;
543    optional bool server_visible = 12;
544    optional bool seamless_rotating = 13;
545    optional int64 finish_seamless_rotate_frame_number = 14;
546    optional bool controllable = 15;
547}
548
549message ImeInsetsSourceProviderProto {
550    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
551
552    optional InsetsSourceProviderProto insets_source_provider = 1;
553    optional WindowStateProto ime_target_from_ime = 2;
554    optional bool is_ime_layout_drawn = 3;
555}
556