Merge "Add a little more resource load tracing." into jb-mr2-dev
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 9338f3d..d64bff9 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -16,6 +16,7 @@
 
 package android.content.res;
 
+import android.os.Trace;
 import com.android.internal.util.XmlUtils;
 
 import org.xmlpull.v1.XmlPullParser;
@@ -2055,20 +2056,24 @@
                         + value.assetCookie + ": " + file);
 
                 if (file.endsWith(".xml")) {
+                    Trace.traceBegin(Trace.TRACE_TAG_RESOURCES, file);
                     try {
                         XmlResourceParser rp = loadXmlResourceParser(
                                 file, id, value.assetCookie, "drawable");
                         dr = Drawable.createFromXml(this, rp);
                         rp.close();
                     } catch (Exception e) {
+                        Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
                         NotFoundException rnf = new NotFoundException(
                             "File " + file + " from drawable resource ID #0x"
                             + Integer.toHexString(id));
                         rnf.initCause(e);
                         throw rnf;
                     }
+                    Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
 
                 } else {
+                    Trace.traceBegin(Trace.TRACE_TAG_RESOURCES, file);
                     try {
                         InputStream is = mAssets.openNonAsset(
                                 value.assetCookie, file, AssetManager.ACCESS_STREAMING);
@@ -2078,12 +2083,14 @@
                         is.close();
         //                System.out.println("Created stream: " + dr);
                     } catch (Exception e) {
+                        Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
                         NotFoundException rnf = new NotFoundException(
                             "File " + file + " from drawable resource ID #0x"
                             + Integer.toHexString(id));
                         rnf.initCause(e);
                         throw rnf;
                     }
+                    Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
                 }
             }
         }
@@ -2189,18 +2196,21 @@
         String file = value.string.toString();
 
         if (file.endsWith(".xml")) {
+            Trace.traceBegin(Trace.TRACE_TAG_RESOURCES, file);
             try {
                 XmlResourceParser rp = loadXmlResourceParser(
                         file, id, value.assetCookie, "colorstatelist"); 
                 csl = ColorStateList.createFromXml(this, rp);
                 rp.close();
             } catch (Exception e) {
+                Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
                 NotFoundException rnf = new NotFoundException(
                     "File " + file + " from color state list resource ID #0x"
                     + Integer.toHexString(id));
                 rnf.initCause(e);
                 throw rnf;
             }
+            Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
         } else {
             throw new NotFoundException(
                     "File " + file + " from drawable resource ID #0x"
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index c90f400..d5183d5 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -17,6 +17,7 @@
 package android.graphics.drawable;
 
 import android.graphics.Insets;
+import android.os.Trace;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -745,7 +746,12 @@
      * Create a drawable from an inputstream
      */
     public static Drawable createFromStream(InputStream is, String srcName) {
-        return createFromResourceStream(null, null, is, srcName, null);
+        Trace.traceBegin(Trace.TRACE_TAG_RESOURCES, srcName != null ? srcName : "Unknown drawable");
+        try {
+            return createFromResourceStream(null, null, is, srcName, null);
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
+        }
     }
 
     /**
@@ -754,7 +760,12 @@
      */
     public static Drawable createFromResourceStream(Resources res, TypedValue value,
             InputStream is, String srcName) {
-        return createFromResourceStream(res, value, is, srcName, null);
+        Trace.traceBegin(Trace.TRACE_TAG_RESOURCES, srcName != null ? srcName : "Unknown drawable");
+        try {
+            return createFromResourceStream(res, value, is, srcName, null);
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
+        }
     }
 
     /**
@@ -900,9 +911,14 @@
             return null;
         }
 
-        Bitmap bm = BitmapFactory.decodeFile(pathName);
-        if (bm != null) {
-            return drawableFromBitmap(null, bm, null, null, null, pathName);
+        Trace.traceBegin(Trace.TRACE_TAG_RESOURCES, pathName);
+        try {
+            Bitmap bm = BitmapFactory.decodeFile(pathName);
+            if (bm != null) {
+                return drawableFromBitmap(null, bm, null, null, null, pathName);
+            }
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
         }
 
         return null;