Update Drawable API to expose getOpticalBounds method as well as
the Insets class
Updated all Drawable implementations to remove the @hide annotation
Fixes: 78942648
Test: Re-run CtsGraphicsTestCases and updated Drawable CTS tests to
verify getOpticalBounds implementations
Change-Id: Id9b6bbbe15173e310bbf44184b4678fb29ef1cd8
diff --git a/api/current.txt b/api/current.txt
index ac151fa..4424d76 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -966,6 +966,10 @@
field public static final int onClick = 16843375; // 0x101026f
field public static final int oneshot = 16843159; // 0x1010197
field public static final int opacity = 16843550; // 0x101031e
+ field public static final int opticalInsetBottom = 16844170; // 0x101058a
+ field public static final int opticalInsetLeft = 16844167; // 0x1010587
+ field public static final int opticalInsetRight = 16844169; // 0x1010589
+ field public static final int opticalInsetTop = 16844168; // 0x1010588
field public static final int order = 16843242; // 0x10101ea
field public static final int orderInCategory = 16843231; // 0x10101df
field public static final int ordering = 16843490; // 0x10102e2
@@ -13748,6 +13752,16 @@
field public static final int YV12 = 842094169; // 0x32315659
}
+ public class Insets {
+ method public static android.graphics.Insets of(int, int, int, int);
+ method public static android.graphics.Insets of(android.graphics.Rect);
+ field public static final android.graphics.Insets NONE;
+ field public final int bottom;
+ field public final int left;
+ field public final int right;
+ field public final int top;
+ }
+
public class Interpolator {
ctor public Interpolator(int);
ctor public Interpolator(int, int);
@@ -14714,6 +14728,7 @@
method public int getMinimumHeight();
method public int getMinimumWidth();
method public abstract int getOpacity();
+ method public android.graphics.Insets getOpticalInsets();
method public void getOutline(android.graphics.Outline);
method public boolean getPadding(android.graphics.Rect);
method public int[] getState();
diff --git a/config/hiddenapi-light-greylist.txt b/config/hiddenapi-light-greylist.txt
index 3a28bdf..6e72785 100644
--- a/config/hiddenapi-light-greylist.txt
+++ b/config/hiddenapi-light-greylist.txt
@@ -1095,19 +1095,16 @@
Landroid/graphics/drawable/AnimatedStateListDrawable;->mState:Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->callOnFinished(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
Landroid/graphics/drawable/AnimationDrawable;->mCurFrame:I
-Landroid/graphics/drawable/BitmapDrawable;->getOpticalInsets()Landroid/graphics/Insets;
Landroid/graphics/drawable/BitmapDrawable;->getTint()Landroid/content/res/ColorStateList;
Landroid/graphics/drawable/BitmapDrawable;->getTintMode()Landroid/graphics/PorterDuff$Mode;
Landroid/graphics/drawable/BitmapDrawable;->mTargetDensity:I
Landroid/graphics/drawable/BitmapDrawable;->setBitmap(Landroid/graphics/Bitmap;)V
Landroid/graphics/drawable/ColorDrawable$ColorState;->mUseColor:I
-Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets;
Landroid/graphics/drawable/Drawable;->inflateWithAttributes(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/TypedArray;I)V
Landroid/graphics/drawable/Drawable;->mCallback:Ljava/lang/ref/WeakReference;
Landroid/graphics/drawable/Drawable;->parseTintMode(ILandroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuff$Mode;
Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantPadding:Landroid/graphics/Rect;
Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mDrawables:[Landroid/graphics/drawable/Drawable;
-Landroid/graphics/drawable/DrawableContainer;->getOpticalInsets()Landroid/graphics/Insets;
Landroid/graphics/drawable/DrawableContainer;->mDrawableContainerState:Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
Landroid/graphics/drawable/DrawableInflater;->mClassLoader:Ljava/lang/ClassLoader;
Landroid/graphics/drawable/GradientDrawable$GradientState;->mAngle:I
@@ -1129,7 +1126,6 @@
Landroid/graphics/drawable/GradientDrawable$GradientState;->mThickness:I
Landroid/graphics/drawable/GradientDrawable$GradientState;->mThicknessRatio:F
Landroid/graphics/drawable/GradientDrawable$GradientState;->mWidth:I
-Landroid/graphics/drawable/GradientDrawable;->getOpticalInsets()Landroid/graphics/Insets;
Landroid/graphics/drawable/GradientDrawable;->mFillPaint:Landroid/graphics/Paint;
Landroid/graphics/drawable/GradientDrawable;->mGradientState:Landroid/graphics/drawable/GradientDrawable$GradientState;
Landroid/graphics/drawable/GradientDrawable;->mPadding:Landroid/graphics/Rect;
@@ -1170,10 +1166,6 @@
Landroid/graphics/GraphicBuffer;->CREATOR:Landroid/os/Parcelable$Creator;
Landroid/graphics/GraphicBuffer;->mNativeObject:J
Landroid/graphics/ImageDecoder;->postProcessAndRelease(Landroid/graphics/Canvas;)I
-Landroid/graphics/Insets;->bottom:I
-Landroid/graphics/Insets;->left:I
-Landroid/graphics/Insets;->right:I
-Landroid/graphics/Insets;->top:I
Landroid/graphics/LinearGradient;->mColors:[I
Landroid/graphics/Matrix;->native_instance:J
Landroid/graphics/Movie;-><init>(J)V
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index a83878b..3ea95ed 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -5734,17 +5734,13 @@
<!-- When a tint color is set, specifies its Porter-Duff blending mode. The
default value is src_in, which treats the drawable as an alpha mask. -->
<attr name="tintMode" />
- <!-- Left optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Left optical inset. -->
<attr name="opticalInsetLeft" />
- <!-- Top optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Top optical inset. -->
<attr name="opticalInsetTop" />
- <!-- Right optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Right optical inset. -->
<attr name="opticalInsetRight" />
- <!-- Bottom optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Bottom optical inset. -->
<attr name="opticalInsetBottom" />
</declare-styleable>
@@ -6243,17 +6239,13 @@
<!-- The opacity of the whole vector drawable, as a value between 0
(completely transparent) and 1 (completely opaque). -->
<attr name="alpha" />
- <!-- Left optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Left optical inset. -->
<attr name="opticalInsetLeft" format="dimension" />
- <!-- Top optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Top optical inset. -->
<attr name="opticalInsetTop" format="dimension" />
- <!-- Right optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Right optical inset. -->
<attr name="opticalInsetRight" format="dimension" />
- <!-- Bottom optical inset.
- @hide Until optical insets are fully supported. -->
+ <!-- Bottom optical inset. -->
<attr name="opticalInsetBottom" format="dimension" />
</declare-styleable>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 997575f..6189971 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2903,6 +2903,10 @@
<eat-comment />
<public-group type="attr" first-id="0x01010587">
+ <public name="opticalInsetLeft" />
+ <public name="opticalInsetTop" />
+ <public name="opticalInsetRight" />
+ <public name="opticalInsetBottom" />
</public-group>
<public-group type="style" first-id="0x010302e2">
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index de9f3b0..3e60d24 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -3379,4 +3379,9 @@
<java-symbol type="id" name="user_loading" />
<java-symbol type="string" name="battery_saver_description_with_learn_more" />
+
+ <java-symbol type="attr" name="opticalInsetLeft" />
+ <java-symbol type="attr" name="opticalInsetTop" />
+ <java-symbol type="attr" name="opticalInsetRight" />
+ <java-symbol type="attr" name="opticalInsetBottom" />
</resources>
diff --git a/graphics/java/android/graphics/Insets.java b/graphics/java/android/graphics/Insets.java
index 156f990..5a78530 100644
--- a/graphics/java/android/graphics/Insets.java
+++ b/graphics/java/android/graphics/Insets.java
@@ -23,7 +23,6 @@
* <p>
* Insets are immutable so may be treated as values.
*
- * @hide
*/
public class Insets {
public static final Insets NONE = new Insets(0, 0, 0, 0);
diff --git a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java
index 54358e3..34eac56 100644
--- a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java
@@ -57,6 +57,8 @@
import com.android.internal.R;
import com.android.internal.util.VirtualRefBasePtr;
+import dalvik.annotation.optimization.FastNative;
+
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -64,7 +66,6 @@
import java.lang.ref.WeakReference;
import java.util.ArrayList;
-import dalvik.annotation.optimization.FastNative;
/**
* This class animates properties of a {@link android.graphics.drawable.VectorDrawable} with
@@ -515,7 +516,6 @@
mAnimatedVectorState.mVectorDrawable.getOutline(outline);
}
- /** @hide */
@Override
public Insets getOpticalInsets() {
return mAnimatedVectorState.mVectorDrawable.getOpticalInsets();
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index 44b783b..99bed60 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -23,7 +23,6 @@
import android.content.res.Resources.Theme;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
@@ -627,9 +626,6 @@
mDstRectAndInsetsDirty = false;
}
- /**
- * @hide
- */
@Override
public Insets getOpticalInsets() {
updateDstRectAndInsetsIfDirty();
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index b77d74a..986d0c1 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -1088,7 +1088,6 @@
* Return in insets the layout insets suggested by this Drawable for use with alignment
* operations during layout.
*
- * @hide
*/
public @NonNull Insets getOpticalInsets() {
return Insets.NONE;
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index aa4cd9c..e7b383a 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -120,9 +120,6 @@
return result;
}
- /**
- * @hide
- */
@Override
public Insets getOpticalInsets() {
if (mCurrDrawable != null) {
diff --git a/graphics/java/android/graphics/drawable/DrawableWrapper.java b/graphics/java/android/graphics/drawable/DrawableWrapper.java
index 4ce3b10..a907ca5 100644
--- a/graphics/java/android/graphics/drawable/DrawableWrapper.java
+++ b/graphics/java/android/graphics/drawable/DrawableWrapper.java
@@ -251,7 +251,6 @@
return mDrawable != null && mDrawable.getPadding(padding);
}
- /** @hide */
@Override
public Insets getOpticalInsets() {
return mDrawable != null ? mDrawable.getOpticalInsets() : Insets.NONE;
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index a448379..5629389 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -1698,7 +1698,6 @@
return mGradientState.mHeight;
}
- /** @hide */
@Override
public Insets getOpticalInsets() {
return mGradientState.mOpticalInsets;
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index 443aa49..ade4294 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -16,11 +16,6 @@
package android.graphics.drawable;
-import com.android.internal.R;
-
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.res.Resources;
@@ -35,6 +30,11 @@
import android.util.DisplayMetrics;
import android.util.TypedValue;
+import com.android.internal.R;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
import java.io.IOException;
/**
@@ -240,7 +240,6 @@
| mTmpInsetRect.top | mTmpInsetRect.bottom) != 0;
}
- /** @hide */
@Override
public Insets getOpticalInsets() {
final Insets contentInsets = super.getOpticalInsets();
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index 5ff49ab..7f23cea 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -299,9 +299,6 @@
super.getOutline(outline);
}
- /**
- * @hide
- */
@Override
public Insets getOpticalInsets() {
final Insets opticalInsets = mOpticalInsets;
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
index c71585f..b5bd97f 100644
--- a/graphics/java/android/graphics/drawable/VectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -46,6 +46,9 @@
import com.android.internal.R;
import com.android.internal.util.VirtualRefBasePtr;
+import dalvik.annotation.optimization.FastNative;
+import dalvik.system.VMRuntime;
+
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -56,9 +59,6 @@
import java.util.HashMap;
import java.util.Stack;
-import dalvik.annotation.optimization.FastNative;
-import dalvik.system.VMRuntime;
-
/**
* This lets you create a drawable based on an XML vector graphic.
* <p/>
@@ -543,7 +543,6 @@
return mDpiScaledHeight;
}
- /** @hide */
@Override
public Insets getOpticalInsets() {
if (mDpiScaledDirty) {