Home | History | Annotate | Download | only in server
      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 
     17 syntax = "proto2";
     18 
     19 import "frameworks/base/core/proto/android/app/statusbarmanager.proto";
     20 import "frameworks/base/core/proto/android/content/activityinfo.proto";
     21 import "frameworks/base/core/proto/android/content/configuration.proto";
     22 import "frameworks/base/core/proto/android/graphics/rect.proto";
     23 import "frameworks/base/core/proto/android/server/appwindowthumbnail.proto";
     24 import "frameworks/base/core/proto/android/server/surfaceanimator.proto";
     25 import "frameworks/base/core/proto/android/view/displaycutout.proto";
     26 import "frameworks/base/core/proto/android/view/displayinfo.proto";
     27 import "frameworks/base/core/proto/android/view/enums.proto";
     28 import "frameworks/base/core/proto/android/view/surface.proto";
     29 import "frameworks/base/core/proto/android/view/windowlayoutparams.proto";
     30 import "frameworks/base/core/proto/android/privacy.proto";
     31 
     32 package com.android.server.wm;
     33 
     34 option java_multiple_files = true;
     35 
     36 message 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 */
     51 message 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 
     60 message 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 
     67 message 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 
     74 message 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 */
     97 message 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 */
    127 message 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 */
    142 message 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 */
    168 message DisplayFramesProto {
    169     option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    170 
    171     optional .android.graphics.RectProto stable_bounds = 1;
    172 }
    173 
    174 /* represents DockedStackDividerController */
    175 message DockedStackDividerControllerProto {
    176     option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    177 
    178     optional bool minimized_dock = 1;
    179 }
    180 
    181 /* represents PinnedStackController */
    182 message 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 */
    190 message 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 */
    209 message 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 */
    224 message 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 */
    254 message 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 */
    266 message 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 
    314 message 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 */
    325 message 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 */
    342 message 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 */
    350 message 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 */
    358 message 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 */
    368 message 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 */
    377 message 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