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/appwindowthumbnail.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/enums.proto";
28import "frameworks/base/core/proto/android/view/surface.proto";
29import "frameworks/base/core/proto/android/view/windowlayoutparams.proto";
30import "frameworks/base/core/proto/android/privacy.proto";
31
32package com.android.server.wm;
33
34option java_multiple_files = true;
35
36message WindowManagerServiceDumpProto {
37    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
38
39    optional WindowManagerPolicyProto policy = 1;
40    /* window hierarchy root */
41    optional RootWindowContainerProto root_window_container = 2;
42    optional IdentifierProto focused_window = 3;
43    optional string focused_app = 4;
44    optional IdentifierProto input_method_window = 5;
45    optional bool display_frozen = 6;
46    optional int32 rotation = 7;
47    optional int32 last_orientation = 8;
48}
49
50/* represents RootWindowContainer object */
51message RootWindowContainerProto {
52    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
53
54    optional WindowContainerProto window_container = 1;
55    repeated DisplayContentProto displays = 2;
56    /* window references in top down z order */
57    repeated IdentifierProto windows = 3;
58}
59
60message BarControllerProto {
61    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
62
63    optional .android.app.StatusBarManagerProto.WindowState state = 1;
64    optional .android.app.StatusBarManagerProto.TransientWindowState transient_state = 2;
65}
66
67message WindowOrientationListenerProto {
68    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
69
70    optional bool enabled = 1;
71    optional .android.view.SurfaceProto.Rotation rotation = 2;
72}
73
74message KeyguardServiceDelegateProto {
75    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
76
77    optional bool showing = 1;
78    optional bool occluded = 2;
79    optional bool secure = 3;
80    enum ScreenState {
81        SCREEN_STATE_OFF = 0;
82        SCREEN_STATE_TURNING_ON = 1;
83        SCREEN_STATE_ON = 2;
84        SCREEN_STATE_TURNING_OFF = 3;
85    }
86    optional ScreenState screen_state = 4;
87    enum InteractiveState {
88        INTERACTIVE_STATE_SLEEP = 0;
89        INTERACTIVE_STATE_WAKING = 1;
90        INTERACTIVE_STATE_AWAKE = 2;
91        INTERACTIVE_STATE_GOING_TO_SLEEP = 3;
92    }
93    optional InteractiveState interactive_state = 5;
94}
95
96/* represents PhoneWindowManager */
97message WindowManagerPolicyProto {
98    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
99
100    optional int32 last_system_ui_flags = 1 [deprecated=true];
101    enum UserRotationMode {
102        USER_ROTATION_FREE = 0;
103        USER_ROTATION_LOCKED = 1;
104    }
105    optional UserRotationMode rotation_mode = 2;
106    optional .android.view.SurfaceProto.Rotation rotation = 3;
107    optional .android.content.ActivityInfoProto.ScreenOrientation orientation = 4;
108    optional bool screen_on_fully = 5;
109    optional bool keyguard_draw_complete = 6;
110    optional bool window_manager_draw_complete = 7;
111    optional string focused_app_token = 8 [deprecated=true];
112    optional IdentifierProto focused_window = 9 [deprecated=true];
113    optional IdentifierProto top_fullscreen_opaque_window = 10 [deprecated=true];
114    optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11 [deprecated=true];
115    optional bool keyguard_occluded = 12;
116    optional bool keyguard_occluded_changed = 13;
117    optional bool keyguard_occluded_pending = 14;
118    optional bool force_status_bar = 15 [deprecated=true];
119    optional bool force_status_bar_from_keyguard = 16 [deprecated=true];
120    optional BarControllerProto status_bar = 17 [deprecated=true];
121    optional BarControllerProto navigation_bar = 18 [deprecated=true];
122    optional WindowOrientationListenerProto orientation_listener = 19 [deprecated=true];
123    optional KeyguardServiceDelegateProto keyguard_delegate = 20;
124}
125
126/* represents AppTransition */
127message AppTransitionProto {
128    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
129
130    enum AppState {
131        APP_STATE_IDLE = 0;
132        APP_STATE_READY = 1;
133        APP_STATE_RUNNING = 2;
134        APP_STATE_TIMEOUT = 3;
135    }
136    optional AppState app_transition_state = 1;
137
138    optional .android.view.TransitionTypeEnum last_used_app_transition = 2;
139}
140
141/* represents DisplayContent object */
142message DisplayContentProto {
143    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
144
145    optional WindowContainerProto window_container = 1;
146    optional int32 id = 2;
147    repeated StackProto stacks = 3;
148    optional DockedStackDividerControllerProto docked_stack_divider_controller = 4;
149    optional PinnedStackControllerProto pinned_stack_controller = 5;
150    /* non app windows */
151    repeated WindowTokenProto above_app_windows = 6;
152    repeated WindowTokenProto below_app_windows = 7;
153    repeated WindowTokenProto ime_windows = 8;
154    optional int32 dpi = 9;
155    optional .android.view.DisplayInfoProto display_info = 10;
156    optional int32 rotation = 11;
157    optional ScreenRotationAnimationProto screen_rotation_animation = 12;
158    optional DisplayFramesProto display_frames = 13;
159    optional int32 surface_size = 14 [deprecated=true];
160    optional string focused_app = 15;
161    optional AppTransitionProto app_transition = 16;
162    repeated IdentifierProto opening_apps = 17;
163    repeated IdentifierProto closing_apps = 18;
164    repeated IdentifierProto changing_apps = 19;
165}
166
167/* represents DisplayFrames */
168message DisplayFramesProto {
169    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
170
171    optional .android.graphics.RectProto stable_bounds = 1;
172}
173
174/* represents DockedStackDividerController */
175message DockedStackDividerControllerProto {
176    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
177
178    optional bool minimized_dock = 1;
179}
180
181/* represents PinnedStackController */
182message PinnedStackControllerProto {
183    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
184
185    optional .android.graphics.RectProto default_bounds = 1;
186    optional .android.graphics.RectProto movement_bounds = 2;
187}
188
189/* represents TaskStack */
190message StackProto {
191    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
192
193    optional WindowContainerProto window_container = 1;
194    optional int32 id = 2;
195    repeated TaskProto tasks = 3;
196    optional bool fills_parent = 4;
197    optional .android.graphics.RectProto bounds = 5;
198    optional bool animation_background_surface_is_dimming = 6;
199    optional bool defer_removal = 7;
200    optional float minimize_amount = 8;
201    optional bool adjusted_for_ime = 9;
202    optional float adjust_ime_amount = 10;
203    optional float adjust_divider_amount = 11;
204    optional .android.graphics.RectProto adjusted_bounds = 12;
205    optional bool animating_bounds = 13;
206}
207
208/* represents Task */
209message TaskProto {
210    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
211
212    optional WindowContainerProto window_container = 1;
213    optional int32 id = 2;
214    repeated AppWindowTokenProto app_window_tokens = 3;
215    optional bool fills_parent = 4;
216    optional .android.graphics.RectProto bounds = 5;
217    optional .android.graphics.RectProto displayed_bounds = 6;
218    optional bool defer_removal = 7;
219    optional int32 surface_width = 8;
220    optional int32 surface_height = 9;
221}
222
223/* represents AppWindowToken */
224message AppWindowTokenProto {
225    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
226
227    /* obtained from ActivityRecord */
228    optional string name = 1 [ (.android.privacy).dest = DEST_EXPLICIT ];
229    optional WindowTokenProto window_token = 2;
230    optional bool last_surface_showing = 3;
231    optional bool is_waiting_for_transition_start = 4;
232    optional bool is_really_animating = 5;
233    optional AppWindowThumbnailProto thumbnail = 6;
234    optional bool fills_parent = 7;
235    optional bool app_stopped = 8;
236    optional bool hidden_requested = 9;
237    optional bool client_hidden = 10;
238    optional bool defer_hiding_client = 11;
239    optional bool reported_drawn = 12;
240    optional bool reported_visible = 13;
241    optional int32 num_interesting_windows = 14;
242    optional int32 num_drawn_windows = 15;
243    optional bool all_drawn = 16;
244    optional bool last_all_drawn = 17;
245    optional bool removed = 18;
246    optional IdentifierProto starting_window = 19;
247    optional bool starting_displayed = 20;
248    optional bool starting_moved = 21;
249    optional bool hidden_set_from_transferred_starting_window = 22;
250    repeated .android.graphics.RectProto frozen_bounds = 23;
251}
252
253/* represents WindowToken */
254message WindowTokenProto {
255    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
256
257    optional WindowContainerProto window_container = 1;
258    optional int32 hash_code = 2;
259    repeated WindowStateProto windows = 3;
260    optional bool hidden = 4;
261    optional bool waiting_to_show = 5;
262    optional bool paused = 6;
263}
264
265/* represents WindowState */
266message WindowStateProto {
267    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
268
269    optional WindowContainerProto window_container = 1;
270    optional IdentifierProto identifier = 2;
271    // Unique identifier of a DisplayContent stack.
272    optional int32 display_id = 3;
273    // Unique identifier for the task stack.
274    optional int32 stack_id = 4;
275    optional .android.view.WindowLayoutParamsProto attributes = 5;
276    optional .android.graphics.RectProto given_content_insets = 6;
277    optional .android.graphics.RectProto frame = 7 [deprecated=true];
278    optional .android.graphics.RectProto containing_frame = 8 [deprecated=true];
279    optional .android.graphics.RectProto parent_frame = 9 [deprecated=true];
280    optional .android.graphics.RectProto content_frame = 10 [deprecated=true];
281    optional .android.graphics.RectProto content_insets = 11 [deprecated=true];
282    optional .android.graphics.RectProto surface_insets = 12;
283    optional WindowStateAnimatorProto animator = 13;
284    optional bool animating_exit = 14;
285    repeated WindowStateProto child_windows = 15;
286    optional .android.graphics.RectProto surface_position = 16;
287    optional int32 requested_width = 18;
288    optional int32 requested_height = 19;
289    optional int32 view_visibility = 20;
290    optional int32 system_ui_visibility = 21;
291    optional bool has_surface = 22;
292    optional bool is_ready_for_display = 23;
293    optional .android.graphics.RectProto display_frame = 24 [deprecated=true];
294    optional .android.graphics.RectProto overscan_frame = 25 [deprecated=true];
295    optional .android.graphics.RectProto visible_frame = 26 [deprecated=true];
296    optional .android.graphics.RectProto decor_frame = 27 [deprecated=true];
297    optional .android.graphics.RectProto outset_frame = 28 [deprecated=true];
298    optional .android.graphics.RectProto overscan_insets = 29 [deprecated=true];
299    optional .android.graphics.RectProto visible_insets = 30 [deprecated=true];
300    optional .android.graphics.RectProto stable_insets = 31 [deprecated=true];
301    optional .android.graphics.RectProto outsets = 32 [deprecated=true];
302    optional .android.view.DisplayCutoutProto cutout = 33 [deprecated=true];
303    optional bool remove_on_exit = 34;
304    optional bool destroying = 35;
305    optional bool removed = 36;
306    optional bool is_on_screen = 37;
307    optional bool is_visible = 38;
308    optional bool pending_seamless_rotation = 39;
309    optional int64 finished_seamless_rotation_frame = 40;
310    optional WindowFramesProto window_frames = 41;
311    optional bool force_seamless_rotation = 42;
312}
313
314message IdentifierProto {
315    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
316
317    optional int32 hash_code = 1;
318    optional int32 user_id = 2;
319    // Either a component name/string (eg: "com.android.settings/.FallbackHome")
320    // or a window title ("NavigationBar").
321    optional string title = 3 [ (.android.privacy).dest = DEST_EXPLICIT ];
322}
323
324/* represents WindowStateAnimator */
325message WindowStateAnimatorProto {
326    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
327
328    optional .android.graphics.RectProto last_clip_rect = 1;
329    optional WindowSurfaceControllerProto surface = 2;
330    enum DrawState {
331        NO_SURFACE = 0;
332        DRAW_PENDING = 1;
333        COMMIT_DRAW_PENDING = 2;
334        READY_TO_SHOW = 3;
335        HAS_DRAWN = 4;
336    }
337    optional DrawState draw_state = 3;
338    optional .android.graphics.RectProto system_decor_rect = 4;
339}
340
341/* represents WindowSurfaceController */
342message WindowSurfaceControllerProto {
343    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
344
345    optional bool shown = 1;
346    optional int32 layer = 2;
347}
348
349/* represents ScreenRotationAnimation */
350message ScreenRotationAnimationProto {
351    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
352
353    optional bool started = 1;
354    optional bool animation_running = 2;
355}
356
357/* represents WindowContainer */
358message WindowContainerProto {
359    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
360
361    optional ConfigurationContainerProto configuration_container = 1;
362    optional int32 orientation = 2;
363    optional bool visible = 3;
364    optional SurfaceAnimatorProto surface_animator = 4;
365}
366
367/* represents ConfigurationContainer */
368message ConfigurationContainerProto {
369    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
370
371    optional .android.content.ConfigurationProto override_configuration = 1;
372    optional .android.content.ConfigurationProto full_configuration = 2;
373    optional .android.content.ConfigurationProto merged_override_configuration = 3;
374}
375
376/* represents WindowFrames */
377message WindowFramesProto {
378    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
379
380    optional .android.graphics.RectProto containing_frame = 1;
381    optional .android.graphics.RectProto content_frame = 2;
382    optional .android.graphics.RectProto decor_frame = 3;
383    optional .android.graphics.RectProto display_frame = 4;
384    optional .android.graphics.RectProto frame = 5;
385    optional .android.graphics.RectProto outset_frame = 6;
386    optional .android.graphics.RectProto overscan_frame = 7;
387    optional .android.graphics.RectProto parent_frame = 8;
388    optional .android.graphics.RectProto visible_frame = 9;
389    optional .android.view.DisplayCutoutProto cutout = 10;
390    optional .android.graphics.RectProto content_insets = 11;
391    optional .android.graphics.RectProto overscan_insets = 12;
392    optional .android.graphics.RectProto visible_insets = 13;
393    optional .android.graphics.RectProto stable_insets = 14;
394    optional .android.graphics.RectProto outsets = 15;
395}
396