)]}'
{
  "log": [
    {
      "commit": "0de16070935adb8656d646b8c69a362652db7443",
      "tree": "2ffc23024b989155fb563d10fdae7000f1164d7e",
      "parents": [
        "b3830b8978aa05746912210932e26ebf1836aab5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 12:10:57 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 12:15:15 2011 -0800"
      },
      "message": "LayoutLib: fix XmlUtils.convertValueToInt\n\nIt looks like the device implementation of Integer.parseInt\nis able to handle converting hexa value \u003e 80000000 while the\ndesktop VM cannot.\n\nThis patch provide a fix for this.\n\nWhile implementing it and running the TestDegates test I realized\nthat some delegate methods for Region were mising, so this adds them\ntoo.\n\nChange-Id: Ifee1efd47c8c52adc2f4658ec4fc8bd55adb84b4\n"
    },
    {
      "commit": "b44b43b1579486ff7ecd0f7528f17711acdeae98",
      "tree": "47542b0726249f3b7fb02c41412088f15f816cec",
      "parents": [
        "d43909c7503e11eb335a452d296a10804bb01fd6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 23 10:22:14 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 24 00:21:51 2010 -0800"
      },
      "message": "LayoutLib: Support Region through delegates.\n\nalso finish supporting some clip operation\non the canvas.\n\nChange-Id: I743b9e52a7aa6e9340506f1c904cc1cfbf3ff81f\n"
    },
    {
      "commit": "d43909c7503e11eb335a452d296a10804bb01fd6",
      "tree": "f9dc11c23a34227d094e7340a05f268032224cfc",
      "parents": [
        "20805343296eef04081fee82fd04547f51225fe3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 23 07:16:21 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 24 00:21:51 2010 -0800"
      },
      "message": "LayoutLib: add support for unsupported drawing modifiers.\n\nDrawFilter, Rasterizer, ColorFilter and MaskFilter\nare not supported but we need to provide their\nJNI counterparts anyway, to at least display warnings\nwhen they are used.\n\nAlso improved the API to query Paint for Shaders\nand PathEffects, and clean up some code by\nmoving asserts into the DelegateManager.\n\nChange-Id: I8942514565d28576d5608c6373bda25d86d42ff2\n"
    },
    {
      "commit": "d348b6eaa98e23cb38d90906df109aaa2d20ea7f",
      "tree": "c9195fa9628e78108424cbae0dd2a86a12d2faeb",
      "parents": [
        "19a021038f2f4683dddef651543d7298f5bd7218"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 20 08:22:47 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 10:43:18 2010 -0800"
      },
      "message": "LayoutLib: support for Path and BitmapShader using delegates.\n\nAlso created delegates for all missing shader, xfermode\nand patheffect classes. Moved the logic of the xfermode,\nand patheffects that was in Canvas_Delegate into the\nxfermode/patheffect classes, and added support (in all\n3 clases) for knowing if the shader/xfermode/patheffect\nis actually supported or not. Make use of fidelityWarning\nin LayoutLog if they are not.\n"
    },
    {
      "commit": "8d74c978bbf3da4095ef8e40c005a6fdf0637071",
      "tree": "2d797124a70d8619a1f97460c0d4600c5ad30d5c",
      "parents": [
        "5151b325a4d7e28d4739fb7113a2575991f1eb97"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 07 12:10:51 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 07 12:10:51 2010 -0800"
      },
      "message": "LayoutLib: explicitely override PropertyValuesHolder native code.\n\nChange-Id: Ic7dd9efc990d01b20db144117cb11eb130349048\n"
    },
    {
      "commit": "2eea6fab1cbb0a5c8f913491c2d622c904759893",
      "tree": "51b7e87bbf94d0fdb6623710a59e142e823938c2",
      "parents": [
        "7750c2ac61d933cdb50114c2fc2e0a0c558a140e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 24 11:26:40 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 29 12:05:43 2010 -0800"
      },
      "message": "Layoutlib: Animation support.\n\nNew locking mechanims to prevent concurrent renderings.\n\nThere\u0027s now a thread specific prepareThread() method (only\nprepares the looper) and its associated cleanupThread().\n\nFor the rendering itself, acquire must be called before doing\nany type of Android specific work on the scene (inflate or rendering)\nAfter instantiation, init() must be called, which also acts as acquire.\n\nAdded a lot of checks to make sure method aren\u0027t called without\nacquire or if scenes try to be rendered while acquire was called\nfrom the same thread but on another scene.\n\nAnimation implementation:\n- Handler delegate to use our own queue (since the animation runs\n  through handler messages). This uses a callback to process\n  the message. This callback is per-thread and only used in\n  animation threads.\n- SystemClock delegate to provide clock implementation.\n- AnimationThread to handle playing the animation and calling back\n  to the animation listener.\n\nChange-Id: Ia39aba7ed476759df1da3200e413fe3e92590d15\n"
    },
    {
      "commit": "2d56b273ef6e2984a4e8914fb67772b173d0a154",
      "tree": "a27ae6be789d770986d019795807dfa8df0455a5",
      "parents": [
        "b43d7589cf6201fc05f4c9d8b4a0c44d7cdba81e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 22 20:09:55 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Nov 23 11:54:25 2010 -0800"
      },
      "message": "Layoutlib: use default nine patch classes.\n\nMove away from using our own implementation of NinePatchDrawable.\nNow use native delegate for a few methods of NinePatch.\n\nThe byte[] used to describe the 9-patch chunk is entirely controlled\nby the delegate. Therefore, while the default version (JNI) use the\narray as a representation of a C struct, this version uses the array\nas a serialized version of NinePatchChunk.\n\nA cache mechanism using SoftReferences allows us to not deserialize\nthe array every time rendering needs to access the chunk itself.\n\nThe Bridge-level cache mechanism for bitmaps and nine-patches as\nchanged. Since the new nine-patches doesn\u0027t hold the bitmap\ndata anymore (it\u0027s stored in a normal Android bitmap which\nis cached itself through the cache), then the nine-patch cache\nhas been changed to only contain the nine patch chunk.\n\nAlso initialize the canvas with the display metrics to prepare\nfor correct scaling when density of the assets don\u0027t match the target\ndensity.\n\nStill to come: actual density support in the 9-patch drawing code.\n\nChange-Id: Ibefcccf4432e1986e8436e0c41a0107741593536\n"
    },
    {
      "commit": "071dee288ca726c7c15754c2559403b9cbf950bd",
      "tree": "656092a75556ed7910e25a41e10e9f7d4843d083",
      "parents": [
        "f917f9accf924447b3afb27d09382851003c190f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 11 14:19:29 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 11 17:39:50 2010 -0800"
      },
      "message": "Misc fix in layoutlib bridge + View.isIneditMode as delegate.\n\nChange-Id: Ideab29167e933203da99d4270cebcb777726201f\n"
    },
    {
      "commit": "7f7752439543db6e13c599bdd10cb10254c24528",
      "tree": "8161d572cce9194745972fc3fde670a6c6412614",
      "parents": [
        "c9f32f23327cbeeb50f0d494d01c8d6784720bc6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 04 17:15:54 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 08 18:38:12 2010 -0800"
      },
      "message": "Layoutlib: Load fragments\n\nThis change does the following:\n- Make the bridge context extend Activity instead of Context\nso that it can act as a view factory. This is needed because\nthe Activity is used as factory for Fragment objects.\n\n- Override the default Fragment.instantiate(...) method\nthrough a delegate. This is done to load the Fragment\nclasses located in the project (similar to custom views).\n\nChange-Id: If62e7c9ff2b7585677077ad825aa1c3591d1b5e0\n"
    },
    {
      "commit": "9c05b3972872d83c60bf5afe1a05f08c7753cd9a",
      "tree": "fb46e02e4e3a4d04b798f59bb3511ae404b56a63",
      "parents": [
        "4b606da91d2d76dd90a427cb3e37ea7df655e8e0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 03 18:00:21 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 03 19:15:07 2010 -0700"
      },
      "message": "Layoutlib native delegate: FloatMath.\n\nWhile the difference is pretty minor since it\u0027s a small class,\nthe point is that the unit test will ensure that we detect\nnew methods added to FloatMath more easily.\n\nChange-Id: Ia8bfee231cc4ae0cfeb18692be86d02649c187d5\n"
    },
    {
      "commit": "4b606da91d2d76dd90a427cb3e37ea7df655e8e0",
      "tree": "e12029f7b29397ff9a01755f3bd46f5a5758efb2",
      "parents": [
        "079fd674fb9005771dd383a1a483d7dc5072b5b3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 03 17:40:17 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 03 19:15:07 2010 -0700"
      },
      "message": "Layoutlib native delegate: path effects and xfermode.\n\nChange-Id: Iafaac6dbaf452e2dba3e77c801089dad33ac4ea9\n"
    },
    {
      "commit": "251d2e99245095369b52d891a660b2ed270f02e0",
      "tree": "e8adcad8c591c9e9637a478e385f6e04071d561d",
      "parents": [
        "abff653ce84e5079f35afab008c906063b0b2b6c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 01 22:02:08 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 03 13:23:22 2010 -0700"
      },
      "message": "Layoutlib native delegate: primitive shapes and shaders\n\nChange-Id: Id2b0c6231589e82d8e96c9f019042eba348a6583\n"
    },
    {
      "commit": "9f63ff263b0a97f0fa63e97136c18f6abccbfc68",
      "tree": "51941d0fad58ffb49097b1da5c7b7551da16a570",
      "parents": [
        "5c95212f6a8f5786b8199cdc4bb3725d15ada993"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Oct 28 11:52:00 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 01 13:31:47 2010 -0700"
      },
      "message": "Layoutlib Canvas and Paint implementation through native delegates\n\nAlso fix native delegate generation to put \"this\" parameter even\nfor methods that don\u0027t have any parameters.\n\nChange-Id: I5dd0c505871370ff7b4cda16de84a5b3ae438f73\n"
    },
    {
      "commit": "5de11a18e9151e6bc9b3e81cf31fc43dc63dffbf",
      "tree": "3d956f7bfa6cc38ed3dd4a4a2e48c62c30fe7afe",
      "parents": [
        "5164246d7e47b9c995ca1e1587f3056eb777f60b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Oct 29 16:01:40 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Oct 29 16:01:40 2010 -0700"
      },
      "message": "Implement the layoutlib Bitmap through a native delegate.\n\nThis does not implement all the native methods of the\nandroid.graphics.Bitmap class, only what\u0027s needed to draw an\nImageView object. The rest will be implemented after Canvas and\nPaint have been moved to the native delegate.\n\nChange-Id: Ia0c3b2cafa03871c298deaef5817a25ac1c35521\n"
    },
    {
      "commit": "5e7ed8da0d990cbc55071d16b5db270231ff0c89",
      "tree": "41f445a825f93cd55c7587ebe327b96da299858f",
      "parents": [
        "162b689c5257d7e6a937cf734c0edde470c77969"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Oct 27 16:45:38 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Oct 27 18:12:27 2010 -0700"
      },
      "message": "Move layoutlib typeface implementation to delegate.\n\nAlso move BridgeContentProvider to its own class to make it\nless messy in BridgeContentResolver.\n\nChange-Id: Id3462218b500d43d4c9b20b25326ad24e4106fa5\n"
    },
    {
      "commit": "4f291d33e14e62b3301acc056a82fe206c74835f",
      "tree": "cc6d5b0297f4c755c2e2cee64189633007096636",
      "parents": [
        "5da5438e4101ab3c499797f90cc3d9403e075a5a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Oct 22 14:48:17 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Oct 27 09:55:58 2010 -0700"
      },
      "message": "Reimplement the native matrix method using the new delegate way.\n\nInstead of renaming the old Matrix class into _Original_Matrix\nand have layoutlib provide a full new implementation of Matrix,\nwe keep the old one by only modifying it to implement the native\nmethods which calls out to a new Matrix_Delegate class.\n\nThe goal is to not have to maintain the java portion in\nsync between the framework and the layoutlib version.\n\nChange-Id: I3e1aefffbae45e91b75331c0c6ff2260323deacd\n"
    },
    {
      "commit": "d815e3704850a513e8d02ba3b88fa47f41cea9a5",
      "tree": "8c9329a964c587977bc9b69db24b27847c0ea0de",
      "parents": [
        "f241c40476b6ff2acf57617d4f90cc8c229f1207"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 14:01:41 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 14:29:23 2010 -0700"
      },
      "message": "Fix rendering of digitalClock/Gallery in Eclipse editors.\n\nChange-Id: Iedcd3184cd9f34be8d0695a51eda953ac68683ce\n"
    },
    {
      "commit": "f241c40476b6ff2acf57617d4f90cc8c229f1207",
      "tree": "01bfa1ca7a7630aea907d7a63f4d653a773aef89",
      "parents": [
        "9440083be22ec13e252aa347e654911d33e50086"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Tue Oct 26 13:55:10 2010 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Tue Oct 26 13:55:10 2010 -0700"
      },
      "message": "Revert \"Fix rendering of digitalClock/Gallery in Eclipse editors.\"\n\nThis reverts commit 25e96ce7b99f9736a6024d25bd65a83774c7640f.\n"
    },
    {
      "commit": "68404a0125999ebe0d58c3eb1845b3c9aaf4d51e",
      "tree": "78fa4511887e235982fd70dfa9d089235e4fa937",
      "parents": [
        "ee1dc6221fc9193fb135386244e61e557a07260d",
        "a44a5e02d21505a9c891a31a34c83761600024c0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 12:13:32 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 26 12:13:32 2010 -0700"
      },
      "message": "am a44a5e02: am 1b6180ec: Merge \"Fix rendering of digitalClock/Gallery in Eclipse editors.\" into gingerbread\n"
    },
    {
      "commit": "a44a5e02d21505a9c891a31a34c83761600024c0",
      "tree": "0cd858aa1b1ca5560f5c9ead9febc2c2fce88aa2",
      "parents": [
        "cc8de576cd3aaf6c0b7d1515ffb74cb89e4764e3",
        "1b6180ec317201e51cb4a773c59a825342fd2235"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 12:10:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 26 12:10:28 2010 -0700"
      },
      "message": "am 1b6180ec: Merge \"Fix rendering of digitalClock/Gallery in Eclipse editors.\" into gingerbread\n"
    },
    {
      "commit": "25e96ce7b99f9736a6024d25bd65a83774c7640f",
      "tree": "2060eeb90d6cd266f526daa2f16bcfe33111a2a6",
      "parents": [
        "106165b5102be226eb8049d2f7f62d7e26034e8a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 11:18:39 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 11:18:39 2010 -0700"
      },
      "message": "Fix rendering of digitalClock/Gallery in Eclipse editors.\n\nChange-Id: I80f4f90b173529632eaf2fbc3bb5471b7ede8216\n"
    },
    {
      "commit": "e2e8ba904b306f11dfc5b71e00ab9ac013358cd7",
      "tree": "21931ec99ebb589620af398db5ca7559652cbc02",
      "parents": [
        "280372e2c7db128254b5f65395ea843ef285729e"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Oct 22 15:29:04 2010 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Oct 22 15:29:04 2010 -0700"
      },
      "message": "Layoutlib_Create: Fix order of class adapters.\n\nThe Transform adapter was running last, instead of\nrunning on the output of the Delegate adapter.\n\nChange-Id: I2cd777add7b0972c6bb197aaac6693d39dd5a103\n"
    },
    {
      "commit": "280372e2c7db128254b5f65395ea843ef285729e",
      "tree": "f01e3cd10350ee880c61c0de2ed957e6bfbc8c03",
      "parents": [
        "d556d8ba369e05836bedab6004f3dbdc5ec3387e"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Oct 22 13:58:31 2010 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Oct 22 13:58:31 2010 -0700"
      },
      "message": "Layoutlib_create: fix binary name of delegate methods.\n\nChange-Id: Iebd7d730b23e12f770e6ecadafb2f5c3459958db\n"
    },
    {
      "commit": "d556d8ba369e05836bedab6004f3dbdc5ec3387e",
      "tree": "8fff4f9f0d449ec530bc2d71e36a3786e32e3109",
      "parents": [
        "cf3c7cf3c986526398e2bc79a39227d751202822"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Oct 22 13:32:04 2010 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Oct 22 13:33:50 2010 -0700"
      },
      "message": "Remove dependency on ASM util classes.\n\nChange-Id: I975b103f8c207e727699e4135170755f6ba2a084\n"
    },
    {
      "commit": "bc101806249eb883f89c4a770a8c27f9ac315837",
      "tree": "d8ad184b4ceddb749a56ed53e00a1fd57ff154d0",
      "parents": [
        "1c1797acff49857b41ea1e3630d23d940882791c"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Sep 27 08:55:43 2010 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Wed Sep 29 14:45:20 2010 -0700"
      },
      "message": "layoutlib_create: Generate delegate to implement native methods.\n\n- Some new parameters are added to CreateInfo with the list of methods\n  or classes to override with delegates.\n- DelegateClassAdapter and DelegateMethodAdapter do the work... see javadoc.\n\nChange-Id: I0657cd929837181d81c65db7051d8ccbdc59c741\n"
    },
    {
      "commit": "91512f579e7a1bf91d23254471ee47d3a88d342f",
      "tree": "19f8ce8d207419aaf50c8ad98105fbace52373a5",
      "parents": [
        "f2960b8d66d7a20f590716f5e51160e77d0d1b24"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Sep 24 13:54:37 2010 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Fri Sep 24 14:04:04 2010 -0700"
      },
      "message": "Layoutlib_create: Unittest for ClassHasNativeVisitor.\n\nChange-Id: Id101bb3fc2644e450847e73c933cb6f616982f24\n"
    },
    {
      "commit": "f2960b8d66d7a20f590716f5e51160e77d0d1b24",
      "tree": "2435836bb2a57b8b4619cd9e7fc03e0843cf64cc",
      "parents": [
        "7869f08c55d774b0006c2260e87747ff5e0746f2"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Tue Sep 21 17:10:35 2010 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Tue Sep 21 17:39:35 2010 -0700"
      },
      "message": "Refresh the layoutlib_create doc.\n\nChange-Id: I43e92c33d824ace9edd77d90a1b36a5f69d85e7f\n"
    },
    {
      "commit": "36ab1284d8e89486cadbd55320ca965e96d65f44",
      "tree": "c44df15b1d3fd62f208eb754aa790f27fa1d73e8",
      "parents": [
        "5ac8f409f52b4b121614a8797d289f01f96c6527"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 15 11:24:44 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 15 11:24:44 2010 -0800"
      },
      "message": "ADT/Layoutlib: Add dash support to stroke.\n\nChange-Id: I09a7e84948be013cbb11f6d9774ab81df897b424\n"
    },
    {
      "commit": "ae4bd059caa71aa4652c0f07fde7c2687169906e",
      "tree": "1fdcb26ee1a43782b61459e1ec5aca9520e845db",
      "parents": [
        "1193ae4e824c66b75083c444ce0f250594e138ee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 16:43:07 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 16:43:07 2010 -0800"
      },
      "message": "ADT/Layoutlib: Reimplement parts of BitmapFactory\n\nThe original bitmap factory is mostly done in native and deals\nwith the normal android Bitmap class which has been replaced\nin the layoutlib by a bitmap that is merely a wrapper around\nan AWT BufferedImage.\n\nThis new BitmapFactory creates the layoutlib version of\nBitmap all in Java.\n\nChange-Id: Ice8b5d19141a9a43f83349c159201bf85604b3b0\n"
    },
    {
      "commit": "ac7391de5f32cf051678886f0d393fe0431dc6d1",
      "tree": "679f84c70031002c28be99fd7e71d1579a8fcd89",
      "parents": [
        "f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 14:12:04 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 14:16:09 2009 -0700"
      },
      "message": "Refactor class/method names used by layoutlib_create.\n\nInformation about classes and methods that are replaced, renamed, removed\ninto CreateInfo, so that it can be used by the tests.\n\nChange-Id: I8874a40503249416621aa90b2ca02dcaf30ecd57\n"
    },
    {
      "commit": "2473ef5654b2a4b65132a35677c6ddfd481aab2c",
      "tree": "98ff9700a5a8854c139b7b27413c2208d21c7b34",
      "parents": [
        "75c498426a17b47d445711bb9e36794b05876a56"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Aug 14 20:47:50 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 17 14:17:05 2009 -0700"
      },
      "message": "Improved drawing/matrix support in layoutlib\n\n- Make the custom Canvas actually replace the original one so that it\u0027s used\n  even by parts of the framework that allocate their own temp Canvas object.\n- Better support for Matrix: added support for mapPoint() and mapRect(), and invert()\n- Implemented drawBitmap() with a Matrix, and made the paint object not NPE when null.\n"
    },
    {
      "commit": "7953e7d89b1d4d7297176fbb6aeea882577df8e6",
      "tree": "f7a4e9a4338fa276ec827e5fc7f519ae16877957",
      "parents": [
        "fe6e733a01b1ab8a6c7b651c65bf7abeb97f9525"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 17:20:18 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 17:20:18 2009 -0700"
      },
      "message": "Mock ServiceManager and AccesibilityManager to make the view renders in ADT\n\nBUG: 2049348\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "b798689749c64baba81f02e10cf2157c747d6b46",
      "tree": "da394a395ddb1a6cf69193314846b03fe47a397e",
      "parents": [
        "f013e1afd1e68af5e3b868c26a653bbfb39538f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
