summaryrefslogtreecommitdiff
path: root/core/proto/android/server/windowmanagerservice.proto
blob: 6faa04690473e40f250b1f93193f8356c3e6073d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
/*
 * Copyright (C) 2017 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/app/statusbarmanager.proto";
import "frameworks/base/core/proto/android/content/activityinfo.proto";
import "frameworks/base/core/proto/android/content/configuration.proto";
import "frameworks/base/core/proto/android/graphics/rect.proto";
import "frameworks/base/core/proto/android/server/windowcontainerthumbnail.proto";
import "frameworks/base/core/proto/android/server/surfaceanimator.proto";
import "frameworks/base/core/proto/android/view/displaycutout.proto";
import "frameworks/base/core/proto/android/view/displayinfo.proto";
import "frameworks/base/core/proto/android/view/surface.proto";
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";

import "frameworks/proto_logging/stats/enums/view/enums.proto";

package com.android.server.wm;

option java_multiple_files = true;

message WindowManagerServiceDumpProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional WindowManagerPolicyProto policy = 1;
    /* window hierarchy root */
    optional RootWindowContainerProto root_window_container = 2;
    optional IdentifierProto focused_window = 3;
    optional string focused_app = 4;
    optional IdentifierProto input_method_window = 5;
    optional bool display_frozen = 6;
    optional int32 rotation = 7 [(.android.typedef) = "android.view.Surface.Rotation", deprecated=true];
    optional int32 last_orientation = 8 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation", deprecated=true];
    optional int32 focused_display_id = 9;
    optional bool hard_keyboard_available = 10;
}

/* represents RootWindowContainer object */
message RootWindowContainerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional WindowContainerProto window_container = 1;
    repeated DisplayContentProto displays = 2 [deprecated=true];
    reserved 3; // IdentifierProto windows
    /* window references in top down z order */
    repeated WindowStateProto windows = 4 [deprecated=true];
    optional KeyguardControllerProto keyguard_controller = 5;
    // Whether or not the home activity is the recents activity. This is needed for the CTS tests to
    // know what activity types to check for when invoking splitscreen multi-window.
    optional bool is_home_recents_component = 6;
    repeated IdentifierProto pending_activities = 7 [deprecated=true];
    optional int32 default_min_size_resizable_task = 8;
}

message BarControllerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional .android.app.StatusBarManagerProto.WindowState state = 1;
    optional .android.app.StatusBarManagerProto.TransientWindowState transient_state = 2;
}

message WindowOrientationListenerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional bool enabled = 1;
    optional .android.view.SurfaceProto.Rotation rotation = 2;
}

message KeyguardServiceDelegateProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional bool showing = 1;
    optional bool occluded = 2;
    optional bool secure = 3;
    enum ScreenState {
        SCREEN_STATE_OFF = 0;
        SCREEN_STATE_TURNING_ON = 1;
        SCREEN_STATE_ON = 2;
        SCREEN_STATE_TURNING_OFF = 3;
    }
    optional ScreenState screen_state = 4;
    enum InteractiveState {
        INTERACTIVE_STATE_SLEEP = 0;
        INTERACTIVE_STATE_WAKING = 1;
        INTERACTIVE_STATE_AWAKE = 2;
        INTERACTIVE_STATE_GOING_TO_SLEEP = 3;
    }
    optional InteractiveState interactive_state = 5;
}

message KeyguardControllerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional bool keyguard_showing = 1;
    repeated KeyguardOccludedProto keyguard_occluded_states = 2;
    optional bool aod_showing = 3;
}

message KeyguardOccludedProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional int32 display_id = 1;
    optional bool keyguard_occluded = 2;
}

/* represents PhoneWindowManager */
message WindowManagerPolicyProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional int32 last_system_ui_flags = 1 [deprecated=true];
    enum UserRotationMode {
        USER_ROTATION_FREE = 0;
        USER_ROTATION_LOCKED = 1;
    }
    optional UserRotationMode rotation_mode = 2;
    optional .android.view.SurfaceProto.Rotation rotation = 3;
    optional .android.content.ActivityInfoProto.ScreenOrientation orientation = 4;
    optional bool screen_on_fully = 5;
    optional bool keyguard_draw_complete = 6;
    optional bool window_manager_draw_complete = 7;
    optional string focused_app_token = 8 [deprecated=true];
    optional IdentifierProto focused_window = 9 [deprecated=true];
    optional IdentifierProto top_fullscreen_opaque_window = 10 [deprecated=true];
    optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11 [deprecated=true];
    optional bool keyguard_occluded = 12;
    optional bool keyguard_occluded_changed = 13;
    optional bool keyguard_occluded_pending = 14;
    optional bool force_status_bar = 15 [deprecated=true];
    optional bool force_status_bar_from_keyguard = 16 [deprecated=true];
    optional BarControllerProto status_bar = 17 [deprecated=true];
    optional BarControllerProto navigation_bar = 18 [deprecated=true];
    optional WindowOrientationListenerProto orientation_listener = 19 [deprecated=true];
    optional KeyguardServiceDelegateProto keyguard_delegate = 20;
}

/* represents AppTransition */
message AppTransitionProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    enum AppState {
        APP_STATE_IDLE = 0;
        APP_STATE_READY = 1;
        APP_STATE_RUNNING = 2;
        APP_STATE_TIMEOUT = 3;
    }
    optional AppState app_transition_state = 1;

    optional .android.view.TransitionTypeEnum last_used_app_transition = 2;
}

/* represents DisplayContent object */
message DisplayContentProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    // Use root_display_area instead
    optional WindowContainerProto window_container = 1 [deprecated=true];
    optional int32 id = 2;
    reserved 3; // RootTasks
    optional DockedTaskDividerControllerProto docked_task_divider_controller = 4 [deprecated=true];
    // Will be removed soon.
    optional PinnedTaskControllerProto pinned_task_controller = 5 [deprecated=true];
    /* non app windows */
    repeated WindowTokenProto above_app_windows = 6 [deprecated=true];
    repeated WindowTokenProto below_app_windows = 7 [deprecated=true];
    repeated WindowTokenProto ime_windows = 8 [deprecated=true];
    optional int32 dpi = 9;
    optional .android.view.DisplayInfoProto display_info = 10;
    optional int32 rotation = 11 [(.android.typedef) = "android.view.Surface.Rotation", deprecated=true];
    optional ScreenRotationAnimationProto screen_rotation_animation = 12;
    optional DisplayFramesProto display_frames = 13;
    optional int32 surface_size = 14 [deprecated=true];
    optional string focused_app = 15;
    optional AppTransitionProto app_transition = 16;
    repeated IdentifierProto opening_apps = 17;
    repeated IdentifierProto closing_apps = 18;
    repeated IdentifierProto changing_apps = 19;
    repeated WindowTokenProto overlay_windows = 20 [deprecated=true];
    optional DisplayAreaProto root_display_area = 21;

    optional bool single_task_instance = 22 [deprecated=true];
    optional int32 focused_root_task_id = 23;
    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 ImeInsetsSourceProviderProto ime_insets_source_provider = 31;
    optional bool can_show_ime = 32 [deprecated=true];

    optional DisplayRotationProto display_rotation = 33;
    optional int32 ime_policy = 34;
    optional bool is_sleeping = 36;
    repeated string sleep_tokens = 37;
}

/* represents DisplayArea object */
message DisplayAreaProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional WindowContainerProto window_container = 1;
    optional string name = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
    repeated DisplayAreaChildProto children = 3 [deprecated=true];
    optional bool is_task_display_area = 4;
    optional bool is_root_display_area = 5;
    optional int32 feature_id = 6;
    optional bool is_organized = 7;
}

/* represents a generic child of a DisplayArea */
message DisplayAreaChildProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    /* At most one of the following should be present: */

    /* represents a DisplayArea child */
    optional DisplayAreaProto display_area = 1;
    /* represents a WindowToken child */
    optional WindowTokenProto window = 2;
    /* represents an unknown child - the class name is recorded */
    repeated string unknown = 3;
}

/* represents DisplayFrames */
message DisplayFramesProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional .android.graphics.RectProto stable_bounds = 1 [deprecated=true];
    optional .android.graphics.RectProto dock = 2 [deprecated=true];
    optional .android.graphics.RectProto current = 3 [deprecated=true];
}

message DisplayRotationProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional int32 rotation = 1 [(.android.typedef) = "android.view.Surface.Rotation"];
    optional bool frozen_to_user_rotation = 2;
    optional int32 user_rotation = 3 [(.android.typedef) = "android.view.Surface.Rotation"];
    optional int32 fixed_to_user_rotation_mode = 4;
    optional int32 last_orientation = 5 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation"];
}

/* represents DockedTaskDividerController */
message DockedTaskDividerControllerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional bool minimized_dock = 1 [deprecated=true];
}

/* represents PinnedTaskController */
message PinnedTaskControllerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional .android.graphics.RectProto default_bounds = 1 [deprecated=true];
    optional .android.graphics.RectProto movement_bounds = 2 [deprecated=true];
}

/* represents Task */
message TaskProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional WindowContainerProto window_container = 1 [deprecated=true];
    optional int32 id = 2;
    reserved 3; // activity
    optional bool fills_parent = 4;
    optional .android.graphics.RectProto bounds = 5;
    optional .android.graphics.RectProto displayed_bounds = 6 [deprecated=true];
    optional bool defer_removal = 7;
    optional int32 surface_width = 8;
    optional int32 surface_height = 9;

    repeated TaskProto tasks = 10 [deprecated=true];
    repeated ActivityRecordProto activities = 11 [deprecated=true];

    optional .com.android.server.wm.IdentifierProto resumed_activity = 12;
    optional string real_activity = 13;
    optional string orig_activity = 14;

    optional int32 display_id = 15 [deprecated=true];
    optional int32 root_task_id = 16;
    optional int32 activity_type = 17 [(.android.typedef) = "android.app.WindowConfiguration.ActivityType", deprecated=true] ;
    optional int32 resize_mode = 18 [(.android.typedef) = "android.appwidget.AppWidgetProviderInfo.ResizeModeFlags"];
    optional int32 min_width = 19 [deprecated=true];
    optional int32 min_height = 20 [deprecated=true];

    optional .android.graphics.RectProto adjusted_bounds = 21;
    optional .android.graphics.RectProto last_non_fullscreen_bounds = 22;
    optional bool adjusted_for_ime = 23;
    optional float adjust_ime_amount = 24;
    optional float adjust_divider_amount = 25;
    optional bool animating_bounds = 26 [deprecated = true];
    optional float minimize_amount = 27;
    optional bool created_by_organizer = 28;
    optional string affinity = 29;
    optional bool has_child_pip_activity = 30;
    optional TaskFragmentProto task_fragment = 31;
}

/* represents TaskFragment */
message TaskFragmentProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional WindowContainerProto window_container = 1;
    optional int32 display_id = 2;
    optional int32 activity_type = 3 [(.android.typedef) = "android.app.WindowConfiguration.ActivityType"];
    optional int32 min_width = 4;
    optional int32 min_height = 5;
}

/* represents ActivityRecordProto */
message ActivityRecordProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional string name = 1 [ (.android.privacy).dest = DEST_EXPLICIT ];

    optional WindowTokenProto window_token = 2;
    optional bool last_surface_showing = 3;
    optional bool is_waiting_for_transition_start = 4;
    optional bool is_animating = 5;
    optional WindowContainerThumbnailProto thumbnail = 6;
    optional bool fills_parent = 7;
    optional bool app_stopped = 8;
    optional bool visible_requested = 9;
    optional bool client_visible = 10;
    optional bool defer_hiding_client = 11;
    optional bool reported_drawn = 12;
    optional bool reported_visible = 13;
    optional int32 num_interesting_windows = 14;
    optional int32 num_drawn_windows = 15;
    optional bool all_drawn = 16;
    optional bool last_all_drawn = 17;
    reserved 18; // removed
    optional IdentifierProto starting_window = 19;
    optional bool starting_displayed = 20;
    optional bool starting_moved = 201;
    optional bool visible_set_from_transferred_starting_window = 22;
    repeated .android.graphics.RectProto frozen_bounds = 23 [deprecated=true];
    optional bool visible = 24;
    reserved 25; // configuration_container
    optional IdentifierProto identifier = 26 [deprecated=true];
    optional string state = 27 [(.android.privacy).dest = DEST_EXPLICIT];
    optional bool front_of_task = 28;
    optional int32 proc_id = 29;
    optional bool translucent = 30;
    optional bool pip_auto_enter_enabled = 31;
    optional bool in_size_compat_mode = 32;
    optional float min_aspect_ratio = 33;
    optional bool provides_max_bounds = 34;
}

/* represents WindowToken */
message WindowTokenProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional WindowContainerProto window_container = 1;
    optional int32 hash_code = 2;
    repeated WindowStateProto windows = 3 [deprecated=true];
    optional bool waiting_to_show = 5;
    optional bool paused = 6;
}

/* represents WindowState */
message WindowStateProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional WindowContainerProto window_container = 1;
    optional IdentifierProto identifier = 2 [deprecated=true];
    // Unique identifier of a DisplayContent stack.
    optional int32 display_id = 3;
    // Unique identifier for the task stack.
    optional int32 stack_id = 4;
    optional .android.view.WindowLayoutParamsProto attributes = 5;
    optional .android.graphics.RectProto given_content_insets = 6;
    optional .android.graphics.RectProto frame = 7 [deprecated=true];
    optional .android.graphics.RectProto containing_frame = 8 [deprecated=true];
    optional .android.graphics.RectProto parent_frame = 9 [deprecated=true];
    optional .android.graphics.RectProto content_frame = 10 [deprecated=true];
    optional .android.graphics.RectProto content_insets = 11 [deprecated=true];
    optional .android.graphics.RectProto surface_insets = 12;
    optional WindowStateAnimatorProto animator = 13;
    optional bool animating_exit = 14;
    repeated WindowStateProto child_windows = 15 [deprecated=true];
    optional .android.graphics.RectProto surface_position = 16;
    optional int32 requested_width = 18;
    optional int32 requested_height = 19;
    optional int32 view_visibility = 20 [(.android.typedef) = "android.view.View.Visibility"];
    optional int32 system_ui_visibility = 21 [deprecated=true];
    optional bool has_surface = 22;
    optional bool is_ready_for_display = 23;
    optional .android.graphics.RectProto display_frame = 24 [deprecated=true];
    optional .android.graphics.RectProto overscan_frame = 25 [deprecated=true];
    optional .android.graphics.RectProto visible_frame = 26 [deprecated=true];
    optional .android.graphics.RectProto decor_frame = 27 [deprecated=true];
    optional .android.graphics.RectProto outset_frame = 28 [deprecated=true];
    optional .android.graphics.RectProto overscan_insets = 29 [deprecated=true];
    optional .android.graphics.RectProto visible_insets = 30 [deprecated=true];
    optional .android.graphics.RectProto stable_insets = 31 [deprecated=true];
    optional .android.graphics.RectProto outsets = 32 [deprecated=true];
    optional .android.view.DisplayCutoutProto cutout = 33 [deprecated=true];
    optional bool remove_on_exit = 34;
    optional bool destroying = 35;
    optional bool removed = 36;
    optional bool is_on_screen = 37;
    optional bool is_visible = 38;
    optional bool pending_seamless_rotation = 39;
    optional int64 finished_seamless_rotation_frame = 40;
    optional WindowFramesProto window_frames = 41;
    optional bool force_seamless_rotation = 42;
    optional bool has_compat_scale = 43;
    optional float global_scale = 44;
}

message IdentifierProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional int32 hash_code = 1;
    optional int32 user_id = 2;
    // Either a component name/string (eg: "com.android.settings/.FallbackHome")
    // or a window title ("NavigationBar").
    optional string title = 3 [ (.android.privacy).dest = DEST_EXPLICIT ];
}

/* represents WindowStateAnimator */
message WindowStateAnimatorProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional .android.graphics.RectProto last_clip_rect = 1;
    optional WindowSurfaceControllerProto surface = 2;
    enum DrawState {
        NO_SURFACE = 0;
        DRAW_PENDING = 1;
        COMMIT_DRAW_PENDING = 2;
        READY_TO_SHOW = 3;
        HAS_DRAWN = 4;
    }
    optional DrawState draw_state = 3;
    optional .android.graphics.RectProto system_decor_rect = 4;
}

/* represents WindowSurfaceController */
message WindowSurfaceControllerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional bool shown = 1;
    optional int32 layer = 2;
}

/* represents ScreenRotationAnimation */
message ScreenRotationAnimationProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional bool started = 1;
    optional bool animation_running = 2;
}

/* represents WindowContainer */
message WindowContainerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional ConfigurationContainerProto configuration_container = 1;
    optional int32 orientation = 2 [(.android.typedef) = "android.content.pm.ActivityInfo.ScreenOrientation"];
    optional bool visible = 3;
    optional SurfaceAnimatorProto surface_animator = 4;
    repeated WindowContainerChildProto children = 5;
    optional IdentifierProto identifier = 6;
    optional .android.view.SurfaceControlProto surface_control = 7;
}

/* represents a generic child of a WindowContainer */
message WindowContainerChildProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    /* A window container can have multiple children of different types stored as
     * a WindowContainerChildProto but each instance of WindowContainerChildProto
     * can only contain a single type.
     */
    /* We do not know the derived typ and the class is dumped
     * as a WindowContainer */
    optional WindowContainerProto window_container = 2;
    /* represents a DisplayContent child */
    optional DisplayContentProto display_content = 3;
    /* represents a DisplayArea child */
    optional DisplayAreaProto display_area = 4;
    /* represents a Task child */
    optional TaskProto task = 5;
    /* represents an ActivityRecord child */
    optional ActivityRecordProto activity = 6;
    /* represents a WindowToken child */
    optional WindowTokenProto window_token = 7;
    /* represents a WindowState child */
    optional WindowStateProto window = 8;
    /* represents a WindowState child */
    optional TaskFragmentProto task_fragment = 9;
}

/* represents ConfigurationContainer */
message ConfigurationContainerProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional .android.content.ConfigurationProto override_configuration = 1;
    optional .android.content.ConfigurationProto full_configuration = 2;
    optional .android.content.ConfigurationProto merged_override_configuration = 3;
}

/* represents WindowFrames */
message WindowFramesProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional .android.graphics.RectProto containing_frame = 1;
    optional .android.graphics.RectProto content_frame = 2 [deprecated=true];
    optional .android.graphics.RectProto decor_frame = 3 [deprecated=true];
    optional .android.graphics.RectProto display_frame = 4;
    optional .android.graphics.RectProto frame = 5;
    optional .android.graphics.RectProto outset_frame = 6;
    optional .android.graphics.RectProto overscan_frame = 7 [deprecated=true];
    optional .android.graphics.RectProto parent_frame = 8;
    optional .android.graphics.RectProto visible_frame = 9 [deprecated=true];
    optional .android.view.DisplayCutoutProto cutout = 10 [deprecated=true];
    optional .android.graphics.RectProto content_insets = 11 [deprecated=true];
    optional .android.graphics.RectProto overscan_insets = 12 [deprecated=true];
    optional .android.graphics.RectProto visible_insets = 13 [deprecated=true];
    optional .android.graphics.RectProto stable_insets = 14 [deprecated=true];
    optional .android.graphics.RectProto outsets = 15;
    optional .android.graphics.RectProto compat_frame = 16;
}

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 InsetsSourceProviderProto insets_source_provider = 1;
    optional WindowStateProto ime_target_from_ime = 2;
    optional bool is_ime_layout_drawn = 3;
}