)]}'
{
  "log": [
    {
      "commit": "d3fe9abfb9a6a21a18abde6a98dceb423c04ebef",
      "tree": "35cadfcae72edfa6d0bff057bfd84a2e60857edd",
      "parents": [
        "865534a0e30982b0e669006509b9590fad129295",
        "ab9601cdbb95ae94088750eff9a926a572c1a4d6"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jan 20 15:48:21 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 15:48:21 2012 -0800"
      },
      "message": "am ab9601cd: am 230a7092: Merge \"Fix 5863053: Add method to lock screen immediately.\" into ics-mr1\n\n* commit \u0027ab9601cdbb95ae94088750eff9a926a572c1a4d6\u0027:\n  Fix 5863053: Add method to lock screen immediately.\n"
    },
    {
      "commit": "d2f0dcd182fbc0423d206919e81f3845fb9b8155",
      "tree": "1c2e12890b625fc29a26b7bb67cd485b04f45a8c",
      "parents": [
        "bad12166190a7e8087eb5db0ae8df9a4e5843fde",
        "68fc1dfce050f1406f751e71cadd1b9fdb0f825c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 17:42:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 17:42:10 2012 -0800"
      },
      "message": "Merge \"Remove unused code\""
    },
    {
      "commit": "68fc1dfce050f1406f751e71cadd1b9fdb0f825c",
      "tree": "b77dabe0c0ded8067cafb5278fe4cfc5a4ed002a",
      "parents": [
        "f9d9c065ed75f1196316a9a31f92309f602cef76"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 17:41:39 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 17:41:39 2012 -0800"
      },
      "message": "Remove unused code\n\nChange-Id: Ife0a43f3cfe64a1e74401b10bf74d37cbeefb5af\n"
    },
    {
      "commit": "5bf2802ad9de237ccc014489dd36ff4baadadfaa",
      "tree": "b1a7d91193d66de13924be8d0b58d9637ed2a76e",
      "parents": [
        "170bfe32ab8971805d56f8870758cbc46060d1ef"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 18 17:08:53 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 18 17:08:53 2012 -0800"
      },
      "message": "Fix broken drawCircle LayoutLib.\n\nChange-Id: I5e23bbe0119e385fa2f77854a8f88128351d3759\n"
    },
    {
      "commit": "93c518e4f8abd98f87cda1712b30a5a86cfa60dd",
      "tree": "fd9e7459bf5a228aef50826097a2cc714b8a6013",
      "parents": [
        "ff321d496a6a07fc667112ecfe4d9a107d44147b"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 17 15:55:31 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 17 18:11:05 2012 -0800"
      },
      "message": "Fix 5863053: Add method to lock screen immediately.\n\nThis fixes a bug where the device fails to lock when DevicePolicyManagerService\nrequests the device to be locked and the screen was off because the user hit\nthe power button.\n\nThe change allows DPMS to directly invoke screen lock, bypasssing the screen state.\n\nChange-Id: Iecdda6fc61e9c519119de495be23c69c3b983921\n"
    },
    {
      "commit": "e98ae0a050d6ce4b3e2aec7c070a87922086c256",
      "tree": "1f2b043f9f7ee1425499fddf5c50d5125f5760c3",
      "parents": [
        "7f2e21b6f4de96c8be986b5ec02200fac464f814",
        "f7270ba9083e5b0069f73fc88aec439ab439275b"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Dec 06 13:31:04 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 06 13:31:04 2011 -0800"
      },
      "message": "Merge \"Upgrade layoutlib generation code to use ASM 4.0\""
    },
    {
      "commit": "96e942dabeeaaa9ab6df3a870668c6fe53d930da",
      "tree": "c2bee431f14b90422586d0dc1e7d77256474fadb",
      "parents": [
        "0a0a1248cfc03940174cbd9af677bafd7280a3bc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Nov 30 19:55:01 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Dec 05 16:39:59 2011 -0800"
      },
      "message": "Use a Choreographer to schedule animation and drawing.\n\nBoth animations and drawing need to march to the beat of\nthe same drum, but the animation system doesn\u0027t know\nabgout the view system and vice-versa so neither one\ncan drive the other.\n\nWe introduce the Choreographer as a drummer to keep\neveryone in time and ensure a magnificent performance.\n\nThis patch enabled VSync based animations and drawing by\ndefault.  Two system properties are provided for testing\npurposes to control the behavior.\n\n\"debug.choreographer.vsync\": Enables vsync based animation\ntiming.  Defaults to true.  When false, animations are\ntimed by posting delayed messages to a message queue in\nthe same way they used to be before this patch.\n\n\"debug.choreographer.animdraw\": Enables the use of the animation\ntimer to drive drawing such that drawing is synchronized with\nanimations (in other words, with vsync or the timing loop).\nDefaults to true.  When false, layout traversals and drawing\nare posted to the message queue for execution without any delay or\nsynchronization in the same way they used to be before this patch.\n\nStubbed out part of the layoutlib animation code because it\ndepends on the old timing loop (opened bug 5712395)\n\nChange-Id: I186d9518648e89bc3e809e393e9a9148bbbecc4d\n"
    },
    {
      "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": "c0b7f65ae0594e19d1272e5caf2d83638041d19c",
      "tree": "cc78ccc95a642e060a8a3d96218f1e312ad957e9",
      "parents": [
        "cb52d6760078197cd6d0c16349348dd2ad16a88c",
        "496f6e2ad656c5bb8a277e191554d16abd290b58"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 28 16:57:17 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 28 16:57:17 2011 -0800"
      },
      "message": "am 496f6e2a: am b54980d1: Merge \"Fix issue #5588689: Black camera preview after coming back from gmail\" into ics-mr1\n\n* commit \u0027496f6e2ad656c5bb8a277e191554d16abd290b58\u0027:\n  Fix issue #5588689: Black camera preview after coming back from gmail\n"
    },
    {
      "commit": "6d05fd3c795088ac60f86382df5a66d631e8a0cb",
      "tree": "c6363c2b687619f594e95b4b67b83c3d015dab58",
      "parents": [
        "e35581ad5ad635f9dcfe4ab6a432c48b46b782cd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Nov 19 14:36:15 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 28 14:45:50 2011 -0800"
      },
      "message": "Fix issue #5588689: Black camera preview after coming back from gmail\n\nMake surface management between SurfaceView and the window manager\nmuch more controlled, to ensure that SurfaceView always gets to report\nthe current surface is destroyed before the window manager actually\ndestroys it.\n\nAlso a small tweak to allow windows that have a wallpaper background\nto still have a preview window.  This makes launching home after it\nhas been killed feel much more responsive.\n\nChange-Id: I0d22cf178a499601a770cb1dbadef7487e392d85\n"
    },
    {
      "commit": "8836c55818937ba00f186075eb7efb6462191113",
      "tree": "baab13b80a6e58f4648a612840ecf2adff662791",
      "parents": [
        "688ff9a7d6c42d4b26f1a72f963d09203f774c3f"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Nov 01 11:51:20 2011 -0700"
      },
      "committer": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Nov 01 11:51:20 2011 -0700"
      },
      "message": "Set theme-tag in render log when failing to find style\n\nChange-Id: I20461a7113eb25469deca13dca870936bdb33a29\n"
    },
    {
      "commit": "0c4ccff36930ff4f0292b94ad51e164c9fa060a3",
      "tree": "062b194978f180d67b352cc64b552a485bdead62",
      "parents": [
        "70ac412b2fe7be2507189a9fdfb30c43b36d56ac"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Oct 19 16:39:14 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Oct 19 16:39:14 2011 -0400"
      },
      "message": "Add hasNavigationBar() to the window manager.\n\nIt is no longer sufficient to check the value of\ninternal.R.bool.config_showNavigationBar to determine if a\nnavigation bar (separate from the status bar) is shown on a\ndevice, because the emulator needs to be able to override\nthis value (now possible by setting qemu.hw.mainkeys to \"1\"\nor \"0\", for navbar or no navbar, respectively).\n\nThis logic is now contained in PhoneWindowManager, and any\nclients wishing to know whether the system has a software\nnav bar should consult the new hasNavigationBar() method.\n\nBug: 5404945\nChange-Id: I119d32a8c84b88b2ef46f63244e7f11dc5de0359\n"
    },
    {
      "commit": "d2183654e03d589b120467f4e98da1b178ceeadb",
      "tree": "c52368d929521fd0d7182dc3cf53f8e4b37ed25f",
      "parents": [
        "1d8e7d640ad5ed6fe82bca017293dd89169f1c2e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 09 12:39:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 09 22:10:36 2011 -0700"
      },
      "message": "Fix ownership of CursorWindows across processes.\nBug: 5332296\n\nEnsure that there is always an owner for each CursorWindow\nand that references to each window are acquired/released\nappropriately at all times.\n\nAdded synchronization to CursorToBulkCursorAdaptor to\nprevent the underlying Cursor and CursorWindow from being\nremotely accessed in ways that might violate invariants,\nresulting in leaks or other problems.\n\nEnsured that CursorToBulkCursorAdaptor promptly releases\nits references to the Cursor and CursorWindow when closed\nso they don\u0027t stick around longer than they should, even\nif the remote end hangs onto the IBulkCursor for some reason.\n\nCursorWindow respects Parcelable.FLAG_WRITE_RETURN_VALUE\nas an indication that one reference to the CursorWindow is\nbeing released.  Correspondingly, CursorToBulkCursorAdaptor\nacquires a reference to the CursorWindow before returning\nit to the caller.  This change also prevents races from\nresulting in the transfer of an invalid CursorWindow over\nthe wire.\n\nEnsured that BulkCursorToCursorAdaptor promptly releases\nits reference to the IBulkCursor when closed and throws\non attempts to access the cursor while closed.\n\nModified ContentProviderNative to handle both parts of\nthe wrapping and unwrapping of Cursors into IBulkCursors.\nThis makes it a lot easier to ensure that the right\nthings happen on both ends.  Also, it turns out that\nthe only caller of IContentProvider.bulkQuery was\nContentProviderNative itself so there was no need\nto support bulkQuery on ContentProviderProxy and it was\njust getting in the way.\n\nImplement CloseGuard on CursorWindow.\n\nChange-Id: Ib3c8305d3cc62322f38a06698d404a2989bb6ef9\n"
    },
    {
      "commit": "85b9edf2da0534bc53d139bb88cda8866d265afe",
      "tree": "a0a50380b9f263103fbc99c6622f40e7541d95f8",
      "parents": [
        "7853c579fa52e4365c6e44ba38aeb3299d776f44",
        "9a230e01a1237749a8a19a5de8d46531b0c8ca6a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 06 15:15:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 06 15:15:32 2011 -0700"
      },
      "message": "Merge \"Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately\""
    },
    {
      "commit": "9a230e01a1237749a8a19a5de8d46531b0c8ca6a",
      "tree": "c62734c0dcd00cc9add7c70bd60e8946e0915735",
      "parents": [
        "fe7fcd23d5b306db7b1fb31c901cbcbb6b66db1d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 06 11:51:27 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 06 14:57:37 2011 -0700"
      },
      "message": "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately\n\nThis cleans up how ui flags are managed between the client and window manager.\nIt still reports the global UI mode state to the callback, but we now only clear\ncertain flags when the system goes out of a state (currently this just means the\nhide nav bar mode), and don\u0027t corrupt other flags in the application when the\nglobal state changes.\n\nAlso introduces a sequence number between the app and window manager, to avoid\nusing bad old data coming from the app during these transitions.\n\nChange-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23\n"
    },
    {
      "commit": "2447871b99e6b10a68985f037420eb77cabe4d29",
      "tree": "34138acbfb7fff8d2362bf348cb97a048279326b",
      "parents": [
        "4dfce20cac7492882d366d053006795aefad59da"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 05 18:01:23 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 05 18:04:48 2011 -0700"
      },
      "message": "Fix build.\n\nChange-Id: I7bb00b8ee0da952f3697b23dccf32dde55733b7a\n"
    },
    {
      "commit": "d410bfb2001e7960a27fe6adb9d56f229e70fe5c",
      "tree": "5c44ddfed050a89911e907fdc61e0aa7ed48bbde",
      "parents": [
        "e5493f31152ebb2e9c9818699ba6f853a9a59894"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 19:39:18 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 19:39:18 2011 -0700"
      },
      "message": "LayoutLib: fix support for textScaleX.\n\nChange-Id: I821191a40012e9727b4a3573d580483c3ae1de48\n"
    },
    {
      "commit": "14094097329b3bdcbf26392141111d74c8b89718",
      "tree": "9a41ea4a27d5bb311916b66c0f756055f97c78cf",
      "parents": [
        "178006a0e05b41b4c4de93aec30368a9102ca140"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 03 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 18:24:30 2011 -0700"
      },
      "message": "Layoutlib: Typeface support for loading fonts manually.\n\nIf the font being loaded is a system font, then we can find the font\nfile and manually load it.\n\nChange-Id: I95473b1f1b88df64316b77c41ed05d4d09ab61ed\n"
    },
    {
      "commit": "178006a0e05b41b4c4de93aec30368a9102ca140",
      "tree": "5261679b7d2ae70313d6896a54b6301c69a13179",
      "parents": [
        "3c1951c442e40f7f46775acfc8a22c24f04d8cfc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 18:01:07 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 18:02:10 2011 -0700"
      },
      "message": "Layoutlib now parses system_fonts.xml instead of its own.\n\nAlso parse fallback_fonts.\nThis lets layoutlib automatically use the same fonts as the base\nplatforms, for instance it now uses the new ICS fonts.\n\nChange-Id: Id6e778dc0e3f2a9112601e0eaf8499a9713ec433\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": "387d078e64f3bcc8284732287bc3f26fce856a88",
      "tree": "3c430fa19acfd740b0e6ec376e5a48649f051a16",
      "parents": [
        "ee1d541ec89e1d2724a382c90276586e2c28b278"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Sep 29 18:33:50 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Sep 29 18:33:50 2011 -0700"
      },
      "message": "LayoutLib: Fix native delegate for Display.\n\nChange-Id: If097cae2309d340162b3bac1d0f6a2289635adca\n"
    },
    {
      "commit": "90c52de28691ca0bbbf7c039ef20f85ce46882cc",
      "tree": "3a6dcf93f186f44561a312927d7fe2e97e45f6d4",
      "parents": [
        "67c5b1251178532726964c2e0f4229d079ff0a3e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 23 12:57:44 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 23 13:39:33 2011 -0700"
      },
      "message": "Fix issue #5173952: Opening a Notification From Lock Screen...\n\n...Should Skip Unsecure Lockscreen (ICS)\n\nAlso while I am in there, clean up logging of intent objects to include\neven less sensitive information, while showing the true Intent in dump\noutput (since apps can\u0027t get to that).\n\nChange-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e\n"
    },
    {
      "commit": "01a98ddbdfbaf1f0d2bc602537e6e314364902a3",
      "tree": "ce904db3ee0772e0e2a35882a6cf86c7b9fcd84e",
      "parents": [
        "04ef5b8dd7262ee90b56df9c992f103695d0a21c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 20 15:08:29 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 21 19:26:15 2011 -0700"
      },
      "message": "Handle orientation changes more systematically.\nBug: 4981385\n\nSimplify the orientation changing code path in the\nWindowManager.  Instead of the policy calling setRotation()\nwhen the sensor determined orientation changes, it calls\nupdateRotation(), which figures everything out.  For the most\npart, the rotation actually passed to setRotation() was\nmore or less ignored and just added confusion, particularly\nwhen handling deferred orientation changes.\n\nEnsure that 180 degree rotations are disallowed even when\nthe application specifies SCREEN_ORIENTATION_SENSOR_*.\nThese rotations are only enabled when docked upside-down for\nsome reason or when the application specifies\nSCREEN_ORIENTATION_FULL_SENSOR.\n\nEnsure that special modes like HDMI connected, lid switch,\ndock and rotation lock all cause the sensor to be ignored\neven when the application asks for sensor-based orientation\nchanges.  The sensor is not relevant in these modes because\nsome external factor (or the user) is determining the\npreferred rotation.\n\nCurrently, applications can still override the preferred\nrotation even when there are special modes in play that\nmight say otherwise.  We could tweak this so that some\nspecial modes trump application choices completely\n(resulting in a letter-boxed application, perhaps).\nI tested this sort of tweak (not included in the patch)\nand it seems to work fine, including transitions between\napplications with varying orientation.\n\nDelete dead code related to animFlags.\n\nHandle pausing/resuming orientation changes more precisely.\nEnsure that a deferred orientation change is performed when\na drag completes, even if endDragLw() is not called because the\ndrag was aborted before the drop happened.  We pause\nthe orientation change in register() and resume in unregister()\nbecause those methods appear to always be called as needed.\n\nChange-Id: If0a31de3d057251e581fdee64819f2b19e676e9a\n"
    },
    {
      "commit": "ce801c4a1b1137ca2fd51ede6818722793c79ea4",
      "tree": "1d0c0063c2f5a83f00cee71b9c3a0cde5d4f8d79",
      "parents": [
        "2f7d7c9bdbda2956266492f98b5f95a428225a7d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 18 15:22:24 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 18 15:22:24 2011 -0700"
      },
      "message": "Fix build.\n\nChange-Id: Ife2b4b207270f8017d3acd80c76eaf1c7a50986d\n"
    },
    {
      "commit": "ee5e77cafec2eae70890abdcc1646ed39b06eddd",
      "tree": "761b1fccabd3d49f58470e8694032f552060f9dd",
      "parents": [
        "117999d1f44ec3423369385495ae207898b7b73e"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Sep 02 18:50:15 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Sep 02 19:22:50 2011 +0900"
      },
      "message": "Make setAdditionalInputMethodSubtypes async\n\nBug: 5120261\nChange-Id: Ic7869cfaa5361531e08d58d7dfa5ba0feab0613e\n"
    },
    {
      "commit": "29aae6f36e565b8f2a99f2193597b964bb800ee8",
      "tree": "72d0d0798fe9549ebc82e1766464d1fe3ea5233f",
      "parents": [
        "5b56f7d6f662a543d0432a46047a55f1ee900994"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 18 18:30:09 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 23 17:44:52 2011 -0700"
      },
      "message": "Fix issue #4279860: previous UI flashes before showing lock screen...\n\n...(when turning display on after recently turning it off)\n\nAlso clean up when we decide to turn the screen on to improve that\ntransition.  There are still problems here with turning it on\nbefore the wallpaper gets dispayed.\n\nChange-Id: I2bc56c12e5ad75a1ce5a0546f43a845bf0823e66\n"
    },
    {
      "commit": "8433c36a98c9f45c37d2c60afc8a6a27514ddf2b",
      "tree": "7f34f034dd8e6e354a97d9970fc4415fa697e164",
      "parents": [
        "110be0f1d9e66e0a40a0084db5ebc4285194a8d7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 22 13:13:16 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 22 13:13:16 2011 -0700"
      },
      "message": "LayoutLib: add native delegate for set/getHinting in Paint.\n\nChange-Id: I1758f8ce861240d72113aa23dcbef5a52abade56\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": "dfee59afb3e4cdcde38f6338f9360655de76da92",
      "tree": "9581ba1b0c6d7c0034e7ff69fcf85071a9244a1c",
      "parents": [
        "5d4967884132647a75d05bcc2ca1f9ce490b372f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Aug 05 20:48:30 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Sun Aug 07 14:17:30 2011 -0700"
      },
      "message": "Fix bug 5011824 - New Holo overflow menu for physical menu key devices\n\nThe new Holo-style overflow menu now appears from the edge of the screen\nwhere the device\u0027s physical menu key can be found. The policy determining\nthis lives in getPreferredOptionsPanelGravity() in WindowManagerService.\n\nChange-Id: I8851a2265547156591e82044e50b5cfc58d3eefa\n"
    },
    {
      "commit": "162c1dcd5e635d17d8425936d7729d0ae5ed1a62",
      "tree": "99ee7975eaa6671bdd10b0055eb7f3348c997b91",
      "parents": [
        "b389bdfba291382f9b306dd0e1bf7ba42fd94a4a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 03 17:20:58 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 03 17:23:12 2011 -0700"
      },
      "message": "Layoutlib: implement Resources.getBoolean(int).\n\nChange-Id: I44cee203bb9a8fabaebfd689fc20ec2f2a9b3561\n"
    },
    {
      "commit": "569ed054042f0350e898b4352694b792b0fdef9b",
      "tree": "430d7f0e59b61567513bea1cff1359a59bd96427",
      "parents": [
        "78a29c9fde5debc4abe3b0f093d35ddfcae60565"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 02 10:44:53 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 02 10:55:18 2011 -0700"
      },
      "message": "Layoutlib: simple comment fix.\n\nChange-Id: I402f6b465706e8edd14e512a973d087a14abbfe3\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": "bc68a59c024bdb745dac8e2ec7408a9f30595f1a",
      "tree": "9b3cfa4dc30eb787cbd828e97f7d816d5a91e68d",
      "parents": [
        "49754db5a304d995c1cc108ff6f19e4ba4265572"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 25 12:58:12 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 25 20:10:12 2011 -0700"
      },
      "message": "Report the external display size to the input reader.\n\nThe input reader needs this information so that it knows how to\ninterpolate touches on an external touch screen.\n\nChanged Display so that it asks the WindowManager what the real\ndisplay size is (as opposed to the raw display size).  This means\nit now takes into the forced display size set by\nadb shell am display-size.\n\nReplaced all calls to getRealWidth() / getRealHeight() /\ngetRealMetrics() in the WindowManager and replaced them with direct\nusages of the mCurDisplayWidth / mCurDisplayHeight so that the WM\ndoesn\u0027t end up making a reentrant Binder call into itself.\n\nFixed the table status bar HeightReceiver so that it updates the\nheight on all configuration changes since it is possible that the\ndisplay size changed independently of an external HDMI display\nbeing plugged / unplugged.\n\nImproved the Display class documentation to make the distinctions\nbetweeen the various sizes clearer.\n\nChange-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b\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": "55775e5f34af8d7c22ab3212c253b3a7d34a6f8a",
      "tree": "87b37b98bfbe1201ed236aef1f563fb914539c04",
      "parents": [
        "e612c881ecf74770098aa9c07d4f0611ac982038",
        "e70b2b8fe0c265171f3a367a66c99b36c62567c7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jul 21 16:25:50 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 21 16:25:50 2011 -0700"
      },
      "message": "am e70b2b8f: am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u0027e70b2b8fe0c265171f3a367a66c99b36c62567c7\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": "91e88122cf28a48fd2e2260da7d3d87dd437227a",
      "tree": "b448f50dfd296574e5dabc6a9393624ad4a39868",
      "parents": [
        "bd029f64f2c695d49ea169f4c5c107e8172a1de5"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Jul 18 11:11:42 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Jul 19 04:59:48 2011 +0900"
      },
      "message": "Enable IMEs to set additional subtypes in background\n\nBug: 4591792\n\nChange-Id: I7e61a576c56d1a3a56001bdf2fd51ad3801add01\n"
    },
    {
      "commit": "37b3cc3bbe33df61f227bcf253aa67a4be441233",
      "tree": "a8886da36bc5f28705379761e7912f62d2ae5b58",
      "parents": [
        "fd909a774cb384b139c5e360cadb2681c3f48c29",
        "9163a4a686fc25fefc77d5b41c24a4538486a48e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 13 14:53:54 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 13 14:53:54 2011 -0700"
      },
      "message": "am 9163a4a6: am aa4b1d8b: am d292d2a0: Merge 36a3a392 from mr1.\n\n* commit \u00279163a4a686fc25fefc77d5b41c24a4538486a48e\u0027:\n  Merge 36a3a392 from mr1.\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": "77eaa10949dd47532e262f8e74ad5a1536a4952e",
      "tree": "217612fa0ac7d51f66e235974287976be8e0a11a",
      "parents": [
        "5623b074977d55a61f29099f44670916c6282e51"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 14:32:26 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 14:40:48 2011 -0700"
      },
      "message": "new button graphics for layoutlib.\n\nChange-Id: I12a6bf9df87552321452ca3344449814cd3102bb\n"
    },
    {
      "commit": "9163a4a686fc25fefc77d5b41c24a4538486a48e",
      "tree": "5ceb5620392bb3ffa4072e5899cb8a95a2a318d0",
      "parents": [
        "3b219a51a9d692807d3fb0f516df81609ca6e4fc",
        "aa4b1d8ba9d5e317b67638b764d92d17fb810aa0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 12:46:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 11 12:46:07 2011 -0700"
      },
      "message": "am aa4b1d8b: am d292d2a0: Merge 36a3a392 from mr1.\n\n* commit \u0027aa4b1d8ba9d5e317b67638b764d92d17fb810aa0\u0027:\n  Merge 36a3a392 from mr1.\n"
    },
    {
      "commit": "d292d2a03134eaca8b51b6313610b4b78de53c83",
      "tree": "a9ab3c83b1b5b5ff11d3d5a8d65aac5b922fb288",
      "parents": [
        "3f3b8cbfa775f2ebff985c069300f8daaeb7a84c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jul 08 11:55:00 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 12:02:51 2011 -0700"
      },
      "message": "Merge 36a3a392 from mr1.\n\nProtect against OOB index in BridgeTypedArray.\n\nChange-Id: I40be1e039f9eb36c182b6522bd50d6ed98e15b5c\n"
    },
    {
      "commit": "842725fc642b7ba2c087cc81796973b838c23c76",
      "tree": "7153de69f4f965e51c0eb8eebc774cfda796dd7a",
      "parents": [
        "9bce27a9ce916bdf363667ee67fc0ce50c533aa3",
        "4d825e1f3bb6b52ecbea6f0c4aa2081b7f1edc89"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 28 18:55:46 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 28 18:55:46 2011 -0700"
      },
      "message": "am 4d825e1f: Merge \"Bring in more layout lib changes from hc-mr1.\" into gingerbread\n\n* commit \u00274d825e1f3bb6b52ecbea6f0c4aa2081b7f1edc89\u0027:\n  Bring in more layout lib changes from hc-mr1.\n"
    },
    {
      "commit": "9bce27a9ce916bdf363667ee67fc0ce50c533aa3",
      "tree": "1946628579b2bd45a0ba2b48440151a2ba68d7df",
      "parents": [
        "155cf6c1e191bb03fe24db8663715862d8e6a43d",
        "4753498d5c1ac3cf93b0730e77946a95b6913a82"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 28 18:55:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 28 18:55:42 2011 -0700"
      },
      "message": "am 4753498d: Merge \"CherryPick 06942bc4 from hc-mr1. do not merge.\" into gingerbread\n\n* commit \u00274753498d5c1ac3cf93b0730e77946a95b6913a82\u0027:\n  CherryPick 06942bc4 from hc-mr1. do not merge.\n"
    },
    {
      "commit": "155cf6c1e191bb03fe24db8663715862d8e6a43d",
      "tree": "9dfacc0c137a1b6e7b8909778a1c7b14679c46b2",
      "parents": [
        "e0947693c9984727dfa775a747dd32aaaeb90284",
        "9918ffb07f47430e22f6e53576d59b599f5a3534"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 28 18:53:54 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 28 18:53:54 2011 -0700"
      },
      "message": "am 9918ffb0: Merge \"CherryPick 988eeeb5 from hc-mr1. do not merge.\" into gingerbread\n\n* commit \u00279918ffb07f47430e22f6e53576d59b599f5a3534\u0027:\n  CherryPick 988eeeb5 from hc-mr1. do not merge.\n"
    },
    {
      "commit": "b02367778d451e38509ca1fc3fbc1d01dce6af1e",
      "tree": "f12ac14175b927f9bf93b6bd95822c908f5aba97",
      "parents": [
        "996bdbaaf0b532c77c10a1efea3b17eb50f416db",
        "f9705ef6d3f1502991dd312bfdbfb93cb07fe672"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Thu Jun 23 14:30:25 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 23 14:30:25 2011 -0700"
      },
      "message": "am f9705ef6: am 2b5f2d01: am e2b41b0d: Merge \"Laoutlib_creator: keep original of delegate methods.\"\n\n* commit \u0027f9705ef6d3f1502991dd312bfdbfb93cb07fe672\u0027:\n  Laoutlib_creator: keep original of delegate methods.\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": "98e1e18c1cc1ec98a20dbdf0e6497614aacf3d0a",
      "tree": "25d41dabda547c9e2a1a060d8720e8d3ee4de2be",
      "parents": [
        "8969d9924c662ab4cdacc342bbdc33756db730be"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 22 11:35:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 22 11:35:11 2011 -0700"
      },
      "message": "Fix build.\n\ngit cherry-pick --no-commit  22a614142aacce13fc46a0e524dbfb6ca56bf237\n\nChange-Id: I1409bc3dd1f1b3027c12355e8b6aeffa2d857c83\n"
    },
    {
      "commit": "e86c5b2e9fe79f2a6f4187b6a4f2769c0b64168b",
      "tree": "607c8bedafd3f300962d776b97ee84a209917690",
      "parents": [
        "157c74e7ace77ae026cb59f48e400fb4ffe3c529",
        "fc511683b6647295cb645a0118d1b0afd575b3c3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 21 12:19:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 21 12:19:07 2011 -0700"
      },
      "message": "Merge \"Add missing delegate to the layoutlib.\""
    },
    {
      "commit": "3523325159c083140ba51d36f46270f6adddad77",
      "tree": "59e5bd628f656bd4adbc4d96b26cc517fd0c7836",
      "parents": [
        "31e92e4f19367bd791c1d962a2627f59eab2ab86",
        "01f0fd84d085f90ca73e9091618ab3d98b5e1c4a"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Tue Jun 21 11:27:29 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 21 11:27:29 2011 -0700"
      },
      "message": "Merge \"Include testdata in layoutlib-tests.\""
    },
    {
      "commit": "fc511683b6647295cb645a0118d1b0afd575b3c3",
      "tree": "14d0c9916008cf406dc45c64ffd10f6e0c319de6",
      "parents": [
        "e2b801e5a437d75151d70a90e73f5f110d8732dd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 21 11:03:29 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 21 11:03:29 2011 -0700"
      },
      "message": "Add missing delegate to the layoutlib.\n\nChange-Id: I8de5c1093052c40c0cd327a4d02b01651d3b76b5\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": "01f0fd84d085f90ca73e9091618ab3d98b5e1c4a",
      "tree": "c87cda4143344bc8aa8dd7efab63432c9910611c",
      "parents": [
        "576715c75987b64eff120f8800862815753b0c8a"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Jun 17 17:03:20 2011 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Jun 17 17:03:20 2011 -0700"
      },
      "message": "Include testdata in layoutlib-tests.\n\nChange-Id: I79fff895a13d171079b59db54d4b9d2bec555b3c\n"
    },
    {
      "commit": "ea5f0d0543a2ea78ecb0aa3d080098942ba3a4df",
      "tree": "29029f0d4b315b537ba876369efb629750a19c0d",
      "parents": [
        "d6465e10c27140647e02be8160d900d6e7e78441"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 09 19:14:06 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 18:26:25 2011 -0700"
      },
      "message": "Bring in more layout lib changes from hc-mr1.\n\nfe051bb2 : Change the way the layoutlib instantiate its XmlPullParser.\n\nA lot of the init code was duplicated so I made a ParserFactory class.\n\nAlso created an extension of the KXmlPullParser to override toString().\nThis allows easier debugging when dealing with multiple parsers (which\nis always the case).\n\nAlso added some (disabled) debugging printf to deal with parser stack\nas it can be tricky figuring out which parsers are in the stack at\nwhich point.\n\n8969147c : Fix case where the int[] attrs doesn\u0027t directly match a styleable.\n\nIn the case of the FastScroller the int[] is a custom mix of attr\ninstead of a int[] that exists as R.styleable.foo.\n\nThis makes our reflection based mechanism used to find the styleable\nfail, so instead we search for each attribute separately (like\nwe probably should have done from the beginning).\n\n0c264b35: Fix various cases of getDimension to report error if unit is missing.\n\nif getDimention###() is called for a string that has no unit,\nthen an error is output through LayoutLog, but the rendering keeps\ngoing by using dp as a default.\n\n0beb7eea: Make (Bridge)TypedArray.getInteger() call out to getInt()\n\nOnly getInt() resolved attribute flags/enum and I\u0027m not sure why\nthere\u0027s two to begin with.\n\nChange-Id: I015111263d2a2bee76834978ae71eef79defdae3\n"
    },
    {
      "commit": "d6465e10c27140647e02be8160d900d6e7e78441",
      "tree": "9d1d07ec308956d7329535b57d89fb7c46117567",
      "parents": [
        "6b62c82848b9823a26fc107deef8227d9cd516a6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:48:35 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 18:26:25 2011 -0700"
      },
      "message": "CherryPick 06942bc4 from hc-mr1. do not merge.\n\nLayoutlib - use the new getParser callback when possible.\n\nChange-Id: I72b867aa573fcc07d610f139da3c90b1b654633c\n"
    },
    {
      "commit": "6b62c82848b9823a26fc107deef8227d9cd516a6",
      "tree": "a55d9486ce41b9e1be56551d4e0c0dd082a16f05",
      "parents": [
        "ec15afca08fcc342d6f22cf02a21975af13091cf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:03:10 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 18:26:24 2011 -0700"
      },
      "message": "CherryPick 988eeeb5 from hc-mr1. do not merge.\n\nSupport for custom declare-styleable attr with enum/flag in layoutlib.\n\nChange-Id: I8a5b7cc629d61996ffade9aabd9d4d10961eb411\n"
    },
    {
      "commit": "9340ab4a213093bd59c79159011d131c9cd6996f",
      "tree": "69475f53306882ab8fcafba7dcb94cbade1c6cc2",
      "parents": [
        "da672372253002f06085ec6eace38b2fafe0f256",
        "0be8522b430aca8d90023d7c7e5ef510aa48adc7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 14:04:18 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 16 14:04:18 2011 -0700"
      },
      "message": "am 0be8522b: am d1abd94f: am 04ce8111: Bring in more layout lib changes from hc-mr1.\n\n* commit \u00270be8522b430aca8d90023d7c7e5ef510aa48adc7\u0027:\n  Bring in more layout lib changes from hc-mr1.\n"
    },
    {
      "commit": "04ce81113107d2bfa0b8248b13145b4cf24cb943",
      "tree": "a9715c622a2b04360a8f47fb3a166fd5047b193f",
      "parents": [
        "8e18668d14adf601cbe5973030c310ec23d88461"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 09 19:14:06 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 13:23:53 2011 -0700"
      },
      "message": "Bring in more layout lib changes from hc-mr1.\n\nfe051bb2 : Change the way the layoutlib instantiate its XmlPullParser.\n\nA lot of the init code was duplicated so I made a ParserFactory class.\n\nAlso created an extension of the KXmlPullParser to override toString().\nThis allows easier debugging when dealing with multiple parsers (which\nis always the case).\n\nAlso added some (disabled) debugging printf to deal with parser stack\nas it can be tricky figuring out which parsers are in the stack at\nwhich point.\n\n8969147c : Fix case where the int[] attrs doesn\u0027t directly match a styleable.\n\nIn the case of the FastScroller the int[] is a custom mix of attr\ninstead of a int[] that exists as R.styleable.foo.\n\nThis makes our reflection based mechanism used to find the styleable\nfail, so instead we search for each attribute separately (like\nwe probably should have done from the beginning).\n\n0c264b35: Fix various cases of getDimension to report error if unit is missing.\n\nif getDimention###() is called for a string that has no unit,\nthen an error is output through LayoutLog, but the rendering keeps\ngoing by using dp as a default.\n\n0beb7eea: Make (Bridge)TypedArray.getInteger() call out to getInt()\n\nOnly getInt() resolved attribute flags/enum and I\u0027m not sure why\nthere\u0027s two to begin with.\n"
    },
    {
      "commit": "66743a1ec0dddadec7cd8f026f9b6a2239f515be",
      "tree": "58668aa8482b43977d7eb5f36d3c3d2c5ea2eee1",
      "parents": [
        "f71e5469441286c6f466043e64a7f6492557cbd9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 15 14:43:42 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 15 14:43:42 2011 -0700"
      },
      "message": "Fix changed native method delegates in layoutlib for ICS.\n\nChange-Id: I49306868cd8a41b6b7d919c3e8b108d5c014530e\n"
    },
    {
      "commit": "2dcb6e80b999d93409e66bbd01b94a419c22013c",
      "tree": "445f90a614ca22ef16487caa717226ddb7387885",
      "parents": [
        "8c6d777da0e96b9ed5f0e2c1e643e767b17cb9e1",
        "48305f327ff3839ddbfa5a6fb42a57150a69480c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 10 10:31:52 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 10 10:31:52 2011 -0700"
      },
      "message": "am 48305f32: am 2e0f7118: am 8ee28811: Merge changes Idbb70f53,I10426a3f into honeycomb-mr2\n\n* commit \u002748305f327ff3839ddbfa5a6fb42a57150a69480c\u0027:\n  Merge 06942bc4 from hc-mr1.\n  Merge 988eeeb5 from hc-mr1.\n"
    },
    {
      "commit": "45b662e1bcff23dc59fb3a47bc32c99e63b2ac35",
      "tree": "43cf38fd15a568b875a029c83a4c15f9a6280abe",
      "parents": [
        "beb5fb622b71693c21b6fab562a98e7000c64273"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:48:35 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 08 17:11:40 2011 -0700"
      },
      "message": "Merge 06942bc4 from hc-mr1.\n\nLayoutlib - use the new getParser callback when possible.\n\nChange-Id: Idbb70f5391addd539afa5c2f5b55c70beefed223\n"
    },
    {
      "commit": "beb5fb622b71693c21b6fab562a98e7000c64273",
      "tree": "2363646dabecde6e300f2483625e5b0d401f4e0a",
      "parents": [
        "cea03df201dc6659654234bc5fbfebf1b6a06e42"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:03:10 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 08 17:10:11 2011 -0700"
      },
      "message": "Merge 988eeeb5 from hc-mr1.\n\nSupport for custom declare-styleable attr with enum/flag in layoutlib.\n\nChange-Id: I10426a3f2c76bed207c03fab7885b4269337a70f\n"
    },
    {
      "commit": "f18e311ee5d35db0cae96f0b216a88e5b42604dc",
      "tree": "60ddaf1c2c9936d4711c93a82705cdd325e1fa53",
      "parents": [
        "c8307c885f8462f2baf9f06c9916d1521f7fdcfb",
        "abc838716816107754ab0479242d03807ce79fc2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:17:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 07 17:17:11 2011 -0700"
      },
      "message": "am abc83871: am f6e47999: am 2a6dc7f1: Merge \"Import the Layoutlib from hc-mr1.\" into honeycomb-mr2\n\n* commit \u0027abc838716816107754ab0479242d03807ce79fc2\u0027:\n  Import the Layoutlib from hc-mr1.\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": "21726044a934f3f4f9827a05bbc8db2477220fa1",
      "tree": "0ac69160ec926901c026f6990983931fb12495bf",
      "parents": [
        "f174cd86bd70c1f1322cc15f42d5fd87223933a0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 03 15:21:53 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 03 16:02:12 2011 -0700"
      },
      "message": "Cherrypick 5b61ea6b from hc-mr1\n\nFix drawCircle in layoutlib.\n\nChange-Id: I035c48b925cad246ed821e9e59a93d37174982ef\n"
    },
    {
      "commit": "f174cd86bd70c1f1322cc15f42d5fd87223933a0",
      "tree": "774eca350a4429c0d87f693c229766eb8e39370b",
      "parents": [
        "8f17523dcac41f5a8962cfb61265c71ad0c0e463"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 02 16:38:38 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 02 16:38:38 2011 -0700"
      },
      "message": "LayoutLib: enable the LAYOUT_ONLY capability.\n\nChange-Id: Ib302af47d2a83a7ac3def6256bf0b892823f594f\n"
    },
    {
      "commit": "8f17523dcac41f5a8962cfb61265c71ad0c0e463",
      "tree": "71e8272a956bc8245222c361ae731e08cf8e09bc",
      "parents": [
        "0aa1017f9183bca752c95af72f73120e102ab2d3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 01 17:39:32 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 01 18:32:57 2011 -0700"
      },
      "message": "Merge dba35f1b from honeycomb-mr1. do not merge.\n\nChange-Id: Iebda5ea67fd40cac76a8ca3fe3c3cd4ee95ddebe\nLayoutLib: Properly configure KXmlParser to read UTF8\n"
    },
    {
      "commit": "34f5991ebe8b203f1720caf95889c15dd131d86e",
      "tree": "373d328201332a614bf871f051505d9d00a6bcdc",
      "parents": [
        "c7b87766b21fe5cf2f644efa8753b936d413dc9a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 23 19:07:18 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue May 24 10:55:30 2011 -0700"
      },
      "message": "Merge 6103e22c from honeycomb-mr1. do not merge.\n\nLayoutLib: custom styles override the default style instead of replacing it.\n\nIntead of reading either the custom or the default style for a widget, we\nread both and use the values from the custom style if it exists, or\nfrom the default style otherwise.\n\nChange-Id: Ibcec2e9b1e8a95295ab26ede145c287ff2f30be4\n"
    },
    {
      "commit": "c7b87766b21fe5cf2f644efa8753b936d413dc9a",
      "tree": "4655c3dcd0de4b9466d4e7e3eb77c12d1deb422e",
      "parents": [
        "4e4ad34159dc1c720a3e6145bb9f14c60fb1a3f7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 23 16:43:57 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 23 17:51:22 2011 -0700"
      },
      "message": "Merge 2402ad60 from honeycomb-mr1. do not merge.\n\nLayoutLib: Fix Canvas_Delegate.native_concat().\n\nChange-Id: I863c43d65a929816ac7c9e69addcc647dac1878b\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": "d9af22e204e7f4c364c346b6c1bac900a2c4ccca",
      "tree": "836e63535ac4ccdf3428f43b76e2f2a67f1ce538",
      "parents": [
        "e172a3fc23412ebc79d6bd93e6d43d4b1c58354b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 16 16:29:03 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu May 19 16:52:41 2011 -0700"
      },
      "message": "Merge 05b7b69c from honeycomb-mr1. do not merge.\n\nChange-Id: I1aca5774dec2e18ab5f9e860f6fd90b481b2857c\nLayoutLib: support the new baseline/margin query API.\n"
    },
    {
      "commit": "e172a3fc23412ebc79d6bd93e6d43d4b1c58354b",
      "tree": "7dd7aad58530ef14f09d47f1d43b0e5dcedba703",
      "parents": [
        "8dd85f80ba9c463f5616b47eceb620fe21203f4f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 29 11:58:02 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu May 19 16:52:29 2011 -0700"
      },
      "message": "Merge 2fae858d from Honeycomb-mr1. do not merge.\n\nChange-Id: I648f9ffa9745331ce4104dc4772f78ed933a4909\nLayoutLib: implement data binding for most AdapterView\n"
    },
    {
      "commit": "9f23e60b20f0419e6ca5ff55db9d6282596e7fe8",
      "tree": "23a6eb48e40b80341dcc2b13b9556b770c88d2ec",
      "parents": [
        "ba43d4282c82e55b5a5c01771f028e6266dbc781",
        "a13462a947e634a6893119146a7271369e509586"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu May 19 08:58:18 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 08:58:18 2011 -0700"
      },
      "message": "am a13462a9: am 582841e7: am b18e700c: am aa0834e3: Merge \"LayoutLib: support the new baseline/margin query API.\" into honeycomb-mr1\n\n* commit \u0027a13462a947e634a6893119146a7271369e509586\u0027:\n  LayoutLib: support the new baseline/margin query API.\n"
    },
    {
      "commit": "05b7b69c6c5d418e18db644feed1ec2ca83291cc",
      "tree": "08a87ebb428cff4cc15ee9ebb10cfbc9621068be",
      "parents": [
        "2fae858db55fc6984ef923a6226b9408c37c72cb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 16 16:29:03 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 16 16:29:03 2011 -0700"
      },
      "message": "LayoutLib: support the new baseline/margin query API.\n\nChange-Id: I856489df655960820b8eaa4c6179515a5c069b00\n"
    },
    {
      "commit": "8c2f85d94145a96f53e9041c609e283be7412a0f",
      "tree": "c86bfd0b8703eeb6e6bafd98d76b2dd0e129b179",
      "parents": [
        "ba4990c77cbc643809f1d0e74fabe5a1d1d1c3dc",
        "d00541603fbbb4e38264e75a2b6abf8705efeb49"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri May 13 16:43:37 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 13 16:43:37 2011 -0700"
      },
      "message": "am d0054160: am 6d040a7f: am 738c5e60: am 2fae858d: LayoutLib: implement data binding for most AdapterView\n\n* commit \u0027d00541603fbbb4e38264e75a2b6abf8705efeb49\u0027:\n  LayoutLib: implement data binding for most AdapterView\n"
    },
    {
      "commit": "2fae858db55fc6984ef923a6226b9408c37c72cb",
      "tree": "b408f9da8f855228b8b865189e672abe3bcf0700",
      "parents": [
        "edab852fe11f12ad5a0a66f79462ed7474ba9e5a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 29 11:58:02 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri May 13 15:55:49 2011 -0700"
      },
      "message": "LayoutLib: implement data binding for most AdapterView\n\nChange-Id: I27be96ed2c37573eb22cfbb391d96b6137b3df8c\n"
    },
    {
      "commit": "515a08b01851a1ab9386f85dee6d9fd7b65ee7ad",
      "tree": "549fcb535c70f46ac97e0a369ef507c05323aa68",
      "parents": [
        "b25181aaccb00fee405251bf3575ce1d40badf46"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 17:03:31 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Apr 07 12:02:31 2011 -0700"
      },
      "message": "Merge 59aad78e from master. do not merge.\n\nLayoutLib: don\u0027t render when shader\u0027s local matrix is set to 0 scale.\n\nChange-Id: I02c0ddd856026357f468dcc8b81e0520470118de\n"
    },
    {
      "commit": "59aad78eae14939c169876b2f632d005f382cf7d",
      "tree": "1c1637f9315d503a67119818379c15f9e9e2be1c",
      "parents": [
        "8a18dba48c354fc47056b07ddec8a32fda266b6a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 17:03:31 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 17:03:31 2011 -0700"
      },
      "message": "LayoutLib: don\u0027t render when shader\u0027s local matrix is set to 0 scale.\n\nChange-Id: I7726d87f3dd0475ac662f535a08c6435b8b9ed1f\n"
    },
    {
      "commit": "8a18dba48c354fc47056b07ddec8a32fda266b6a",
      "tree": "8dd9444bbe6c1c812d54e336f9fd2d5dcc738c63",
      "parents": [
        "43707a83ec12957fb84a406276a38fbaf4e23fd3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Apr 05 20:19:17 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 14:24:59 2011 -0700"
      },
      "message": "Merge c5aeac7f from honeycomb.\n\nLayoutLib: Fix issue with rendering mode.\n\nWhen the layout content is embedded inside a decor layout\nto emulate system bar (top or bottom) and title bar (or action bar)\nthen the code computing the full required size based on the RenderingMode\nwould fail because the decor layout would prevents the content layout to\ntake as much room as possible.\nThere is also an issue with the way we know render dialogs as the\ndialogs usually as a frame with some padding and the previous measurements\nwould not take into account the dialog padding when increasing the\nscreen size.\n\nThis fix makes the code measure the size of the content layout in the\nnormal rendering, and then separately from the root layout with the proper\nMeasureSpec to let the content grown. The difference in size is then added\nto the screen size.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d15892\n\nChange-Id: Ie9a6c5e254b16785f817dcb9fae755d4936880aa\n"
    },
    {
      "commit": "c5aeac7f157e3cb9e29ab8c126f74e26493501f5",
      "tree": "7767282c829748563f5dbb1026972395ec0a2052",
      "parents": [
        "e4cafabbcc4b69479217d1a167926b79c37e5ded"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Apr 05 20:19:17 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Apr 05 20:45:48 2011 -0700"
      },
      "message": "LayoutLib: Fix issue with rendering mode.\n\nWhen the layout content is embedded inside a decor layout\nto emulate system bar (top or bottom) and title bar (or action bar)\nthen the code computing the full required size based on the RenderingMode\nwould fail because the decor layout would prevents the content layout to\ntake as much room as possible.\nThere is also an issue with the way we know render dialogs as the\ndialogs usually as a frame with some padding and the previous measurements\nwould not take into account the dialog padding when increasing the\nscreen size.\n\nThis fix makes the code measure the size of the content layout in the\nnormal rendering, and then separately from the root layout with the proper\nMeasureSpec to let the content grown. The difference in size is then added\nto the screen size.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d15892\n\nChange-Id: Ibb9ca2a67c6c450d10d9f9a8050536e094650f8b\n"
    },
    {
      "commit": "c7c8c599a636a105db0d2eac3b8b332532a7a40f",
      "tree": "f2ba035079a3faaa7d2c34f70f37551856577fe5",
      "parents": [
        "5982bf66d4fdea38105d91ff0f9d38660ac87581"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:11:23 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:24:50 2011 -0700"
      },
      "message": "Merge 67450db0 from honeycomb. Do not merge.\n\nChange-Id: I0ca140dd6d9279ff313f930739ad40fbbed4f335\nLayoutLib: TypedArray.getDimensionPixelSize can actually return \u003c0\n"
    },
    {
      "commit": "67450db03eac59c93b2b46c7872ce4d7dca47265",
      "tree": "d4d45746a203a2d34b13e4645013880cb796d68e",
      "parents": [
        "2f1f2248c8439adbd686810e306c55f9e6a5abc3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:11:23 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:11:23 2011 -0700"
      },
      "message": "LayoutLib: TypedArray.getDimensionPixelSize can actually return \u003c0\n\nChange-Id: I17853dc242e28f0c59916cad1b2a57beed480a57\n"
    },
    {
      "commit": "0a98226e3c8cda46786558147a0eb6a56c3370c0",
      "tree": "87eef19a8e06439d2cb4d9f81812003c383d7080",
      "parents": [
        "b243aabdaf1ba6fdfc0579c9f949e00d562456ed"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:12:21 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:34:19 2011 -0700"
      },
      "message": "Merge 9d76581f from honeycomb. do not merge.\n\nLayoutLib: Fix Arc rendering.\n\nLooks like Java2D and Skia go in different directions for angles.\n\nChange-Id: I4d72db56455afe25b4f51f23a9b29d6c438119ba\n"
    },
    {
      "commit": "b243aabdaf1ba6fdfc0579c9f949e00d562456ed",
      "tree": "1468da68a2c7bf06a2db1d821bd203cb6e857a50",
      "parents": [
        "48a2a5ad1b7c4979b1d7baf6add4bc32148a75ae"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 08 11:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:34:18 2011 -0700"
      },
      "message": "Merge adaa12cd from honeycomb. do not merge.\n\nLayoutLib: fix Capabilities and getDimensionPixelSize\n\nCommented out a Capability that is not in ADT 10.\n\nBridgeTypedArray.getDimensionPixelSize shouldn\u0027t call\ngetDimension since most of the code is duplicated, and\nit prevents use from properly detecting malformed attribute\nvalues.\n\nChange-Id: I008334af605a89f240247a13c0024009247ec5af\n"
    },
    {
      "commit": "2652b618a86c28fe1914c52dd6a91139c3d9b1e7",
      "tree": "3de7d6475a0144999be2e0e8cfa0455f8e937112",
      "parents": [
        "f354ad108c794bd4c9d1aa9a4f2a526d9c27e224"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:28:50 2011 -0700"
      },
      "message": "Merge 6f2fb570 from honeycomb. do not merge.\n\nLayoutLib: Fix dimension parsing to handle negative value.\n\nAlso make TypedArray.getDimensionPixelSize properly\nhandle negative values (which are not allowed).\n\nChange-Id: I03ffcef5ab7ec7ef95419566776dcc798845fd88\n"
    },
    {
      "commit": "f354ad108c794bd4c9d1aa9a4f2a526d9c27e224",
      "tree": "410e6b7090c84b97e12f4bb83366d8b98468f311",
      "parents": [
        "bf079216c607b660a0ad219df6c4752906a7fc61"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:19:38 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:28:50 2011 -0700"
      },
      "message": "Merge c12b4093 from honeycomb. do not merge.\n\nChange-Id: Icfbb70c097d87bf92415c6f0534346adde4c02fe\nLayoutLib: Implement some missing add###() method in Path.\n"
    },
    {
      "commit": "9d76581faf9eb5f47eff922c14807e51702f363b",
      "tree": "ad0daf93af5ea501cdd86ede8ab1934ff03a4512",
      "parents": [
        "e21110f8b1e4aa884f7a4e2164ae90dab8d5f3fa"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:12:21 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:12:21 2011 -0700"
      },
      "message": "LayoutLib: Fix Arc rendering.\n\nLooks like Java2D and Skia go in different directions for angles.\n\nChange-Id: Ia0c9c70cd66c9a0941fa9921fecf8e4e83538af3\n"
    },
    {
      "commit": "adaa12cd9e421edf34e36de8cfacc3e3c334bb64",
      "tree": "8a52c39f4e27d9ad86beda0197908b3e7ac55ced",
      "parents": [
        "6f2fb570642189ec2b6068632c25f02391007bb5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 08 11:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 08 15:00:35 2011 -0800"
      },
      "message": "LayoutLib: fix Capabilities and getDimensionPixelSize\n\nCommented out a Capability that is not in ADT 10.\n\nBridgeTypedArray.getDimensionPixelSize shouldn\u0027t call\ngetDimension since most of the code is duplicated, and\nit prevents use from properly detecting malformed attribute\nvalues.\n\nChange-Id: I005b17061590dc0668729af16e896fad815f1973\n"
    },
    {
      "commit": "6f2fb570642189ec2b6068632c25f02391007bb5",
      "tree": "ad791a365ba343daf8646d74af7f4331fed0904e",
      "parents": [
        "c12b4093517ac99cabd91a1bb4bdb3bacfe4bcfd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:50:21 2011 -0800"
      },
      "message": "LayoutLib: Fix dimension parsing to handle negative value.\n\nAlso make TypedArray.getDimensionPixelSize properly\nhandle negative values (which are not allowed).\n\nChange-Id: I960fc1c9e8ad97852d4a14e4f0f71a2c2034b4e7\n"
    },
    {
      "commit": "c12b4093517ac99cabd91a1bb4bdb3bacfe4bcfd",
      "tree": "702bd62cc2811641a05c286a9b620dc0df2ef40b",
      "parents": [
        "a46c1df226f2aea54d3bb068b0537c9b1d28590c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:19:38 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:19:38 2011 -0800"
      },
      "message": "LayoutLib: Implement some missing add###() method in Path.\n\nChange-Id: Ib62b5df0361ba81846483b1e5f8d7cbdbcb57d40\n"
    },
    {
      "commit": "648251710162cdaf7371012a1cbb79b9bc5bc0e4",
      "tree": "a98c62fcd2391c1dfa2623f899346de0a7619fe9",
      "parents": [
        "cbf9cb35bb7064f303c6dd9da4485cd5344b6779"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 02 21:32:58 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 02 22:38:58 2011 -0800"
      },
      "message": "Fix issue #3485923: Gmail crash\n\nAllow application to try to recover if a surface OOM error\nhappens on the client side.\n\nChange-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6\n"
    },
    {
      "commit": "efe18b5e3f02a51a3900d5a0a3687d2b5e315b4c",
      "tree": "c8e99e1a56e77075aaf2dc3d7b7adf051e9a3018",
      "parents": [
        "092238916fd5d10090c0bcad33644778a1f366e7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 13:51:26 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 25 14:53:32 2011 -0800"
      },
      "message": "Merge 1911a6f7 into gingerbread. do not merge.\n\nChange-Id: I6d56644c4ab1a70eb4a6d0d2e5d84ea4aa674041\nLayoutLib: move tests to their own project.\n"
    },
    {
      "commit": "a4510a75757b82207f677609b970010f59c774ba",
      "tree": "3ef4d90e0d1368cb72f7175522f9dab0441985f9",
      "parents": [
        "7f4a537af5ec1c935b9d139b722da05e9fe8130f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 18:56:34 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 18:58:27 2011 -0800"
      },
      "message": "LayoutLib: fix incorrect indices in one of the 2 native_drawTextRun methods.\n\nFixes http://b.android.com/15007\n\nChange-Id: Iff06180def92c5fa25e82520b76192c089edd8cc\n"
    }
  ],
  "next": "1911a6f7812e3f7dcb83fd4741a297d043a80e46"
}
