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

Commit dadeaa60 authored by Alan Viverette's avatar Alan Viverette Committed by Android Git Automerger
Browse files

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

* commit 'd4334718':
  Fixing Drawable methods for find by layer ID and invalidation callback
parents e8c729cd d4334718
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