)]}'
{
  "log": [
    {
      "commit": "f7270ba9083e5b0069f73fc88aec439ab439275b",
      "tree": "23d213439821ac7ecbb377d1c0e4dbb9d332063c",
      "parents": [
        "58915ce9222b18064b4de0be7c23c488b52eaee5"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Mon Dec 05 14:26:04 2011 -0800"
      },
      "committer": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Mon Dec 05 14:26:04 2011 -0800"
      },
      "message": "Upgrade layoutlib generation code to use ASM 4.0\n\nChange-Id: I46b3854a05677dc7cadd217efb001dbb25631fbd\n"
    },
    {
      "commit": "f1dee199a009fec5e3a5d1469f654098261f8b06",
      "tree": "d7dd38d33c0b8d99566731240c6e556b236e991f",
      "parents": [
        "c8f68e5c7ffef3bc6775edf39a251baf79b81f6b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Sep 30 18:08:05 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 03 09:06:07 2011 -0700"
      },
      "message": "Layoutlib: add support for ITextServicesManager.\n\nThis include a fix in layoutlib_create to properly handle\ndelegating a static method of an inner class (was broken and\nonly worked on non static method).\n\nAdded a few comments here and there to *_Accessor classes so\nthat it\u0027s a bit more obvious what they are for and how they are\nused.\n\nChange-Id: Ifc31dd1a006393bb0c08e22b6a17f500dd62e090\n"
    },
    {
      "commit": "7f9f99ea11051614a7727dfb9f9578b518e76e3c",
      "tree": "d39b916bb092a717e028345813b53f6bcfa12f61",
      "parents": [
        "7277f3b9b26f0011475b39da1298484a510aca29"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 11 10:16:17 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 11 12:57:51 2011 -0700"
      },
      "message": "Make some methods/fields package private so that layoutlib can access them.\n\nChange-Id: I4aeadfbaf8a4f6a459fa19937c21ac23d9e5fb64\n"
    },
    {
      "commit": "ea670054d6c5b59b8481cbf796e6a1cd9f38b672",
      "tree": "9e9a732c3a9034074ea755782650185b01d418d0",
      "parents": [
        "95b0292fb4e27a9dc273884be60dad8523b8bd7a"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Aug 09 11:22:59 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Aug 09 11:25:25 2011 -0700"
      },
      "message": "Implement native println_native in android.util.Log for LayoutLib\n\nChange-Id: I2ab83a131468490cf789bf17f9c12b6360e953a4\n"
    },
    {
      "commit": "d2f664d42cc29507b01a98622298b69131463825",
      "tree": "21379de5fe0625ffcfb9e776dafef6d1e2614f6f",
      "parents": [
        "f7be31ee1062722855602c6b0227f01bdb7c0b80"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jul 29 17:41:39 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 01 15:08:26 2011 -0700"
      },
      "message": "Misc layoutlib fix in preparation of the access change in framework code.\n\nChange-Id: I873adb7345514be6daa5c4fea4ebabb515f203e2\n"
    },
    {
      "commit": "4f727fbdc302946b9b677e2518350dd3574d198a",
      "tree": "66cab48f2a59ec8de46001b97024133ba77d4332",
      "parents": [
        "fa93052d91ab6e6da3195ce3872c4543beb6d5c9",
        "ed07215e482cae1ffedbba707284821b3afc310f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 25 17:24:56 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 25 17:24:56 2011 -0700"
      },
      "message": "am ed07215e: am 55775e5f: am e70b2b8f: am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u0027ed07215e482cae1ffedbba707284821b3afc310f\u0027:\n  Layoutlib_create flag -p: don\u0027t change all accesses to public.\n"
    },
    {
      "commit": "ed07215e482cae1ffedbba707284821b3afc310f",
      "tree": "0a4b4a868ae68249e5ee9f26a7cc9dea5e66201b",
      "parents": [
        "64ed105957098a900d58e7c2598e060cb37755ce",
        "55775e5f34af8d7c22ab3212c253b3a7d34a6f8a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 25 12:21:17 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 25 12:21:17 2011 -0700"
      },
      "message": "am 55775e5f: am e70b2b8f: am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u002755775e5f34af8d7c22ab3212c253b3a7d34a6f8a\u0027:\n  Layoutlib_create flag -p: don\u0027t change all accesses to public.\n"
    },
    {
      "commit": "e70b2b8fe0c265171f3a367a66c99b36c62567c7",
      "tree": "7bc6330ca5ecd1f2993bb1c0f30ac6e633d77b42",
      "parents": [
        "4f3a8db64d75cd3e88213d3b105dc50fc5bd6262",
        "9bcf26ea7aa108ce4bf4e973b4774d3e60eebafe"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jul 21 16:23:18 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 21 16:23:18 2011 -0700"
      },
      "message": "am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u00279bcf26ea7aa108ce4bf4e973b4774d3e60eebafe\u0027:\n  Layoutlib_create flag -p: don\u0027t change all accesses to public.\n"
    },
    {
      "commit": "caed59d90db8626462baaec351e66b2a3280dc34",
      "tree": "321f7c680bb71591cb2b95fa0afb0449e0c720f3",
      "parents": [
        "d40c93f61ca5b3f2351b8db716f67b58f1625e85"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Tue Jul 19 22:36:13 2011 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Tue Jul 19 22:36:13 2011 -0700"
      },
      "message": "Layoutlib_create flag -p: don\u0027t change all accesses to public.\n\nChange-Id: Icb1709ed0cb275a5a51ca34030695a5e94091499\n"
    },
    {
      "commit": "af64556de0064eeb5a4d4e6d634c3f074f5f40ce",
      "tree": "aaeb6dba4b713c2d7a21621d00555d823104316c",
      "parents": [
        "f2cc48fe8bea26bd07cb943b8308a19336536867"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 19 15:10:23 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 19 15:10:23 2011 -0700"
      },
      "message": "Layoutlib: misc fix + start of AndroidBidi support.\n\nChange-Id: If2ce0b683da8cce01679322d503eed8dd474e521\n"
    },
    {
      "commit": "96131eef3869f2be1300e1620f5c3874b41bb534",
      "tree": "8c378e7302477213510655ec5b9bae290de9f744",
      "parents": [
        "0a49635b171f3ba366b1a7ebf28791c4661829bd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 12:35:50 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 12:35:50 2011 -0700"
      },
      "message": "LayoutLib: updated fake accessbility manager and ensure there\u0027s an InputMethodManager\n\nWe had replaced the accessibility Manager but it lacked some new API. Obvisouly\nthis is fragile and should be fixed, but this works for now.\n\nAfter fixing this there was another issue with the lack of InputMethodManager.\nTo fix this I had to create an implementation of IInputMethodManager which\nnormally comes from a binder object.\n\nI may want to do a similar trick with the accessibility manager later.\n\nChange-Id: I28c6494e333f39072f348d0199124efac93256a5\n"
    },
    {
      "commit": "0a49635b171f3ba366b1a7ebf28791c4661829bd",
      "tree": "5130ff1f492eb1b37beac8a72b1075099738cec4",
      "parents": [
        "77eaa10949dd47532e262f8e74ad5a1536a4952e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 11:39:27 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 11:49:22 2011 -0700"
      },
      "message": "LayoutLib: Delegate for Display and IWindowManager implementation.\n\nThis allows ViewConfiguration to be properly implemented which is now\nrequired for the rendering to happen.\n\nChange-Id: I55629689fa8f5f874b43fcac2aa0789ce02d58f4\n"
    },
    {
      "commit": "f9705ef6d3f1502991dd312bfdbfb93cb07fe672",
      "tree": "d140e69c031dc236ed383df4b4fb091b79ba4fe9",
      "parents": [
        "4333de2a8e878b319c0e779942b87c042804d352",
        "2b5f2d01558ba338042f486c754f63873c4061fe"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Wed Jun 22 18:05:22 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 22 18:05:22 2011 -0700"
      },
      "message": "am 2b5f2d01: am e2b41b0d: Merge \"Laoutlib_creator: keep original of delegate methods.\"\n\n* commit \u00272b5f2d01558ba338042f486c754f63873c4061fe\u0027:\n  Laoutlib_creator: keep original of delegate methods.\n"
    },
    {
      "commit": "2b5f2d01558ba338042f486c754f63873c4061fe",
      "tree": "17b56eb49a6383f0ca1d1f626a31bc85f1db0129",
      "parents": [
        "9e5d0de9a333683533a021e9733e824cac666d18",
        "e2b41b0d5c8db85a60cd190c7094052db61114b2"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Wed Jun 22 17:44:29 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 22 17:44:29 2011 -0700"
      },
      "message": "am e2b41b0d: Merge \"Laoutlib_creator: keep original of delegate methods.\"\n\n* commit \u0027e2b41b0d5c8db85a60cd190c7094052db61114b2\u0027:\n  Laoutlib_creator: keep original of delegate methods.\n"
    },
    {
      "commit": "865c3bef54228a353fd449a093b0c8d155618296",
      "tree": "c93e90facdad4fbabb288960427874bd6e7dd2bf",
      "parents": [
        "94062517ae5573f9a1a877a83fe7d8e6d1a2c350"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Fri Jun 17 17:12:52 2011 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Fri Jun 17 19:07:13 2011 -0700"
      },
      "message": "Laoutlib_creator: keep original of delegate methods.\n\nFor specific methods, Layoublib_create can rewrite the implementation\nof a method to invoke a delegate instead of the original code. This\nallows layoutlib to implement native code or override existing behavior.\n\nThis patch also \u0027saves\u0027 the original implementation of a rewritten\nmethod so that the delegate can access the original implementation\nas needed. Obviously this is only done for non-native methods.\n\nGiven a non-native SomeClass.MethodName, we generate 2 methods:\n- A copy of the original method named \"SomeClass.MethodName_original\".\n  The content is the original method as-is from the reader.\n- A brand new implementation of SomeClass.MethodName which calls to a\n  non-existing method named \"SomeClass_delegate.MethodName\".\n  The implementation of this \u0027delegate\u0027 method is done in layoutlib_brigde.\n\nChange-Id: I5ca2cd3ac55991a8e8a51c417e75ee447bf9e9e6\n"
    },
    {
      "commit": "fb93ce9684120a36862b5b5e67b1865a652907e9",
      "tree": "41238180f5a041996b7f7f8204c2b33f3d8ef20a",
      "parents": [
        "bd754205d0b59315582855329649dad925a04b82"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 03 19:38:03 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 03 19:38:14 2011 -0700"
      },
      "message": "Import the Layoutlib from hc-mr1.\n\nThis is squash commit of all the missing patches.\n\nChange-Id: Ie081c46a173290646deddbde503a720d50c4400f\n"
    },
    {
      "commit": "156a211b21fbaeb6391162a056390b9cd8748fae",
      "tree": "8160f75bb58fa7317256f1ba09530573686ef9f9",
      "parents": [
        "21726044a934f3f4f9827a05bbc8db2477220fa1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 03 17:25:48 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 03 18:37:09 2011 -0700"
      },
      "message": "Cherrypick d1ed33c4 from hc-mr1. do not merge.\n\nFix zombie threads in the Layoutlib.\n\nSome widgets can create (indirectly) HandlerThread which are started\nbut never stopped.\n\nThis patch use the delegate methods to override the thread run method\nto record which threads are started to be able to call quit() on them\nafter a render.\n\nNote that we should really fix layoutlib_create to be able to call\nthe default implementation from a delegate to remove code duplication.\n\nChange-Id: Iaf5432623e9704bb3114a8e0583c8553282c205e\n"
    },
    {
      "commit": "4c1e73b69a13a4f24a8fc123f599a9e9d8505525",
      "tree": "8f4ce5d09c152fee925aec054df1411294f65558",
      "parents": [
        "f791863f0ac67ab6abd7410d5807d716cffc5b72"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu May 19 20:34:28 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri May 20 14:50:45 2011 -0700"
      },
      "message": "Merge e57aa434 from honeycomb-mr1. do not merge.\n\nLayoutLib: Fix issue where \u003cinclude\u003e with no layout params wouldn\u0027t display.\n\nThe issue is that the layout params from the root element of the included\nlayout should be used but this failed because loading the layout params\nfrom the \u003cinclude\u003e tag didn\u0027t throw a RuntimeException in our modified\ncode (BridgeTypedArray).\n\nBecause we don\u0027t want to throw exception in general we only throw it\nwhen reading the layout params of an include node which is pretty crappy,\nbut works for now.\n\nChange-Id: I83ccf956e8b476f34dfc9a70aebae2288d53746e\n"
    },
    {
      "commit": "031d2f8b6db5bf7b249ae1c9a72915bf2d3a8d7b",
      "tree": "1d1a79124aeadc198088be178a3dea7d8d804e5e",
      "parents": [
        "4b52ec49fee79b0488d6a9eaaa4ea5d74ce90905"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 21:30:53 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 19:47:18 2011 -0800"
      },
      "message": "LayoutLib: Adapt the HC layoutlib to GB. do not merge.\n\nChange-Id: I0b2016987a65fabbc0ce7011514543349e9fb929\n"
    },
    {
      "commit": "4b52ec49fee79b0488d6a9eaaa4ea5d74ce90905",
      "tree": "5b37f5bc58ed3bacbc8536aabcc7e08a57776801",
      "parents": [
        "2050de5b9a5c097e30545ab822211d49031bd9dc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 21:08:10 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 19:47:02 2011 -0800"
      },
      "message": "LayoutLib: Original import of Honeycomb\u0027s layoutlib. do not merge.\n\nframeworks/base.git @ f0a53435f14d23d9555fc46014352ee6a7baa647\n\nChange-Id: Ibc215751693dc7650683b61bb458f7c8beaf8060\n"
    },
    {
      "commit": "13bdc3355c781dc2614f2810a42d3a9e73f5bed9",
      "tree": "b40424e57a6011ff0b0febf0fa39a13f6bfb0269",
      "parents": [
        "fd18f573280bbbcc549b35b548580a562bd960e2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 06 10:58:16 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 06 10:58:16 2011 -0800"
      },
      "message": "LayoutLib: improved rendering for system/title/action bars.\n\nChange-Id: I926531e9ad4a7b98e04e23cac3837794f7c89449\n"
    },
    {
      "commit": "779c906592b67867fee83a6527d474c333a701ff",
      "tree": "67e2e74f018aec24b986a2bea45f3ebc6214fa66",
      "parents": [
        "b85787411085bbea0ac725135cae02a4167b7aa7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 16:40:49 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 16:40:49 2011 -0800"
      },
      "message": "LayoutLib: Replace custom BitmapFactory by a simpler delegate\n\nChange-Id: Ie61a0a5b4426e64bb71a22d76d05efa4c0865e5e\n"
    },
    {
      "commit": "345f866bfd09476fd62aa10345a0670cc110b63c",
      "tree": "18010b88cd0efbbc1799378b1f78ddbb02e06583",
      "parents": [
        "1bf518d8b333768e26bacf340f88f7d4ba8b9a91"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 02 11:50:34 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 02 14:04:50 2011 -0800"
      },
      "message": "Make TimePicker/DatePicker/CalendarView render in Eclipse.\n\nChange-Id: Id5313a6f0f53bf45f6eaabc0e10fcf0660eeac08\n"
    },
    {
      "commit": "811820f440b24db200e66874d42331023b7cd389",
      "tree": "474c8f6c1d1f5df3a593c8cebe4bfd8c4dbf9258",
      "parents": [
        "c1eb127f4e19c1f86e4b18c2c1daebe2404eeb93"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Thu Jan 27 16:48:27 2011 -0800"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Jan 31 13:16:04 2011 -0800"
      },
      "message": "LayoutLib.Create: support Outer_Inner_Delegate renaming.\n\nWhen generating delegates, LayoutLib.Create support renaming\ninner classes. Only one level of inner class is supported.\n\nThe method Outer$Inner#get(...) generates a call to:\n  static Outer_Inner_Delegate#get(Outer instance, Outer$Inner instance, ...)\n\nChange-Id: Ie70f2b8e5e5f311ed9c7f26b7f64637ae6157a51\n"
    },
    {
      "commit": "7d7016e72431ad7ee595d857a19231c69efeb6de",
      "tree": "3acf19d320c2035ac1cc5bcf0efe126f03a72f3c",
      "parents": [
        "315fae2028d4ef73c9ba094a71152e6e853e2690"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 25 15:55:16 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 25 15:55:16 2011 -0800"
      },
      "message": "LayoutLib: return ViewInfo for all merged items + Build init.\n\nandroid.os.Build is now initialized from the build properties\nparsed from the SDK build.prop file.\n\nChange-Id: If16953215ca90fb0beacb51bf405b89a5c8a34fa\n"
    },
    {
      "commit": "82b9232565bfececdb643a94cecdd1bd1cb5c643",
      "tree": "966746b27fd9d02ec000db9fc7be2c75628224be",
      "parents": [
        "67005b05cc76a38a5b3bf6e83957dd03619e9126"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 24 14:03:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 24 14:14:53 2011 -0800"
      },
      "message": "LayoutLib: Use special view cookie for include-merge case.\n\nAll items directly under the \u003cmerge\u003e tag now return the view cookie\nof the referencing \u003cinclude\u003e tag using a special class for\neasy differentiation in the calling client.\n\nChange-Id: I7a2a4e642be9564f47e256fd1586012497d34792\n"
    },
    {
      "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"
    }
  ]
}
