Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7b59447 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add WindowState and LayoutParams proto"

parents 1abf6ff5 1d0fa073
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.view;

import static android.view.DisplayCutoutProto.BOUNDS;
import static android.view.DisplayCutoutProto.INSETS;
import static android.view.Surface.ROTATION_0;
import static android.view.Surface.ROTATION_180;
import static android.view.Surface.ROTATION_270;
@@ -28,6 +30,7 @@ import android.graphics.RectF;
import android.graphics.Region;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.proto.ProtoOutputStream;

import com.android.internal.annotations.VisibleForTesting;

@@ -154,6 +157,16 @@ public final class DisplayCutout {
                + "}";
    }

    /**
     * @hide
     */
    public void writeToProto(ProtoOutputStream proto, long fieldId) {
        final long token = proto.start(fieldId);
        mSafeInsets.writeToProto(proto, INSETS);
        mBounds.getBounds().writeToProto(proto, BOUNDS);
        proto.end(token);
    }

    /**
     * Insets the reference frame of the cutout in the given directions.
     *
+53 −1
Original line number Diff line number Diff line
@@ -17,6 +17,32 @@
package android.view;

import static android.content.pm.ActivityInfo.COLOR_MODE_DEFAULT;
import static android.view.WindowLayoutParamsProto.ALPHA;
import static android.view.WindowLayoutParamsProto.BUTTON_BRIGHTNESS;
import static android.view.WindowLayoutParamsProto.COLOR_MODE;
import static android.view.WindowLayoutParamsProto.FLAGS;
import static android.view.WindowLayoutParamsProto.FLAGS_EXTRA;
import static android.view.WindowLayoutParamsProto.FORMAT;
import static android.view.WindowLayoutParamsProto.GRAVITY;
import static android.view.WindowLayoutParamsProto.HAS_SYSTEM_UI_LISTENERS;
import static android.view.WindowLayoutParamsProto.HEIGHT;
import static android.view.WindowLayoutParamsProto.HORIZONTAL_MARGIN;
import static android.view.WindowLayoutParamsProto.INPUT_FEATURE_FLAGS;
import static android.view.WindowLayoutParamsProto.NEEDS_MENU_KEY;
import static android.view.WindowLayoutParamsProto.PREFERRED_REFRESH_RATE;
import static android.view.WindowLayoutParamsProto.PRIVATE_FLAGS;
import static android.view.WindowLayoutParamsProto.ROTATION_ANIMATION;
import static android.view.WindowLayoutParamsProto.SCREEN_BRIGHTNESS;
import static android.view.WindowLayoutParamsProto.SOFT_INPUT_MODE;
import static android.view.WindowLayoutParamsProto.SUBTREE_SYSTEM_UI_VISIBILITY_FLAGS;
import static android.view.WindowLayoutParamsProto.SYSTEM_UI_VISIBILITY_FLAGS;
import static android.view.WindowLayoutParamsProto.TYPE;
import static android.view.WindowLayoutParamsProto.USER_ACTIVITY_TIMEOUT;
import static android.view.WindowLayoutParamsProto.VERTICAL_MARGIN;
import static android.view.WindowLayoutParamsProto.WIDTH;
import static android.view.WindowLayoutParamsProto.WINDOW_ANIMATIONS;
import static android.view.WindowLayoutParamsProto.X;
import static android.view.WindowLayoutParamsProto.Y;

import android.Manifest.permission;
import android.annotation.IntDef;
@@ -2722,7 +2748,33 @@ public interface WindowManager extends ViewManager {
         */
        public void writeToProto(ProtoOutputStream proto, long fieldId) {
            final long token = proto.start(fieldId);
            proto.write(WindowLayoutParamsProto.TYPE, type);
            proto.write(TYPE, type);
            proto.write(X, x);
            proto.write(Y, y);
            proto.write(WIDTH, width);
            proto.write(HEIGHT, height);
            proto.write(HORIZONTAL_MARGIN, horizontalMargin);
            proto.write(VERTICAL_MARGIN, verticalMargin);
            proto.write(GRAVITY, gravity);
            proto.write(SOFT_INPUT_MODE, softInputMode);
            proto.write(FORMAT, format);
            proto.write(WINDOW_ANIMATIONS, windowAnimations);
            proto.write(ALPHA, alpha);
            proto.write(SCREEN_BRIGHTNESS, screenBrightness);
            proto.write(BUTTON_BRIGHTNESS, buttonBrightness);
            proto.write(ROTATION_ANIMATION, rotationAnimation);
            proto.write(PREFERRED_REFRESH_RATE, preferredRefreshRate);
            proto.write(WindowLayoutParamsProto.PREFERRED_DISPLAY_MODE_ID, preferredDisplayModeId);
            proto.write(HAS_SYSTEM_UI_LISTENERS, hasSystemUiListeners);
            proto.write(INPUT_FEATURE_FLAGS, inputFeatures);
            proto.write(USER_ACTIVITY_TIMEOUT, userActivityTimeout);
            proto.write(NEEDS_MENU_KEY, needsMenuKey);
            proto.write(COLOR_MODE, mColorMode);
            proto.write(FLAGS, flags);
            proto.write(FLAGS_EXTRA, flags2);
            proto.write(PRIVATE_FLAGS, privateFlags);
            proto.write(SYSTEM_UI_VISIBILITY_FLAGS, systemUiVisibility);
            proto.write(SUBTREE_SYSTEM_UI_VISIBILITY_FLAGS, subtreeSystemUiVisibility);
            proto.end(token);
        }

+34 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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";
package android.graphics;
option java_multiple_files = true;

message PixelFormatProto {
  enum Format {
      UNKNOWN      = 0;
      TRANSLUCENT  = -3;
      TRANSPARENT  = -2;
      OPAQUE       = -1;
      RGBA_8888    = 1;
      RGBX_8888    = 2;
      RGB_888      = 3;
      RGB_565      = 4;
      RGBA_F16     = 0x16;
      RGBA_1010102 = 0x2B;
  }
}
+31 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ syntax = "proto2";

import "frameworks/base/core/proto/android/content/configuration.proto";
import "frameworks/base/core/proto/android/graphics/rect.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/windowlayoutparams.proto";

@@ -172,6 +173,27 @@ message WindowStateProto {
  repeated WindowStateProto child_windows = 15;
  optional .android.graphics.RectProto surface_position = 16;
  optional .android.graphics.RectProto shown_position = 17;
  optional int32 requested_width = 18;
  optional int32 requested_height = 19;
  optional int32 view_visibility = 20;
  optional int32 system_ui_visibility = 21;
  optional bool has_surface = 22;
  optional bool is_ready_for_display = 23;
  optional .android.graphics.RectProto display_frame = 24;
  optional .android.graphics.RectProto overscan_frame = 25;
  optional .android.graphics.RectProto visible_frame = 26;
  optional .android.graphics.RectProto decor_frame = 27;
  optional .android.graphics.RectProto outset_frame = 28;
  optional .android.graphics.RectProto overscan_insets = 29;
  optional .android.graphics.RectProto visible_insets = 30;
  optional .android.graphics.RectProto stable_insets = 31;
  optional .android.graphics.RectProto outsets = 32;
  optional .android.view.DisplayCutoutProto cutout = 33;
  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;
}

message IdentifierProto {
@@ -184,6 +206,15 @@ message IdentifierProto {
message WindowStateAnimatorProto {
  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 */
+12 −0
Original line number Diff line number Diff line
@@ -38,4 +38,16 @@ message DisplayProto {
        // The display is on and optimized for VR mode.
        DISPLAY_STATE_VR = 5;
    }
    enum ColorMode {
        COLOR_MODE_INVALID = -1;
        COLOR_MODE_BT601_625 = 1;
        COLOR_MODE_BT601_625_UNADJUSTED = 2;
        COLOR_MODE_BT601_525 = 3;
        COLOR_MODE_BT601_525_UNADJUSTED = 4;
        COLOR_MODE_BT709 = 5;
        COLOR_MODE_DCI_P3 = 6;
        COLOR_MODE_SRGB = 7;
        COLOR_MODE_ADOBE_RGB = 8;
        COLOR_MODE_DISPLAY_P3 = 9;
    }
}
Loading