From 422afa9153661ded052fe9eb6e5cf9b860dda152 Mon Sep 17 00:00:00 2001 From: Ioana Stefan Date: Wed, 25 Nov 2020 17:07:07 +0000 Subject: [PATCH] Add IntDef annotation to gravity field This change adds IntDef annotation to the gravity field in LayoutParams. Bug: 173682107 Test: run `mp :framework-minus-apex-intdefs` and see that the Gravity mapping was generated Change-Id: I030241f72b07aeea0c625e5b557dfcc800f537d9 --- core/java/android/view/Gravity.java | 31 +++++++++++++++++++ core/java/android/view/WindowManager.java | 2 ++ .../android/view/windowlayoutparams.proto | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/Gravity.java b/core/java/android/view/Gravity.java index defa58e10e6ef..c8bfd36b2b484 100644 --- a/core/java/android/view/Gravity.java +++ b/core/java/android/view/Gravity.java @@ -15,8 +15,13 @@ */ package android.view; + +import android.annotation.IntDef; import android.graphics.Rect; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + /** * Standard constants and tools for placing an object within a potentially * larger container. @@ -122,6 +127,32 @@ public class Gravity */ public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = START | END; + + /** + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef(flag = true, value = { + Gravity.FILL, + Gravity.FILL_HORIZONTAL, + Gravity.FILL_VERTICAL, + Gravity.START, + Gravity.END, + Gravity.LEFT, + Gravity.RIGHT, + Gravity.TOP, + Gravity.BOTTOM, + Gravity.CENTER, + Gravity.CENTER_HORIZONTAL, + Gravity.CENTER_VERTICAL, + Gravity.DISPLAY_CLIP_HORIZONTAL, + Gravity.DISPLAY_CLIP_VERTICAL, + Gravity.CLIP_HORIZONTAL, + Gravity.CLIP_VERTICAL, + Gravity.NO_GRAVITY + }) + public @interface GravityFlags {} + /** * Apply a gravity constant to an object. This supposes that the layout direction is LTR. * diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index d0a7c26741c7f..4ce52a36e382c 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -104,6 +104,7 @@ import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import android.util.proto.ProtoOutputStream; +import android.view.Gravity.GravityFlags; import android.view.View.OnApplyWindowInsetsListener; import android.view.WindowInsets.Side; import android.view.WindowInsets.Side.InsetsSide; @@ -2586,6 +2587,7 @@ public interface WindowManager extends ViewManager { * * @see Gravity */ + @GravityFlags public int gravity; /** diff --git a/core/proto/android/view/windowlayoutparams.proto b/core/proto/android/view/windowlayoutparams.proto index 4bb56f8acfa4d..062485d304c34 100644 --- a/core/proto/android/view/windowlayoutparams.proto +++ b/core/proto/android/view/windowlayoutparams.proto @@ -35,7 +35,7 @@ message WindowLayoutParamsProto { optional int32 height = 5; optional float horizontal_margin = 6; optional float vertical_margin = 7; - optional int32 gravity = 8; + optional int32 gravity = 8 [(.android.typedef) = "android.view.Gravity.GravityFlags"]; optional int32 soft_input_mode = 9 [(.android.typedef) = "android.view.WindowManager.LayoutParams.SoftInputModeFlags"]; optional .android.graphics.PixelFormatProto.Format format = 10; optional int32 window_animations = 11;