LayoutLib: support for custom styles.

Change-Id: Ic6c2ef234589f45db15024261d698066aa6e2f4e
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java
index 1e9f573..b670eee 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java
@@ -259,7 +259,18 @@
 
         // resolve the defStyleAttr value into a IStyleResourceValue
         IStyleResourceValue defStyleValues = null;
-        if (defStyleAttr != 0) {
+
+        // look for a custom style.
+        String customStyle = parser.getAttributeValue(null /* namespace*/, "style");
+        if (customStyle != null) {
+            IResourceValue item = findResValue(customStyle);
+
+            if (item instanceof IStyleResourceValue) {
+                defStyleValues = (IStyleResourceValue)item;
+            }
+        }
+
+        if (defStyleValues == null && defStyleAttr != 0) {
             // get the name from the int.
             String defStyleName = searchAttr(defStyleAttr);
 
@@ -1104,7 +1115,7 @@
            Bundle initialExtras) {
         // TODO Auto-generated method stub
     }
-    
+
     @Override
     public void setTheme(int arg0) {
         // TODO Auto-generated method stub
@@ -1137,7 +1148,7 @@
             throws IntentSender.SendIntentException {
         // TODO Auto-generated method stub
     }
-    
+
     @Override
     public boolean startInstrumentation(ComponentName arg0, String arg1,
             Bundle arg2) {