summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alan Viverette <alanv@google.com> 2014-01-10 22:52:51 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-01-10 22:52:51 +0000
commit6ae1bdebf308d3f857d586debbdd3c034ca85bb7 (patch)
tree09d140ac38dbb47997b37b49fc004aa5539b8910
parentece709670dfee5fe12357802456b6b7b5eb9363c (diff)
parent218974915a25b2f9dd2e9543aceda16b26505280 (diff)
Merge "Revert "Fixing Drawable methods for find by layer ID and invalidation callback""
-rw-r--r--graphics/java/android/graphics/drawable/LayerDrawable.java20
1 files changed, 9 insertions, 11 deletions
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index feb193bb7a7f..51c183f582be 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -229,18 +229,15 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
}
/**
- * 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.
+ * Look for a layer with the given id, and returns its {@link Drawable}.
*
* @param id The layer ID to search for.
- * @return The {@link Drawable} for the highest-indexed layer that has the
- * given ID, or null if not found.
+ * @return The {@link Drawable} of the layer that has the given id in the hierarchy or null.
*/
public Drawable findDrawableByLayerId(int id) {
final ChildDrawable[] layers = mLayerState.mChildren;
- for (int i = mLayerState.mNum - 1; i >= 0; i--) {
+ final int N = mLayerState.mNum;
+ for (int i = 0; i < N; i++) {
if (layers[i].mId == id) {
return layers[i].mDrawable;
}
@@ -374,7 +371,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
}
/**
- * Invalidates cached padding and recomputes child bounds.
+ * Invalidates cached padding.
*/
private void invalidatePadding() {
mHasCachedPadding = false;
@@ -383,9 +380,10 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
@Override
public void invalidateDrawable(Drawable who) {
- // Something changed, maybe it was the child drawable's padding.
- invalidatePadding();
- invalidateSelf();
+ final Callback callback = getCallback();
+ if (callback != null) {
+ callback.invalidateDrawable(this);
+ }
}
@Override