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

Commit d4334718 authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Fixing Drawable methods for find by layer ID and invalidation callback"

parents 8785a608 8f164f64
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -229,15 +229,18 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
    }

    /**
     * Look for a layer with the given id, and returns its {@link Drawable}.
     * Looks for a layer with the given ID and returns its {@link Drawable}.
     * <p>
     * If multiple layers are found for the given ID, returns the
     * {@link Drawable} for the matching layer at the highest index.
     *
     * @param id The layer ID to search for.
     * @return The {@link Drawable} of the layer that has the given id in the hierarchy or null.
     * @return The {@link Drawable} for the highest-indexed layer that has the
     *         given ID, or null if not found.
     */
    public Drawable findDrawableByLayerId(int id) {
        final ChildDrawable[] layers = mLayerState.mChildren;
        final int N = mLayerState.mNum;
        for (int i = 0; i < N; i++) {
        for (int i = mLayerState.mNum - 1; i >= 0; i--) {
            if (layers[i].mId == id) {
                return layers[i].mDrawable;
            }
@@ -370,7 +373,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
    }

    /**
     * Invalidates cached padding.
     * Invalidates cached padding and recomputes child bounds.
     */
    private void invalidatePadding() {
        mHasCachedPadding = false;
@@ -379,10 +382,9 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {

    @Override
    public void invalidateDrawable(Drawable who) {
        final Callback callback = getCallback();
        if (callback != null) {
            callback.invalidateDrawable(this);
        }
        // Something changed, maybe it was the child drawable's padding.
        invalidatePadding();
        invalidateSelf();
    }

    @Override