summaryrefslogtreecommitdiffstats
path: root/graphics/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/java/android')
-rw-r--r--graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java24
-rw-r--r--graphics/java/android/graphics/drawable/ClipDrawable.java2
-rw-r--r--graphics/java/android/graphics/drawable/InsetDrawable.java2
-rw-r--r--graphics/java/android/graphics/drawable/LayerDrawable.java22
-rw-r--r--graphics/java/android/graphics/drawable/RippleDrawable.java24
-rw-r--r--graphics/java/android/graphics/drawable/RotateDrawable.java24
-rw-r--r--graphics/java/android/graphics/drawable/ScaleDrawable.java2
7 files changed, 63 insertions, 37 deletions
diff --git a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
index 0bc4fdf..4c8b4f1 100644
--- a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
@@ -346,22 +346,24 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
private boolean mCanConstantState;
private boolean mCheckedConstantState;
- public AnimatedRotateState(AnimatedRotateState source, AnimatedRotateDrawable owner,
+ public AnimatedRotateState(AnimatedRotateState orig, AnimatedRotateDrawable owner,
Resources res) {
- if (source != null) {
+ if (orig != null) {
if (res != null) {
- mDrawable = source.mDrawable.getConstantState().newDrawable(res);
+ mDrawable = orig.mDrawable.getConstantState().newDrawable(res);
} else {
- mDrawable = source.mDrawable.getConstantState().newDrawable();
+ mDrawable = orig.mDrawable.getConstantState().newDrawable();
}
mDrawable.setCallback(owner);
- mDrawable.setLayoutDirection(source.mDrawable.getLayoutDirection());
- mPivotXRel = source.mPivotXRel;
- mPivotX = source.mPivotX;
- mPivotYRel = source.mPivotYRel;
- mPivotY = source.mPivotY;
- mFramesCount = source.mFramesCount;
- mFrameDuration = source.mFrameDuration;
+ mDrawable.setLayoutDirection(orig.mDrawable.getLayoutDirection());
+ mDrawable.setBounds(orig.mDrawable.getBounds());
+ mDrawable.setLevel(orig.mDrawable.getLevel());
+ mPivotXRel = orig.mPivotXRel;
+ mPivotX = orig.mPivotX;
+ mPivotYRel = orig.mPivotYRel;
+ mPivotY = orig.mPivotY;
+ mFramesCount = orig.mFramesCount;
+ mFrameDuration = orig.mFrameDuration;
mCanConstantState = mCheckedConstantState = true;
}
}
diff --git a/graphics/java/android/graphics/drawable/ClipDrawable.java b/graphics/java/android/graphics/drawable/ClipDrawable.java
index f116376..61ef81b 100644
--- a/graphics/java/android/graphics/drawable/ClipDrawable.java
+++ b/graphics/java/android/graphics/drawable/ClipDrawable.java
@@ -285,6 +285,8 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
}
mDrawable.setCallback(owner);
mDrawable.setLayoutDirection(orig.mDrawable.getLayoutDirection());
+ mDrawable.setBounds(orig.mDrawable.getBounds());
+ mDrawable.setLevel(orig.mDrawable.getLevel());
mOrientation = orig.mOrientation;
mGravity = orig.mGravity;
mCheckedConstantState = mCanConstantState = true;
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index dd0f06f..a20b6d8 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -400,6 +400,8 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
}
mDrawable.setCallback(owner);
mDrawable.setLayoutDirection(orig.mDrawable.getLayoutDirection());
+ mDrawable.setBounds(orig.mDrawable.getBounds());
+ mDrawable.setLevel(orig.mDrawable.getLevel());
mInsetLeft = orig.mInsetLeft;
mInsetTop = orig.mInsetTop;
mInsetRight = orig.mInsetRight;
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index 43bc89a..001ed88 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -961,20 +961,22 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
// Default empty constructor.
}
- ChildDrawable(ChildDrawable or, LayerDrawable owner, Resources res) {
+ ChildDrawable(ChildDrawable orig, LayerDrawable owner, Resources res) {
if (res != null) {
- mDrawable = or.mDrawable.getConstantState().newDrawable(res);
+ mDrawable = orig.mDrawable.getConstantState().newDrawable(res);
} else {
- mDrawable = or.mDrawable.getConstantState().newDrawable();
+ mDrawable = orig.mDrawable.getConstantState().newDrawable();
}
mDrawable.setCallback(owner);
- mDrawable.setLayoutDirection(or.mDrawable.getLayoutDirection());
- mThemeAttrs = or.mThemeAttrs;
- mInsetL = or.mInsetL;
- mInsetT = or.mInsetT;
- mInsetR = or.mInsetR;
- mInsetB = or.mInsetB;
- mId = or.mId;
+ mDrawable.setLayoutDirection(orig.mDrawable.getLayoutDirection());
+ mDrawable.setBounds(orig.mDrawable.getBounds());
+ mDrawable.setLevel(orig.mDrawable.getLevel());
+ mThemeAttrs = orig.mThemeAttrs;
+ mInsetL = orig.mInsetL;
+ mInsetT = orig.mInsetT;
+ mInsetR = orig.mInsetR;
+ mInsetB = orig.mInsetB;
+ mId = orig.mId;
}
}
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index ca32751..7402bdb 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -33,7 +33,6 @@ import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
-import android.util.Log;
import com.android.internal.R;
@@ -41,6 +40,7 @@ import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
+import java.util.Arrays;
/**
* Drawable that shows a ripple effect in response to state changes. The
@@ -88,7 +88,6 @@ import java.io.IOException;
* @attr ref android.R.styleable#RippleDrawable_color
*/
public class RippleDrawable extends LayerDrawable {
- private static final String LOG_TAG = RippleDrawable.class.getSimpleName();
private static final PorterDuffXfermode DST_IN = new PorterDuffXfermode(Mode.DST_IN);
private static final PorterDuffXfermode SRC_ATOP = new PorterDuffXfermode(Mode.SRC_ATOP);
private static final PorterDuffXfermode SRC_OVER = new PorterDuffXfermode(Mode.SRC_OVER);
@@ -215,10 +214,14 @@ public class RippleDrawable extends LayerDrawable {
final Ripple[] ripples = mAnimatingRipples;
for (int i = 0; i < count; i++) {
ripples[i].jump();
- ripples[i] = null;
+ }
+ if (ripples != null) {
+ Arrays.fill(ripples, 0, count, null);
}
mAnimatingRipplesCount = 0;
mClearingHotspots = false;
+
+ invalidateSelf();
}
@Override
@@ -549,6 +552,15 @@ public class RippleDrawable extends LayerDrawable {
mAnimatingRipples[mAnimatingRipplesCount++] = mRipple;
}
+ @Override
+ public void invalidateSelf() {
+ // Don't invalidate when we're clearing hotspots. We'll handle that
+ // manually when we're done.
+ if (!mClearingHotspots) {
+ super.invalidateSelf();
+ }
+ }
+
private void removeRipple() {
if (mRipple != null) {
mRipple.exit();
@@ -572,7 +584,9 @@ public class RippleDrawable extends LayerDrawable {
final Ripple[] ripples = mAnimatingRipples;
for (int i = 0; i < count; i++) {
ripples[i].cancel();
- ripples[i] = null;
+ }
+ if (ripples != null) {
+ Arrays.fill(ripples, 0, count, null);
}
mAnimatingRipplesCount = 0;
mClearingHotspots = false;
@@ -680,7 +694,7 @@ public class RippleDrawable extends LayerDrawable {
final int count = mAnimatingRipplesCount;
final int index = getRippleIndex(ripple);
if (index >= 0) {
- System.arraycopy(ripples, index + 1, ripples, index + 1 - 1, count - (index + 1));
+ System.arraycopy(ripples, index + 1, ripples, index, count - (index + 1));
ripples[count - 1] = null;
mAnimatingRipplesCount--;
invalidateSelf();
diff --git a/graphics/java/android/graphics/drawable/RotateDrawable.java b/graphics/java/android/graphics/drawable/RotateDrawable.java
index 63b9e02..70482a6 100644
--- a/graphics/java/android/graphics/drawable/RotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/RotateDrawable.java
@@ -507,21 +507,23 @@ public class RotateDrawable extends Drawable implements Drawable.Callback {
private boolean mCanConstantState;
private boolean mCheckedConstantState;
- public RotateState(RotateState source, RotateDrawable owner, Resources res) {
- if (source != null) {
+ public RotateState(RotateState orig, RotateDrawable owner, Resources res) {
+ if (orig != null) {
if (res != null) {
- mDrawable = source.mDrawable.getConstantState().newDrawable(res);
+ mDrawable = orig.mDrawable.getConstantState().newDrawable(res);
} else {
- mDrawable = source.mDrawable.getConstantState().newDrawable();
+ mDrawable = orig.mDrawable.getConstantState().newDrawable();
}
mDrawable.setCallback(owner);
- mDrawable.setLayoutDirection(source.mDrawable.getLayoutDirection());
- mPivotXRel = source.mPivotXRel;
- mPivotX = source.mPivotX;
- mPivotYRel = source.mPivotYRel;
- mPivotY = source.mPivotY;
- mFromDegrees = mCurrentDegrees = source.mFromDegrees;
- mToDegrees = source.mToDegrees;
+ mDrawable.setLayoutDirection(orig.mDrawable.getLayoutDirection());
+ mDrawable.setBounds(orig.mDrawable.getBounds());
+ mDrawable.setLevel(orig.mDrawable.getLevel());
+ mPivotXRel = orig.mPivotXRel;
+ mPivotX = orig.mPivotX;
+ mPivotYRel = orig.mPivotYRel;
+ mPivotY = orig.mPivotY;
+ mFromDegrees = mCurrentDegrees = orig.mFromDegrees;
+ mToDegrees = orig.mToDegrees;
mCanConstantState = mCheckedConstantState = true;
}
}
diff --git a/graphics/java/android/graphics/drawable/ScaleDrawable.java b/graphics/java/android/graphics/drawable/ScaleDrawable.java
index a954474..b40038a 100644
--- a/graphics/java/android/graphics/drawable/ScaleDrawable.java
+++ b/graphics/java/android/graphics/drawable/ScaleDrawable.java
@@ -295,6 +295,8 @@ public class ScaleDrawable extends Drawable implements Drawable.Callback {
}
mDrawable.setCallback(owner);
mDrawable.setLayoutDirection(orig.mDrawable.getLayoutDirection());
+ mDrawable.setBounds(orig.mDrawable.getBounds());
+ mDrawable.setLevel(orig.mDrawable.getLevel());
mScaleWidth = orig.mScaleWidth;
mScaleHeight = orig.mScaleHeight;
mGravity = orig.mGravity;