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

Commit 921ec446 authored by Alan Viverette's avatar Alan Viverette
Browse files

Fix NinePatchDrawable handling of density changes

Scaling is now manually applied when the canvas density is not set.

Removes set/getNinePatch accessors that were added in N, since these
are not used and setting the nine patch directly will break padding.
Also removes local NinePatch, which was not necessary.

Bug: 27038114
Change-Id: Ie8b2e485b54d1ed1521081b329a09915fd0a95c1
parent c7bf3f7c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -11947,6 +11947,8 @@ package android.graphics {
    ctor public Outline(android.graphics.Outline);
    method public boolean canClip();
    method public float getAlpha();
    method public float getRadius();
    method public boolean getRect(android.graphics.Rect);
    method public boolean isEmpty();
    method public void offset(int, int);
    method public void set(android.graphics.Outline);
@@ -12974,12 +12976,10 @@ package android.graphics.drawable {
    ctor public deprecated NinePatchDrawable(android.graphics.NinePatch);
    ctor public NinePatchDrawable(android.content.res.Resources, android.graphics.NinePatch);
    method public void draw(android.graphics.Canvas);
    method public android.graphics.NinePatch getNinePatch();
    method public int getOpacity();
    method public android.graphics.Paint getPaint();
    method public void setAlpha(int);
    method public void setColorFilter(android.graphics.ColorFilter);
    method public void setNinePatch(android.graphics.NinePatch);
    method public void setTargetDensity(android.graphics.Canvas);
    method public void setTargetDensity(android.util.DisplayMetrics);
    method public void setTargetDensity(int);
+2 −2
Original line number Diff line number Diff line
@@ -12357,6 +12357,8 @@ package android.graphics {
    ctor public Outline(android.graphics.Outline);
    method public boolean canClip();
    method public float getAlpha();
    method public float getRadius();
    method public boolean getRect(android.graphics.Rect);
    method public boolean isEmpty();
    method public void offset(int, int);
    method public void set(android.graphics.Outline);
@@ -13384,12 +13386,10 @@ package android.graphics.drawable {
    ctor public deprecated NinePatchDrawable(android.graphics.NinePatch);
    ctor public NinePatchDrawable(android.content.res.Resources, android.graphics.NinePatch);
    method public void draw(android.graphics.Canvas);
    method public android.graphics.NinePatch getNinePatch();
    method public int getOpacity();
    method public android.graphics.Paint getPaint();
    method public void setAlpha(int);
    method public void setColorFilter(android.graphics.ColorFilter);
    method public void setNinePatch(android.graphics.NinePatch);
    method public void setTargetDensity(android.graphics.Canvas);
    method public void setTargetDensity(android.util.DisplayMetrics);
    method public void setTargetDensity(int);
+2 −2
Original line number Diff line number Diff line
@@ -11955,6 +11955,8 @@ package android.graphics {
    ctor public Outline(android.graphics.Outline);
    method public boolean canClip();
    method public float getAlpha();
    method public float getRadius();
    method public boolean getRect(android.graphics.Rect);
    method public boolean isEmpty();
    method public void offset(int, int);
    method public void set(android.graphics.Outline);
@@ -12982,12 +12984,10 @@ package android.graphics.drawable {
    ctor public deprecated NinePatchDrawable(android.graphics.NinePatch);
    ctor public NinePatchDrawable(android.content.res.Resources, android.graphics.NinePatch);
    method public void draw(android.graphics.Canvas);
    method public android.graphics.NinePatch getNinePatch();
    method public int getOpacity();
    method public android.graphics.Paint getPaint();
    method public void setAlpha(int);
    method public void setColorFilter(android.graphics.ColorFilter);
    method public void setNinePatch(android.graphics.NinePatch);
    method public void setTargetDensity(android.graphics.Canvas);
    method public void setTargetDensity(android.util.DisplayMetrics);
    method public void setTargetDensity(int);
+29 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.graphics;

import android.annotation.FloatRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.drawable.Drawable;

/**
@@ -175,6 +176,34 @@ public final class Outline {
        setRoundRect(rect.left, rect.top, rect.right, rect.bottom, radius);
    }

    /**
     * Populates {@code outBounds} with the outline bounds, if set, and returns
     * {@code true}. If no outline bounds are set, or if a path has been set
     * via {@link #setConvexPath(Path)}, returns {@code false}.
     *
     * @param outRect the rect to populate with the outline bounds, if set
     * @return {@code true} if {@code outBounds} was populated with outline
     *         bounds, or {@code false} if no outline bounds are set
     */
    public boolean getRect(@NonNull Rect outRect) {
        if (mRect == null) {
            return false;
        }
        outRect.set(mRect);
        return true;
    }

    /**
     * Returns the rounded rect radius, if set, or {@code -1} if a path has
     * been set via {@link #setConvexPath(Path)}. A return value of {@code 0}
     * indicates a non-rounded rect.
     *
     * @return the rounded rect radius or {@code -1}
     */
    public float getRadius() {
        return mRadius;
    }

    /**
     * Sets the outline to the oval defined by input rect.
     */
+186 −179

File changed.

Preview size limit exceeded, changes collapsed.