/*
 * 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 = "proto3";

 package com.android.server.wm;

 option java_package = "com.android.server.wm";
 option java_outer_classname = "WindowManagerProtos";

 message TaskSnapshotProto {
     int32 orientation = 1;
     int32 inset_left = 2;
     int32 inset_top = 3;
     int32 inset_right = 4;
     int32 inset_bottom = 5;
     bool is_real_snapshot = 6;
     int32 windowing_mode = 7;
     int32 system_ui_visibility = 8;
     bool is_translucent = 9;
     string top_activity_component = 10;
     float scale = 11;
 }