aboutsummaryrefslogtreecommitdiff
path: root/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowBitmapDrawable.java
diff options
context:
space:
mode:
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowBitmapDrawable.java')
-rw-r--r--v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowBitmapDrawable.java142
1 files changed, 142 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowBitmapDrawable.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowBitmapDrawable.java
new file mode 100644
index 000000000..da4c4e16f
--- /dev/null
+++ b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowBitmapDrawable.java
@@ -0,0 +1,142 @@
+package com.xtremelabs.robolectric.shadows;
+
+import static com.xtremelabs.robolectric.Robolectric.shadowOf;
+
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Paint;
+import android.graphics.Shader.TileMode;
+import android.graphics.drawable.BitmapDrawable;
+
+import com.xtremelabs.robolectric.internal.Implementation;
+import com.xtremelabs.robolectric.internal.Implements;
+import com.xtremelabs.robolectric.internal.RealObject;
+
+@SuppressWarnings({"UnusedDeclaration"})
+@Implements(BitmapDrawable.class)
+public class ShadowBitmapDrawable extends ShadowDrawable {
+ private Bitmap bitmap;
+ private ColorFilter colorFilter;
+ private String drawableCreateFromStreamSource;
+ private String drawableCreateFromPath;
+
+ @RealObject private BitmapDrawable realBitmapDrawable;
+ private TileMode tileModeX;
+ private TileMode tileModeY;
+
+ public void __constructor__(Bitmap bitmap) {
+ this.bitmap = bitmap;
+ }
+
+ public void __constructor__(Resources resources, Bitmap bitmap) {
+ this.bitmap = bitmap;
+ }
+
+ /**
+ * Draws the contained bitmap onto the canvas at 0,0 with a default {@code Paint}
+ *
+ * @param canvas the canvas to draw on
+ */
+ @Implementation
+ public void draw(Canvas canvas) {
+ Paint paint = new Paint();
+ paint.setColorFilter(colorFilter);
+ canvas.drawBitmap(realBitmapDrawable.getBitmap(), 0, 0, paint);
+ }
+
+ @Implementation
+ public void setColorFilter(android.graphics.ColorFilter colorFilter) {
+ this.colorFilter = colorFilter;
+ }
+
+ @Implementation
+ public android.graphics.Bitmap getBitmap() {
+ return bitmap;
+ }
+
+ /**
+ * Non-Android accessor that tells you the resource id that this {@code BitmapDrawable} was loaded from. This lets
+ * your tests assert that the bitmap is correct without having to actually load the bitmap.
+ *
+ * @return resource id from which this {@code BitmapDrawable} was loaded
+ * @deprecated use com.xtremelabs.robolectric.shadows.ShadowBitmap#getLoadedFromResourceId() instead.
+ */
+ @Deprecated
+ @Override
+ public int getLoadedFromResourceId() {
+ return shadowOf(bitmap).getLoadedFromResourceId();
+ }
+
+ // Used by ShadowDrawable.createFromStream()
+ public void setSource(String drawableCreateFromStreamSource) {
+ this.drawableCreateFromStreamSource = drawableCreateFromStreamSource;
+ }
+
+ public String getSource() {
+ return drawableCreateFromStreamSource;
+ }
+
+ //Used by ShadowDrawable.createFromPath()
+ public void setPath(String drawableCreateFromPath) {
+ this.drawableCreateFromPath = drawableCreateFromPath;
+ }
+
+ public String getPath() {
+ return drawableCreateFromPath;
+ }
+
+ @Implementation
+ public void setTileModeX(TileMode mode) {
+ tileModeX = mode;
+ }
+
+ @Implementation
+ public TileMode getTileModeX() {
+ return tileModeX;
+ }
+
+ @Implementation
+ public void setTileModeY(TileMode mode) {
+ tileModeY = mode;
+ }
+
+ @Implementation
+ public TileMode getTileModeY() {
+ return tileModeY;
+ }
+
+ @Implementation
+ public void setTileModeXY(TileMode modeX, TileMode modeY) {
+ setTileModeX(modeX);
+ setTileModeY(modeY);
+ }
+
+ @Override
+ @Implementation
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != ShadowBitmapDrawable.class) return false;
+
+ ShadowBitmapDrawable that = shadowOf((BitmapDrawable) o);
+
+ if (bitmap != null ? !bitmap.equals(that.bitmap) : that.bitmap != null) return false;
+
+ return super.equals(o);
+ }
+
+ @Override
+ @Implementation
+ public int hashCode() {
+ return bitmap != null ? bitmap.hashCode() : 0;
+ }
+
+ @Override
+ @Implementation
+ public String toString() {
+ return "ShadowBitmapDrawable{" +
+ "bitmap=" + bitmap +
+ '}';
+ }
+}