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

Commit accac9b7 authored by Chris Craik's avatar Chris Craik Committed by Android (Google) Code Review
Browse files

Merge "Outline support in DrawableContainer and LayerDrawable"

parents ef632f04 58945975
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -16,12 +16,14 @@

package android.graphics.drawable;

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

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

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

package android.graphics.drawable;

import android.annotation.NonNull;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Outline;
import android.graphics.PixelFormat;
import android.graphics.PorterDuff.Mode;
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
    public void setHotspot(float x, float y) {
        final ChildDrawable[] array = mLayerState.mChildren;