diff options
author | Zhihong Xu <zhihongx@google.com> | 2013-09-25 18:55:01 -0700 |
---|---|---|
committer | Zhihong Xu <zhihongx@google.com> | 2013-09-25 18:55:01 -0700 |
commit | 6ddbf372cd1301a3f23e7ad834ab7c4e32c6c698 (patch) | |
tree | f98f3cf1dc75162c4b28fc2d66fa3aa40db363a2 | |
parent | b0caab4eeb6c3335b1a7cfc1a15f2e3cd5f03553 (diff) | |
download | robolectric-6ddbf372cd1301a3f23e7ad834ab7c4e32c6c698.tar.gz |
Implement Robolectric ShadowTheme.resolveAttribute
Change-Id: I04fff6a91176b3ab203ab8976a4c0b71a1ea0c08
-rw-r--r-- | src/main/java/com/xtremelabs/robolectric/Robolectric.java | 6 | ||||
-rw-r--r-- | src/main/java/com/xtremelabs/robolectric/shadows/ShadowResources.java | 18 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/com/xtremelabs/robolectric/Robolectric.java b/src/main/java/com/xtremelabs/robolectric/Robolectric.java index 101a9d782..1835da046 100644 --- a/src/main/java/com/xtremelabs/robolectric/Robolectric.java +++ b/src/main/java/com/xtremelabs/robolectric/Robolectric.java @@ -21,6 +21,7 @@ import android.content.pm.Signature; import android.content.res.AssetManager; import android.content.res.Configuration; import android.content.res.Resources; +import android.content.res.Resources.Theme; import android.database.CursorWrapper; import android.database.sqlite.*; import android.graphics.*; @@ -68,6 +69,7 @@ import android.widget.*; import com.xtremelabs.robolectric.bytecode.RobolectricInternals; import com.xtremelabs.robolectric.bytecode.ShadowWrangler; import com.xtremelabs.robolectric.shadows.*; +import com.xtremelabs.robolectric.shadows.ShadowResources.ShadowTheme; import com.xtremelabs.robolectric.tester.org.apache.http.FakeHttpLayer; import com.xtremelabs.robolectric.tester.org.apache.http.HttpRequestInfo; import com.xtremelabs.robolectric.tester.org.apache.http.RequestMatcher; @@ -1028,6 +1030,10 @@ public class Robolectric { return (ShadowZoomButtonsController) shadowOf_(instance); } + public static ShadowTheme shadowOf(Theme instance) { + return (ShadowTheme) shadowOf_(instance); + } + @SuppressWarnings({"unchecked"}) public static <P, R> P shadowOf_(R instance) { return (P) ShadowWrangler.getInstance().shadowOf(instance); diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowResources.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowResources.java index a9323ad64..12e6ea13b 100644 --- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowResources.java +++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowResources.java @@ -10,6 +10,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.NinePatchDrawable; import android.util.AttributeSet; import android.util.DisplayMetrics; +import android.util.TypedValue; import android.view.Display; import com.xtremelabs.robolectric.Robolectric; import com.xtremelabs.robolectric.internal.Implementation; @@ -19,6 +20,7 @@ import com.xtremelabs.robolectric.res.ResourceExtractor; import com.xtremelabs.robolectric.res.ResourceLoader; import java.io.InputStream; +import java.util.HashMap; import java.util.Locale; import static com.xtremelabs.robolectric.Robolectric.newInstanceOf; @@ -210,6 +212,8 @@ public class ShadowResources { @Implements(Resources.Theme.class) public static class ShadowTheme { + HashMap<Integer, TypedValue> attrMap = new HashMap<Integer, TypedValue>(); + @Implementation public TypedArray obtainStyledAttributes(int[] attrs) { return obtainStyledAttributes(0, attrs); @@ -224,5 +228,19 @@ public class ShadowResources { public TypedArray obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) { return newInstanceOf(TypedArray.class); } + + @Implementation + public boolean resolveAttribute (int resid, TypedValue outValue, boolean resolveRefs) { + TypedValue foundValue = attrMap.get(resid); + if (foundValue != null) { + outValue.setTo(foundValue); + return true; + } + return false; + } + + public void setAttribue(int attrId, TypedValue value) { + attrMap.put(attrId, value); + } } } |