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

Commit 58945975 authored by Chris Craik's avatar Chris Craik
Browse files

Outline support in DrawableContainer and LayerDrawable

bug:14445484
Change-Id: I26a45b0115b976d0dbcc351a208dc0956bc52e96
parent 3dab92c5
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -16,12 +16,14 @@


package android.graphics.drawable;
package android.graphics.drawable;


import android.annotation.NonNull;
import android.content.res.ColorStateList;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.Resources.Theme;
import android.graphics.Canvas;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.ColorFilter;
import android.graphics.Insets;
import android.graphics.Insets;
import android.graphics.Outline;
import android.graphics.PixelFormat;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.Rect;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuff.Mode;
@@ -122,6 +124,14 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
        return Insets.NONE;
        return Insets.NONE;
    }
    }


    @Override
    public boolean getOutline(@NonNull Outline outline) {
        if (mCurrDrawable != null) {
            return mCurrDrawable.getOutline(outline);
        }
        return false;
    }

    @Override
    @Override
    public void setAlpha(int alpha) {
    public void setAlpha(int alpha) {
        if (!mHasAlpha || mAlpha != alpha) {
        if (!mHasAlpha || mAlpha != alpha) {
+12 −0
Original line number Original line Diff line number Diff line
@@ -16,12 +16,14 @@


package android.graphics.drawable;
package android.graphics.drawable;


import android.annotation.NonNull;
import android.content.res.ColorStateList;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.Resources.Theme;
import android.content.res.TypedArray;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.ColorFilter;
import android.graphics.Outline;
import android.graphics.PixelFormat;
import android.graphics.PixelFormat;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuff.Mode;
import android.graphics.Rect;
import android.graphics.Rect;
@@ -563,6 +565,16 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
        }
        }
    }
    }


    /**
     * Builds an Outline from the first child Drawable, if present.
     */
    @Override
    public boolean getOutline(@NonNull Outline outline) {
        if (mLayerState.mNum < 1) return false;
        final Drawable firstChild = mLayerState.mChildren[0].mDrawable;
        return firstChild.getOutline(outline);
    }

    @Override
    @Override
    public void setHotspot(float x, float y) {
    public void setHotspot(float x, float y) {
        final ChildDrawable[] array = mLayerState.mChildren;
        final ChildDrawable[] array = mLayerState.mChildren;